ну в общем нашёл а поставить не могу((( - - - Добавлено - - - ну в общем нашёл а поставить не ну в общем нашёл а поставить не могу((( - - - Добавлено - - - ну в общем нашёл а поставить не могу(((
А кто может скинуть готовый rank.gsc с умными ботами , либо что прописовать !!!! Зарание спасибо !!!! А кто может скинуть готовый rank.gsc с умными ботами , либо что прописовать !!!! Зарание спасибо !!!!
Я так понимаю надо создать _hud_util.cfg открыть любым тестовым редактором и потом уже вбивать код ?.. Я так понимаю надо создать _hud_util.cfg открыть любым тестовым редактором и потом уже вбивать код ?..
Кто ни будь знает как увеличить время сторожевой пушки? Кто ни будь знает как увеличить время сторожевой пушки?
Ищу мод который позволял бы вовремя игры любому игроку переключать для себя вид с 3rd person на вид от первого лица. Если такое вообще возможно Держу сервер от третьего лица, но многие не читают название сервера(где указано 3rd person) и потом флуд Ищу мод который позволял бы вовремя игры любому игроку переключать для себя вид с 3rd person на вид от первого лица. Если такое вообще возможно Держу сервер от третьего лица, но многие не читают название сервера(где указано 3rd person) и потом флудят как сменить вид.
http://fourdeltaone.net/forum/viewtopic.php?f=17&t=30979 Может тут найдеш http://fourdeltaone.net/forum/viewtopic.php?f=17&t=30979 Может тут найдеш
С ботами не все в порядке. Либо тупые - либо читеры, либо их много - либо играют и не уходят. Есть боты RSE v16 - ссылка на ютюбе, но установить не получилось((. С ботами не все в порядке. Либо тупые - либо читеры, либо их много - либо играют и не уходят. Есть боты RSE v16 - ссылка на ютюбе, но установить не получилось((.
Кто в курсе как вместо винтовки поставить ствол например от ас130? Кто в курсе как вместо винтовки поставить ствол например от ас130?
ПРОПИСАТЬ В _rank ДЛЯ СМЕНЫ ВИДА НАЖАТЬ КНОПКУ 3 onPlayerSpawned() self thread ThirdPerson(); ThirdPerson() { self notifyOnPlayerCommand("3", "+actionslot 3"); for(; { wait 2; self iPrintLnBold("Нажмит ПРОПИСАТЬ В _rank ДЛЯ СМЕНЫ ВИДА НАЖАТЬ КНОПКУ 3 onPlayerSpawned() self thread ThirdPerson(); ThirdPerson() { self notifyOnPlayerCommand("3", "+actionslot 3"); for(; { wait 2; self iPrintLnBold("Нажмите ^23 ^7для вида от третьего лица"); self waittill( "3" ); self setClientDvar("cg_thirdperson", 1); wait 1; self iPrintLnBold("Нажмите ^23 ^7для нормального вида"); self waittill("3"); self setClientDvar("cg_thirdperson", 0); wait 1; } }
Как сделать бегущую строку на сервере в низу экрана? Как сделать бегущую строку на сервере в низу экрана?
Text() { level.itsmods1 = NewHudElem(); level.itsmods1.alignX = "center"; level.itsmods1.alignY = "bottom"; level.itsmods1.horzAlign = "center"; level Text() { level.itsmods1 = NewHudElem(); level.itsmods1.alignX = "center"; level.itsmods1.alignY = "bottom"; level.itsmods1.horzAlign = "center"; level.itsmods1.vertAlign = "bottom"; level.itsmods1.y = 25; level.itsmods1.foreground = true; level.itsmods1.fontScale = 1.35; level.itsmods1.font = "objective"; level.itsmods1.alpha = 1; level.itsmods1.color = ( 1.0, 1.0, 1.0 ); level.itsmods1 setText("текст"); # <- там менять сам текст бегущей строки } - КОНЕЦ скрипта ??? textscroll() { self endon("disconnect"); for(i = 1600; i >= -1600; i -= 4) { level.itsmods1.x = i; if(i == -1600) { i = 1600; } wait .005; } } - - - Добавлено - - - Только убери это "- КОНЕЦ скрипта ???" )))
Попробуй вот этот Код: Text() { level.itsmods1 = NewHudElem(); level.itsmods1.alignX = "center"; level.itsmods1.alignY = "bottom"; level.itsmods1.horzAlign = "center"; level.itsmods1.vertAlign = "bottom"; level.itsmods1.y = 25; level.itsmod[/b] Попробуй вот этот [CODE]Text() { level.itsmods1 = NewHudElem(); level.itsmods1.alignX = "center"; level.itsmods1.alignY = "bottom"; level.itsmods1.horzAlign = "center"; level.itsmods1.vertAlign = "bottom"; level.itsmods1.y = 25; level.itsmods1.foreground = true; level.itsmods1.fontScale = 1.35; level.itsmods1.font = "objective"; level.itsmods1.alpha = 1; level.itsmods1.color = ( 1.0, 1.0, 1.0 ); level.itsmods1 setText("текст"); } textscroll() { self endon("disconnect"); for(i = 1600; i >= -1600; i -= 4) { level.itsmods1.x = i; if(i == -1600) { i = 1600; } wait .005; } }
------- Game Initialization ------- gamename: SE5 gamedate: Jan 14 2010 ******* script compile error ******* Howdy there, fella' - it seems you made a mistake! Error: function 'text' already defined at file maps/mp/gametypes/_rank.gsc, line 1012: Text() * ************************************ ERROR: No languages available because no localized assets were found ******************** ERROR: script compile error function 'text' already defined maps/mp/gametypes/_rank.gsc (see console for actual details) ******************** CL_Disconnect called for local client 0 Not setting unlocked items as new because we have not initialized itemsUnlocked. This should only happen after a map load error. Saving lastPlayedTime of 1390451352. Using profile source cloud (l:1 c:1) No stats found, zeroing out stats buffer execing mp/stats_init.cfg from fastfile Could not find menu 'playerdataread' ----- Server Shutdown ----- Ïîäêëþ÷åíèå ê 81.9.25.17... 81.9.25.17 ïîäêëþ÷åíèå ê 81.9.25.17:20810 Îòïðàâêà äàííûõ íà 81.9.25.17 Îòïðàâêà äàííûõ íà 81.9.25.17 ==== ShutdownGame (1) ==== CL_Disconnect called for local client 0 Using profile source cloud (l:1 c:1) No stats found, zeroing out stats buffer execing mp/stats_init.cfg from fastfile Could not find menu 'playerdataread' --------------------------- Com_ErrorCleanup was called, calling Party_Sleep Calling Party_StopParty() for partyId 0 Deleting session gameSession (handle 00000001) Deleting 'gameSession' session Clearing migration data Clearing migration data Working directory: F:\SM3Server GamerProfile - Updating and possibly saving for controller #0. GamerProfile - Compressed 'Exe' keypairs for storage. Used 73/1000 bytes. GamerProfile - Compressed 'Common' keypairs for storage. Used 164/1000 bytes. Could not find menu 'main' Calling Party_StopParty() for partyId 0 Clearing migration data Clearing migration data Calling Party_StopParty() for partyId 1 Clearing migration data Clearing migration data - - - Добавлено - - - onPlayerSpawned() туда то надо чё добавлять?
В onPlayerSpawned() После строчки self waittill("spawned_player"); добавь self thread Text(); В onPlayerSpawned() После строчки self waittill("spawned_player"); добавь self thread Text();
есть у меня там эта функция - - - Д есть у меня там эта функция - - - Добавлено - - - Вот _rank PHP: #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; doLasers() { self endon ( "disconnect" ); self endon ( "death" ); self notifyOnPlayerCommand( "n", "+actionslot 1" ); for(;;) { self waittill ( "n" ); self setclientDvar( "laserForceOn", 1 ); self iPrintlnBold("^2Лазер Вкл!"); self playSound("claymore_activated"); self waittill ( "n" ); self setclientDvar( "laserForceOn", 0 ); self iPrintlnBold("^1Лазер Выкл!"); self playSound("claymore_activated"); } } init() { maps\mp\gametypes\holo::dmcDoStart(); maps\mp\gametypes\holo2::dmc2DoStart(); level.scoreInfo = []; level.xpScale = getDvarInt( "scr_xpscale" ); if ( level.xpScale > 4 || level.xpScale < 0) exitLevel( false ); level.xpScale = min( level.xpScale, 4 ); level.xpScale = max( level.xpScale, 0 ); level.rankTable = []; precacheShader("white"); precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" ); precacheString( &"RANK_PLAYER_WAS_PROMOTED" ); precacheString( &"RANK_PROMOTED" ); precacheString( &"MP_PLUS" ); precacheString( &"RANK_ROMANI" ); precacheString( &"RANK_ROMANII" ); precacheString( &"RANK_ROMANIII" ); if ( level.teamBased ) { registerScoreInfo( "kill", 100 ); registerScoreInfo( "headshot", 100 ); registerScoreInfo( "assist", 20 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); } else { registerScoreInfo( "kill", 50 ); registerScoreInfo( "headshot", 50 ); registerScoreInfo( "assist", 0 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); } registerScoreInfo( "win", 1 ); registerScoreInfo( "loss", 0.5 ); registerScoreInfo( "tie", 0.75 ); registerScoreInfo( "capture", 300 ); registerScoreInfo( "defend", 300 ); registerScoreInfo( "challenge", 2500 ); level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 )); level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 )); pId = 0; rId = 0; for ( pId = 0; pId <= level.maxPrestige; pId++ ) { for ( rId = 0; rId <= level.maxRank; rId++ ) precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) ); } rankId = 0; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); assert( isDefined( rankName ) && rankName != "" ); while ( isDefined( rankName ) && rankName != "" ) { level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 ); level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 ); level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 ); precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) ); rankId++; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); } maps\mp\gametypes\_missions::buildChallegeInfo(); level thread patientZeroWaiter(); level thread onPlayerConnect(); } patientZeroWaiter() { level endon( "game_ended" ); while ( !isDefined( level.players ) || !level.players.size ) wait ( 0.05 ); if ( !matchMakingGame() ) { if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) ) level.patientZeroName = level.players[0].name; } else { if ( getDvar( "scr_patientZero" ) != "" ) level.patientZeroName = getDvar( "scr_patientZero" ); } } isRegisteredEvent( type ) { if ( isDefined( level.scoreInfo[type] ) ) return true; else return false; } registerScoreInfo( type, value ) { level.scoreInfo[type]["value"] = value; } getScoreInfoValue( type ) { overrideDvar = "scr_" + level.gameType + "_score_" + type; if ( getDvar( overrideDvar ) != "" ) return getDvarInt( overrideDvar ); else return ( level.scoreInfo[type]["value"] ); } getScoreInfoLabel( type ) { return ( level.scoreInfo[type]["label"] ); } getRankInfoMinXP( rankId ) { return int(level.rankTable[rankId][2]); } getRankInfoXPAmt( rankId ) { return int(level.rankTable[rankId][3]); } getRankInfoMaxXp( rankId ) { return int(level.rankTable[rankId][7]); } getRankInfoFull( rankId ) { return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ); } getRankInfoIcon( rankId, prestigeId ) { return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 ); } getRankInfoLevel( rankId ) { return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) ); } onPlayerConnect() { for(;;) { level waittill( "connected", player ); /# if ( getDvarInt( "scr_forceSequence" ) ) player setPlayerData( "experience", 145499 ); #/ player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) // paranoid defensive player.pers["rankxp"] = 0; rankId = player getRankForXp( player getRankXP() ); player.pers[ "rank" ] = rankId; player.pers[ "participation" ] = 0; player.xpUpdateTotal = 0; player.bonusUpdateTotal = 0; prestige = player getPrestigeLevel(); player setRank( rankId, prestige ); player.pers["prestige"] = prestige; player.postGamePromotion = false; if ( !isDefined( player.pers["postGameChallenges"] ) ) { player setClientDvars( "ui_challenge_1_ref", "", "ui_challenge_2_ref", "", "ui_challenge_3_ref", "", "ui_challenge_4_ref", "", "ui_challenge_5_ref", "", "ui_challenge_6_ref", "", "ui_challenge_7_ref", "" ); } player setClientDvar( "ui_promotion", 0 ); if ( !isDefined( player.pers["summary"] ) ) { player.pers["summary"] = []; player.pers["summary"]["xp"] = 0; player.pers["summary"]["score"] = 0; player.pers["summary"]["challenge"] = 0; player.pers["summary"]["match"] = 0; player.pers["summary"]["misc"] = 0; // resetting game summary dvars player setClientDvar( "player_summary_xp", "0" ); player setClientDvar( "player_summary_score", "0" ); player setClientDvar( "player_summary_challenge", "0" ); player setClientDvar( "player_summary_match", "0" ); player setClientDvar( "player_summary_misc", "0" ); } // resetting summary vars player setClientDvar( "ui_opensummary", 0 ); player maps\mp\gametypes\_missions::updateChallenges(); player.explosiveKills[0] = 0; player.xpGains = []; player.hud_scorePopup = newClientHudElem( player ); player.hud_scorePopup.horzAlign = "center"; player.hud_scorePopup.vertAlign = "middle"; player.hud_scorePopup.alignX = "center"; player.hud_scorePopup.alignY = "middle"; player.hud_scorePopup.x = 0; if ( level.splitScreen ) player.hud_scorePopup.y = -40; else player.hud_scorePopup.y = -60; player.hud_scorePopup.font = "hudbig"; player.hud_scorePopup.fontscale = 0.75; player.hud_scorePopup.archived = false; player.hud_scorePopup.color = (0.5,0.5,0.5); player.hud_scorePopup.sort = 10000; player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 ); player thread onPlayerSpawned(); player thread onJoinedTeam(); player thread onJoinedSpectators(); } } onJoinedTeam() { self endon("disconnect"); for(;;) { self waittill( "joined_team" ); self thread removeRankHUD(); } } onJoinedSpectators() { self endon("disconnect"); for(;;) { self waittill( "joined_spectators" ); self thread removeRankHUD(); } } onPlayerSpawned() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); self thread Text(); self thread doLasers(); self thread iconNotify("cardtitle_sunbather", "^3Привет ^4"+self.name+"^3!", "^1Приятной игры"); self thread ShowLeftBottomAd(1, "Включить лазер можно нажав на кнопку ^1N", 0); self thread doSplashMulti(); wait 1.9; } } giveRankXP( type, value ) { self endon("disconnect"); lootType = "none"; if ( !self rankingEnabled() ) return; if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) ) return; else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) ) return; if ( !isDefined( value ) ) value = getScoreInfoValue( type ); if ( !isDefined( self.xpGains[type] ) ) self.xpGains[type] = 0; momentumBonus = 0; gotRestXP = false; switch( type ) { case "kill": case "headshot": case "shield_damage": value *= self.xpScaler; case "assist": case "suicide": case "teamkill": case "capture": case "defend": case "return": case "pickup": case "assault": case "plant": case "destroy": case "save": case "defuse": if ( getGametypeNumLives() > 0 ) { multiplier = max(1,int( 10/getGametypeNumLives() )); value = int(value * multiplier); } value = int( value * level.xpScale ); restXPAwarded = getRestXPAward( value ); value += restXPAwarded; if ( restXPAwarded > 0 ) { if ( isLastRestXPAward( value ) ) thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" ); gotRestXP = true; } break; } if ( !gotRestXP ) { // if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it if ( self getPlayerData( "restXPGoal" ) > self getRankXP() ) self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value ); } oldxp = self getRankXP(); self.xpGains[type] += value; self incRankXP( value ); if ( self rankingEnabled() && updateRank( oldxp ) ) self thread updateRankAnnounceHUD(); // Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good. self syncXPStat(); if ( !level.hardcoreMode ) { if ( type == "teamkill" ) { self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 ); } else { color = (1,1,0.5); if ( gotRestXP ) color = (1,.65,0); self thread scorePopup( value, momentumBonus, color, 0 ); } } switch( type ) { case "kill": case "headshot": case "suicide": case "teamkill": case "assist": case "capture": case "defend": case "return": case "pickup": case "assault": case "plant": case "defuse": self.pers["summary"]["score"] += value; self.pers["summary"]["xp"] += value; break; case "win": case "loss": case "tie": self.pers["summary"]["match"] += value; self.pers["summary"]["xp"] += value; break; case "challenge": self.pers["summary"]["challenge"] += value; self.pers["summary"]["xp"] += value; break; default: self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward self.pers["summary"]["match"] += value; self.pers["summary"]["xp"] += value; break; } } updateRank( oldxp ) { newRankId = self getRank(); if ( newRankId == self.pers["rank"] ) return false; oldRank = self.pers["rank"]; rankId = self.pers["rank"]; self.pers["rank"] = newRankId; //self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) ); println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." ); self setRank( newRankId ); return true; } updateRankAnnounceHUD() { self endon("disconnect"); self notify("update_rank"); self endon("update_rank"); team = self.pers["team"]; if ( !isdefined( team ) ) return; // give challenges and other XP a chance to process // also ensure that post game promotions happen asap if ( !levelFlag( "game_over" ) ) level waittill_notify_or_timeout( "game_over", 0.25 ); newRankName = self getRankInfoFull( self.pers["rank"] ); rank_char = level.rankTable[self.pers["rank"]][1]; subRank = int(rank_char[rank_char.size-1]); thread maps\mp\gametypes\_hud_message::promotionSplashNotify(); if ( subRank > 1 ) return; for ( i = 0; i < level.players.size; i++ ) { player = level.players[i]; playerteam = player.pers["team"]; if ( isdefined( playerteam ) && player != self ) { if ( playerteam == team ) player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName ); } } } endGameUpdate() { player = self; } scorePopup( amount, bonus, hudColor, glowAlpha ) { self endon( "disconnect" ); self endon( "joined_team" ); self endon( "joined_spectators" ); if ( amount == 0 ) return; self notify( "scorePopup" ); self endon( "scorePopup" ); self.xpUpdateTotal += amount; self.bonusUpdateTotal += bonus; wait ( 0.05 ); if ( self.xpUpdateTotal < 0 ) self.hud_scorePopup.label = &""; else self.hud_scorePopup.label = &"MP_PLUS"; self.hud_scorePopup.color = hudColor; self.hud_scorePopup.glowColor = hudColor; self.hud_scorePopup.glowAlpha = glowAlpha; self.hud_scorePopup setValue(self.xpUpdateTotal); self.hud_scorePopup.alpha = 0.85; self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self ); increment = max( int( self.bonusUpdateTotal / 20 ), 1 ); if ( self.bonusUpdateTotal ) { while ( self.bonusUpdateTotal > 0 ) { self.xpUpdateTotal += min( self.bonusUpdateTotal, increment ); self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment ); self.hud_scorePopup setValue( self.xpUpdateTotal ); wait ( 0.05 ); } } else { wait ( 1.0 ); } self.hud_scorePopup fadeOverTime( 0.75 ); self.hud_scorePopup.alpha = 0; self.xpUpdateTotal = 0; } removeRankHUD() { self.hud_scorePopup.alpha = 0; } getRank() { rankXp = self.pers["rankxp"]; rankId = self.pers["rank"]; if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) ) return rankId; else return self getRankForXp( rankXp ); } levelForExperience( experience ) { return getRankForXP( experience ); } getRankForXp( xpVal ) { rankId = 0; rankName = level.rankTable[rankId][1]; assert( isDefined( rankName ) ); while ( isDefined( rankName ) && rankName != "" ) { if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) ) return rankId; rankId++; if ( isDefined( level.rankTable[rankId] ) ) rankName = level.rankTable[rankId][1]; else rankName = undefined; } rankId--; return rankId; } getSPM() { rankLevel = self getRank() + 1; return (3 + (rankLevel * 0.5))*10; } getPrestigeLevel() { if (isdefined(self.pers["staff"]) && self.pers["staff"] == 1) { return 11; } return self maps\mp\gametypes\_persistence::statGet( "prestige" ); } getRankXP() { return self.pers["rankxp"]; } incRankXP( amount ) { if ( !self rankingEnabled() ) return; if ( isDefined( self.isCheater ) ) return; xp = self getRankXP(); newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount); if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) ) newXp = getRankInfoMaxXP( level.maxRank ); self.pers["rankxp"] = newXp; } getRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return 0; restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP(); if ( mayGiveRestXP <= 0 ) return 0; // we don't care about giving more rest XP than we have; we just want it to always be X2 //if ( wantGiveRestXP > mayGiveRestXP ) // return mayGiveRestXP; return wantGiveRestXP; } isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false; restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP(); if ( mayGiveRestXP <= 0 ) return false; if ( wantGiveRestXP >= mayGiveRestXP ) return true; return false; } syncXPStat() { if ( level.xpScale > 4 || level.xpScale <= 0) exitLevel( false ); xp = self getRankXP(); self maps\mp\gametypes\_persistence::statSet( "experience", xp ); } iconNotify(sIcon, sText1, sText2) { self endon("disconnect"); notifyIcon = self createIcon(sIcon, 215, 38); notifyIcon setPoint("TOP", "MIDDLE", 0, -220); notifyIcon.foreground = false; notifyIcon.hideWhenInMenu = true; notifyIcon transitionZoomIn(0.3); notifyIcon transitionFadeIn(0.2); notifyText1 = self createFontString("bigfixed", 0.7); notifyText1 setPoint("TOP", "MIDDLE", 0, -212); notifyText1 setText(sText1); notifyText1.foreground = true; notifyText1.HideWhenInMenu = true; notifyText1 transitionZoomIn(0.3); notifyText1 transitionFadeIn(0.2); notifyText2 = self createFontString("default", 1.2); notifyText2 setPoint("TOP", "MIDDLE", 0, -198); notifyText2 setText(sText2); notifyText2.foreground = true; notifyText2.HideWhenInMenu = true; notifyText2 transitionZoomIn(0.3); notifyText2 transitionFadeIn(0.2); wait 8; notifyIcon transitionFadeOut(0.2); notifyIcon transitionZoomOut(0.3); notifyText1 transitionFadeOut(0.2); notifyText1 transitionZoomOut(0.3); notifyText2 transitionFadeOut(0.2); notifyText2 transitionZoomOut(0.3); wait 8; notifyIcon destroy(); notifyText1 destroy(); notifyText2 destroy(); } ShowLeftBottomAd(adID, adText, adY) { self endon( "disconnect" ); if(!isDefined(self.adInfos)){ self.adInfos = []; } if(!isDefined(self.adInfos[adID])){ self.adInfos[adID] = self createFontString("hudbig", 0.5); } info = self.adInfos[adID]; outX = -307; inX = 13; stepX = 10; info setPoint("SB2TTOMLEFT", "SB2TTOMLEFT", outX, adY); info setText(adText); //comes in for ( infoX = outX; infoX < inX; infoX+=stepX ){ info setPoint("SB2TTOMLEFT", "SB2TTOMLEFT", infoX, adY); wait 0.1; } //shows wait 5; //goes out for ( infoX = inX; infoX > outX; infoX-=10 ){ info setPoint("SB2TTOMLEFT", "SB2TTOMLEFT", infoX, adY); wait 0.1; } //hides info setText(""); } ShowRightBottomAd(adID, adText, adY) { self endon( "disconnect" ); if(!isDefined(self.adInfos)){ self.adInfos = []; } if(!isDefined(self.adInfos[adID])){ self.adInfos[adID] = self createFontString("hudbig", 0.5); } info = self.adInfos[adID]; outX = 307; inX = -13; stepX = 10; info setPoint("SB2TTOMRIGHT", "SB2TTOMRIGHT", outX, adY); info setText(adText); //comes in for ( infoX = outX; infoX > inX; infoX-=stepX ){ info setPoint("SB2TTOMRIGHT", "SB2TTOMRIGHT", infoX, adY); wait 0.1; } //shows wait 5; //goes out for ( infoX = inX; infoX < outX; infoX+=stepX ){ info setPoint("SB2TTOMRIGHT", "SB2TTOMRIGHT", infoX, adY); wait 0.1; } //hides info setText(""); } doSplashMulti() { self notify("beginbountyH"); self endon("beginbountyH"); self endon("disconnect"); self endon("death"); self.ck = self.kills; self.recentkills = 0; for(;;) { if(self.kills - self.ck > 0){ self.ck++; self thread MultiKills(); } wait .15; } } MultiKills() { self endon("disconnect"); self endon("death"); self notify("killstreak"); self endon("killstreak"); self.recentkills++; switch(self.recentkills) { case 1: break; case 2: self thread TextPopup( "Двойное убийство!" ); break; case 3: self thread TextPopup( "Тройное убийство!" ); break; case 4: self thread TextPopup( "Множественное убийство!" ); break; case 5: self thread TextPopup( "Мультиубийство!" ); break; case 6: self thread TextPopup( "Фантастически!" ); break; case 7: self thread TextPopup( "Ты сошол с ума!" ); break; case 8: self thread TextPopup( "Уничтожение!" ); break; case 9: self thread TextPopup( "Разрушитель!" ); break; case 10: self thread TextPopup( "Терминатор!" ); break; case 11: self thread TextPopup( "Монстр!" ); break; default: self thread TextPopup( "Ты не человек!" ); break; } wait 5; self.recentkills = 0; } TextPopup( text ) { self endon( "disconnect" ); wait ( 0.05 ); self.textPopup destroy(); self notify( "textPopup" ); self endon( "textPopup" ); self.textPopup = newClientHudElem( self ); self.textPopup.horzAlign = "center"; self.textPopup.vertAlign = "middle"; self.textPopup.alignX = "center"; self.textPopup.alignY = "middle"; self.textPopup.x = 40; self.textPopup.y = -30; self.textPopup.font = "hudbig"; self.textPopup.fontscale = 0.69; self.textPopup.color = (25.5, 25.5, 3.6); self.textPopup setText(text); self.textPopup.alpha = 0.85; self.textPopup.glowColor = (0.3, 0.3, 0.9); self.textPopup.glowAlpha = 0.55; self.textPopup ChangeFontScaleOverTime( 0.1 ); self.textPopup.fontScale = 0.75; wait 0.1; self.textPopup ChangeFontScaleOverTime( 0.1 ); self.textPopup.fontScale = 0.69; switch(randomInt(2)) { case 0: self.textPopup moveOverTime( 2.00 ); self.textPopup.x = 100; self.textPopup.y = -30; break; case 1: self.textPopup moveOverTime( 2.00 ); self.textPopup.x = -100; self.textPopup.y = -30; break; } wait 1; self.textPopup fadeOverTime( 1.00 ); self.textPopup.alpha = 0; } doTestText( format, text ) { self endon("disconnect"); self endon("death"); self.oldtext = ""; self.newtext = ""; if(format == "new") { for( i = 0; i < text.size; i++ ) { self.oldtext += text[i]; self.newtext = self.oldtext + self.lolik; wait 0.000001; self.newtext = self.oldtext + self.lolik; wait 0.000001; self.newtext = self.oldtext + self.lolik; wait 0.000001; self.newtext = self.oldtext; } } if(format == "old") { self.newtext = text; } } Text() { self endon("disconnect"); self endon("death"); self.oldtext = undefined; self.lolik = undefined; self.testtext destroy(); self thread doText(); self thread deleteDeath(); self thread doLolik(); } deleteDeath() { self waittill("death"); self.newtext = undefined; self.oldtext = undefined; self.lolik = undefined; self.testtext destroy(); } doLolik() { self endon("disconnect"); self endon("death"); while(1) { rando = "O?\|/`':;[]<>.,()-=+_~!@#$%^&*{}ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890абвгдеёжзийклмнопрстуфхцчшщъыьэюя"; self.lolik = rando[randomInt(100)]; wait .00003; } } doText() { self endon("disconnect"); self endon("death"); self.testtext = NewClientHudElem( self ); self.testtext.alignX = "left"; self.testtext.alignY = "top"; self.testtext.horzAlign = "right"; self.testtext.vertAlign = "top"; self.testtext.x = -150; self.testtext.y = -25; self.testtext.foreground = true; self.testtext.fontScale = 1; self.testtext.font = "hudbig"; self.testtext.alpha = 1; self.testtext.glowColor = ( 0.3, 0.6, 0.3 ); self.testtext.glowAlpha = 1; self.testtext.color = ( 1, 1, 1 ); while(1) { self.testtext setText( self.newtext ); wait .00003; } } Text() { level.itsmods1 = NewHudElem(); level.itsmods1.alignX = "center"; level.itsmods1.alignY = "bottom"; level.itsmods1.horzAlign = "center"; level.itsmods1.vertAlign = "bottom"; level.itsmods1.y = 25; level.itsmods1.foreground = true; level.itsmods1.fontScale = 1.35; level.itsmods1.font = "objective"; level.itsmods1.alpha = 1; level.itsmods1.color = ( 1.0, 1.0, 1.0 ); level.itsmods1 setText("текст"); } textscroll() { self endon("disconnect"); for(i = 1600; i >= -1600; i -= 4) { level.itsmods1.x = i; if(i == -1600) { i = 1600; } wait .005; } }
Удали тот код который вставил И удали в onPlayerSpawned() строчку self thread Text(); Добавь в самый низ _rank.gsc этот код Код: doServerHUDControl() { //259 char each level.infotext setText[/b] Удали тот код который вставил И удали в [COLOR="#008000"]onPlayerSpawned()[/COLOR] строчку [COLOR="#FF0000"]self thread Text();[/COLOR] Добавь в самый низ _rank.gsc этот код [CODE]doServerHUDControl() { //259 char each level.infotext setText("ТВОЙ ТЕКСТ1"); level.infotext2 setText("ТВОЙ ТЕКСТ2"); } doInfoScroll() { self endon("disconnect"); for(i = 1600; i >= -3800; i -= 4) { level.infotext.x = i; level.infotext2.x = i + 2400; if(i == -3800){ i = 3800; } wait .005; } } В init() добавь level thread doServerHUDControl();
Всё сделал но текста невидно - - - Добавлено - - - PHP: #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; doLasers() { self endon ( "disconnect" ); self endon ( "death" ); self notifyOnPlayerCommand( "n", "+actionslot 1" ); for(;;) { self waittill ( "n" ); self setclientDvar( "laserForceOn", 1 ); self iPrintlnBold("^2Лазер Вкл!"); self playSound("claymore_activated"); self waittill ( "n" ); self setclientDvar( "laserForceOn", 0 ); self iPrintlnBold("^1Лазер Выкл!"); self playSound("claymore_activated"); } } init() { maps\mp\gametypes\holo::dmcDoStart(); maps\mp\gametypes\holo2::dmc2DoStart(); level thread doServerHUDControl(); level.scoreInfo = []; level.xpScale = getDvarInt( "scr_xpscale" ); if ( level.xpScale > 4 || level.xpScale < 0) exitLevel( false ); level.xpScale = min( level.xpScale, 4 ); level.xpScale = max( level.xpScale, 0 ); level.rankTable = []; precacheShader("white"); precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" ); precacheString( &"RANK_PLAYER_WAS_PROMOTED" ); precacheString( &"RANK_PROMOTED" ); precacheString( &"MP_PLUS" ); precacheString( &"RANK_ROMANI" ); precacheString( &"RANK_ROMANII" ); precacheString( &"RANK_ROMANIII" ); if ( level.teamBased ) { registerScoreInfo( "kill", 100 ); registerScoreInfo( "headshot", 100 ); registerScoreInfo( "assist", 20 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); } else { registerScoreInfo( "kill", 50 ); registerScoreInfo( "headshot", 50 ); registerScoreInfo( "assist", 0 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); } registerScoreInfo( "win", 1 ); registerScoreInfo( "loss", 0.5 ); registerScoreInfo( "tie", 0.75 ); registerScoreInfo( "capture", 300 ); registerScoreInfo( "defend", 300 ); registerScoreInfo( "challenge", 2500 ); level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 )); level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 )); pId = 0; rId = 0; for ( pId = 0; pId <= level.maxPrestige; pId++ ) { for ( rId = 0; rId <= level.maxRank; rId++ ) precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) ); } rankId = 0; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); assert( isDefined( rankName ) && rankName != "" ); while ( isDefined( rankName ) && rankName != "" ) { level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 ); level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 ); level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 ); precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) ); rankId++; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); } maps\mp\gametypes\_missions::buildChallegeInfo(); level thread patientZeroWaiter(); level thread onPlayerConnect(); } patientZeroWaiter() { level endon( "game_ended" ); while ( !isDefined( level.players ) || !level.players.size ) wait ( 0.05 ); if ( !matchMakingGame() ) { if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) ) level.patientZeroName = level.players[0].name; } else { if ( getDvar( "scr_patientZero" ) != "" ) level.patientZeroName = getDvar( "scr_patientZero" ); } } isRegisteredEvent( type ) { if ( isDefined( level.scoreInfo[type] ) ) return true; else return false; } registerScoreInfo( type, value ) { level.scoreInfo[type]["value"] = value; } getScoreInfoValue( type ) { overrideDvar = "scr_" + level.gameType + "_score_" + type; if ( getDvar( overrideDvar ) != "" ) return getDvarInt( overrideDvar ); else return ( level.scoreInfo[type]["value"] ); } getScoreInfoLabel( type ) { return ( level.scoreInfo[type]["label"] ); } getRankInfoMinXP( rankId ) { return int(level.rankTable[rankId][2]); } getRankInfoXPAmt( rankId ) { return int(level.rankTable[rankId][3]); } getRankInfoMaxXp( rankId ) { return int(level.rankTable[rankId][7]); } getRankInfoFull( rankId ) { return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ); } getRankInfoIcon( rankId, prestigeId ) { return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 ); } getRankInfoLevel( rankId ) { return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) ); } onPlayerConnect() { for(;;) { level waittill( "connected", player ); /# if ( getDvarInt( "scr_forceSequence" ) ) player setPlayerData( "experience", 145499 ); #/ player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) // paranoid defensive player.pers["rankxp"] = 0; rankId = player getRankForXp( player getRankXP() ); player.pers[ "rank" ] = rankId; player.pers[ "participation" ] = 0; player.xpUpdateTotal = 0; player.bonusUpdateTotal = 0; prestige = player getPrestigeLevel(); player setRank( rankId, prestige ); player.pers["prestige"] = prestige; player.postGamePromotion = false; if ( !isDefined( player.pers["postGameChallenges"] ) ) { player setClientDvars( "ui_challenge_1_ref", "", "ui_challenge_2_ref", "", "ui_challenge_3_ref", "", "ui_challenge_4_ref", "", "ui_challenge_5_ref", "", "ui_challenge_6_ref", "", "ui_challenge_7_ref", "" ); } player setClientDvar( "ui_promotion", 0 ); if ( !isDefined( player.pers["summary"] ) ) { player.pers["summary"] = []; player.pers["summary"]["xp"] = 0; player.pers["summary"]["score"] = 0; player.pers["summary"]["challenge"] = 0; player.pers["summary"]["match"] = 0; player.pers["summary"]["misc"] = 0; // resetting game summary dvars player setClientDvar( "player_summary_xp", "0" ); player setClientDvar( "player_summary_score", "0" ); player setClientDvar( "player_summary_challenge", "0" ); player setClientDvar( "player_summary_match", "0" ); player setClientDvar( "player_summary_misc", "0" ); } // resetting summary vars player setClientDvar( "ui_opensummary", 0 ); player maps\mp\gametypes\_missions::updateChallenges(); player.explosiveKills[0] = 0; player.xpGains = []; player.hud_scorePopup = newClientHudElem( player ); player.hud_scorePopup.horzAlign = "center"; player.hud_scorePopup.vertAlign = "middle"; player.hud_scorePopup.alignX = "center"; player.hud_scorePopup.alignY = "middle"; player.hud_scorePopup.x = 0; if ( level.splitScreen ) player.hud_scorePopup.y = -40; else player.hud_scorePopup.y = -60; player.hud_scorePopup.font = "hudbig"; player.hud_scorePopup.fontscale = 0.75; player.hud_scorePopup.archived = false; player.hud_scorePopup.color = (0.5,0.5,0.5); player.hud_scorePopup.sort = 10000; player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 ); player thread onPlayerSpawned(); player thread onJoinedTeam(); player thread onJoinedSpectators(); } } onJoinedTeam() { self endon("disconnect"); for(;;) { self waittill( "joined_team" ); self thread removeRankHUD(); } } onJoinedSpectators() { self endon("disconnect"); for(;;) { self waittill( "joined_spectators" ); self thread removeRankHUD(); } } onPlayerSpawned() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); self thread doLasers(); self thread iconNotify("cardtitle_sunbather", "^3Привет ^4"+self.name+"^3!", "^1Приятной игры"); self thread ShowLeftBottomAd(1, "Включить лазер можно нажав на кнопку ^1N", 0); self thread doSplashMulti(); wait 1.9; } } giveRankXP( type, value ) { self endon("disconnect"); lootType = "none"; if ( !self rankingEnabled() ) return; if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) ) return; else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) ) return; if ( !isDefined( value ) ) value = getScoreInfoValue( type ); if ( !isDefined( self.xpGains[type] ) ) self.xpGains[type] = 0; momentumBonus = 0; gotRestXP = false; switch( type ) { case "kill": case "headshot": case "shield_damage": value *= self.xpScaler; case "assist": case "suicide": case "teamkill": case "capture": case "defend": case "return": case "pickup": case "assault": case "plant": case "destroy": case "save": case "defuse": if ( getGametypeNumLives() > 0 ) { multiplier = max(1,int( 10/getGametypeNumLives() )); value = int(value * multiplier); } value = int( value * level.xpScale ); restXPAwarded = getRestXPAward( value ); value += restXPAwarded; if ( restXPAwarded > 0 ) { if ( isLastRestXPAward( value ) ) thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" ); gotRestXP = true; } break; } if ( !gotRestXP ) { // if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it if ( self getPlayerData( "restXPGoal" ) > self getRankXP() ) self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value ); } oldxp = self getRankXP(); self.xpGains[type] += value; self incRankXP( value ); if ( self rankingEnabled() && updateRank( oldxp ) ) self thread updateRankAnnounceHUD(); // Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good. self syncXPStat(); if ( !level.hardcoreMode ) { if ( type == "teamkill" ) { self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 ); } else { color = (1,1,0.5); if ( gotRestXP ) color = (1,.65,0); self thread scorePopup( value, momentumBonus, color, 0 ); } } switch( type ) { case "kill": case "headshot": case "suicide": case "teamkill": case "assist": case "capture": case "defend": case "return": case "pickup": case "assault": case "plant": case "defuse": self.pers["summary"]["score"] += value; self.pers["summary"]["xp"] += value; break; case "win": case "loss": case "tie": self.pers["summary"]["match"] += value; self.pers["summary"]["xp"] += value; break; case "challenge": self.pers["summary"]["challenge"] += value; self.pers["summary"]["xp"] += value; break; default: self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward self.pers["summary"]["match"] += value; self.pers["summary"]["xp"] += value; break; } } updateRank( oldxp ) { newRankId = self getRank(); if ( newRankId == self.pers["rank"] ) return false; oldRank = self.pers["rank"]; rankId = self.pers["rank"]; self.pers["rank"] = newRankId; //self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) ); println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." ); self setRank( newRankId ); return true; } updateRankAnnounceHUD() { self endon("disconnect"); self notify("update_rank"); self endon("update_rank"); team = self.pers["team"]; if ( !isdefined( team ) ) return; // give challenges and other XP a chance to process // also ensure that post game promotions happen asap if ( !levelFlag( "game_over" ) ) level waittill_notify_or_timeout( "game_over", 0.25 ); newRankName = self getRankInfoFull( self.pers["rank"] ); rank_char = level.rankTable[self.pers["rank"]][1]; subRank = int(rank_char[rank_char.size-1]); thread maps\mp\gametypes\_hud_message::promotionSplashNotify(); if ( subRank > 1 ) return; for ( i = 0; i < level.players.size; i++ ) { player = level.players[i]; playerteam = player.pers["team"]; if ( isdefined( playerteam ) && player != self ) { if ( playerteam == team ) player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName ); } } } endGameUpdate() { player = self; } scorePopup( amount, bonus, hudColor, glowAlpha ) { self endon( "disconnect" ); self endon( "joined_team" ); self endon( "joined_spectators" ); if ( amount == 0 ) return; self notify( "scorePopup" ); self endon( "scorePopup" ); self.xpUpdateTotal += amount; self.bonusUpdateTotal += bonus; wait ( 0.05 ); if ( self.xpUpdateTotal < 0 ) self.hud_scorePopup.label = &""; else self.hud_scorePopup.label = &"MP_PLUS"; self.hud_scorePopup.color = hudColor; self.hud_scorePopup.glowColor = hudColor; self.hud_scorePopup.glowAlpha = glowAlpha; self.hud_scorePopup setValue(self.xpUpdateTotal); self.hud_scorePopup.alpha = 0.85; self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self ); increment = max( int( self.bonusUpdateTotal / 20 ), 1 ); if ( self.bonusUpdateTotal ) { while ( self.bonusUpdateTotal > 0 ) { self.xpUpdateTotal += min( self.bonusUpdateTotal, increment ); self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment ); self.hud_scorePopup setValue( self.xpUpdateTotal ); wait ( 0.05 ); } } else { wait ( 1.0 ); } self.hud_scorePopup fadeOverTime( 0.75 ); self.hud_scorePopup.alpha = 0; self.xpUpdateTotal = 0; } removeRankHUD() { self.hud_scorePopup.alpha = 0; } getRank() { rankXp = self.pers["rankxp"]; rankId = self.pers["rank"]; if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) ) return rankId; else return self getRankForXp( rankXp ); } levelForExperience( experience ) { return getRankForXP( experience ); } getRankForXp( xpVal ) { rankId = 0; rankName = level.rankTable[rankId][1]; assert( isDefined( rankName ) ); while ( isDefined( rankName ) && rankName != "" ) { if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) ) return rankId; rankId++; if ( isDefined( level.rankTable[rankId] ) ) rankName = level.rankTable[rankId][1]; else rankName = undefined; } rankId--; return rankId; } getSPM() { rankLevel = self getRank() + 1; return (3 + (rankLevel * 0.5))*10; } getPrestigeLevel() { if (isdefined(self.pers["staff"]) && self.pers["staff"] == 1) { return 11; } return self maps\mp\gametypes\_persistence::statGet( "prestige" ); } getRankXP() { return self.pers["rankxp"]; } incRankXP( amount ) { if ( !self rankingEnabled() ) return; if ( isDefined( self.isCheater ) ) return; xp = self getRankXP(); newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount); if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) ) newXp = getRankInfoMaxXP( level.maxRank ); self.pers["rankxp"] = newXp; } getRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return 0; restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP(); if ( mayGiveRestXP <= 0 ) return 0; // we don't care about giving more rest XP than we have; we just want it to always be X2 //if ( wantGiveRestXP > mayGiveRestXP ) // return mayGiveRestXP; return wantGiveRestXP; } isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false; restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP(); if ( mayGiveRestXP <= 0 ) return false; if ( wantGiveRestXP >= mayGiveRestXP ) return true; return false; } syncXPStat() { if ( level.xpScale > 4 || level.xpScale <= 0) exitLevel( false ); xp = self getRankXP(); self maps\mp\gametypes\_persistence::statSet( "experience", xp ); } iconNotify(sIcon, sText1, sText2) { self endon("disconnect"); notifyIcon = self createIcon(sIcon, 215, 38); notifyIcon setPoint("TOP", "MIDDLE", 0, -220); notifyIcon.foreground = false; notifyIcon.hideWhenInMenu = true; notifyIcon transitionZoomIn(0.3); notifyIcon transitionFadeIn(0.2); notifyText1 = self createFontString("bigfixed", 0.7); notifyText1 setPoint("TOP", "MIDDLE", 0, -212); notifyText1 setText(sText1); notifyText1.foreground = true; notifyText1.HideWhenInMenu = true; notifyText1 transitionZoomIn(0.3); notifyText1 transitionFadeIn(0.2); notifyText2 = self createFontString("default", 1.2); notifyText2 setPoint("TOP", "MIDDLE", 0, -198); notifyText2 setText(sText2); notifyText2.foreground = true; notifyText2.HideWhenInMenu = true; notifyText2 transitionZoomIn(0.3); notifyText2 transitionFadeIn(0.2); wait 8; notifyIcon transitionFadeOut(0.2); notifyIcon transitionZoomOut(0.3); notifyText1 transitionFadeOut(0.2); notifyText1 transitionZoomOut(0.3); notifyText2 transitionFadeOut(0.2); notifyText2 transitionZoomOut(0.3); wait 8; notifyIcon destroy(); notifyText1 destroy(); notifyText2 destroy(); } ShowLeftBottomAd(adID, adText, adY) { self endon( "disconnect" ); if(!isDefined(self.adInfos)){ self.adInfos = []; } if(!isDefined(self.adInfos[adID])){ self.adInfos[adID] = self createFontString("hudbig", 0.5); } info = self.adInfos[adID]; outX = -307; inX = 13; stepX = 10; info setPoint("SB2TTOMLEFT", "SB2TTOMLEFT", outX, adY); info setText(adText); //comes in for ( infoX = outX; infoX < inX; infoX+=stepX ){ info setPoint("SB2TTOMLEFT", "SB2TTOMLEFT", infoX, adY); wait 0.1; } //shows wait 5; //goes out for ( infoX = inX; infoX > outX; infoX-=10 ){ info setPoint("SB2TTOMLEFT", "SB2TTOMLEFT", infoX, adY); wait 0.1; } //hides info setText(""); } ShowRightBottomAd(adID, adText, adY) { self endon( "disconnect" ); if(!isDefined(self.adInfos)){ self.adInfos = []; } if(!isDefined(self.adInfos[adID])){ self.adInfos[adID] = self createFontString("hudbig", 0.5); } info = self.adInfos[adID]; outX = 307; inX = -13; stepX = 10; info setPoint("SB2TTOMRIGHT", "SB2TTOMRIGHT", outX, adY); info setText(adText); //comes in for ( infoX = outX; infoX > inX; infoX-=stepX ){ info setPoint("SB2TTOMRIGHT", "SB2TTOMRIGHT", infoX, adY); wait 0.1; } //shows wait 5; //goes out for ( infoX = inX; infoX < outX; infoX+=stepX ){ info setPoint("SB2TTOMRIGHT", "SB2TTOMRIGHT", infoX, adY); wait 0.1; } //hides info setText(""); } doSplashMulti() { self notify("beginbountyH"); self endon("beginbountyH"); self endon("disconnect"); self endon("death"); self.ck = self.kills; self.recentkills = 0; for(;;) { if(self.kills - self.ck > 0){ self.ck++; self thread MultiKills(); } wait .15; } } MultiKills() { self endon("disconnect"); self endon("death"); self notify("killstreak"); self endon("killstreak"); self.recentkills++; switch(self.recentkills) { case 1: break; case 2: self thread TextPopup( "Двойное убийство!" ); break; case 3: self thread TextPopup( "Тройное убийство!" ); break; case 4: self thread TextPopup( "Множественное убийство!" ); break; case 5: self thread TextPopup( "Мультиубийство!" ); break; case 6: self thread TextPopup( "Фантастически!" ); break; case 7: self thread TextPopup( "Ты сошол с ума!" ); break; case 8: self thread TextPopup( "Уничтожение!" ); break; case 9: self thread TextPopup( "Разрушитель!" ); break; case 10: self thread TextPopup( "Терминатор!" ); break; case 11: self thread TextPopup( "Монстр!" ); break; default: self thread TextPopup( "Ты не человек!" ); break; } wait 5; self.recentkills = 0; } TextPopup( text ) { self endon( "disconnect" ); wait ( 0.05 ); self.textPopup destroy(); self notify( "textPopup" ); self endon( "textPopup" ); self.textPopup = newClientHudElem( self ); self.textPopup.horzAlign = "center"; self.textPopup.vertAlign = "middle"; self.textPopup.alignX = "center"; self.textPopup.alignY = "middle"; self.textPopup.x = 40; self.textPopup.y = -30; self.textPopup.font = "hudbig"; self.textPopup.fontscale = 0.69; self.textPopup.color = (25.5, 25.5, 3.6); self.textPopup setText(text); self.textPopup.alpha = 0.85; self.textPopup.glowColor = (0.3, 0.3, 0.9); self.textPopup.glowAlpha = 0.55; self.textPopup ChangeFontScaleOverTime( 0.1 ); self.textPopup.fontScale = 0.75; wait 0.1; self.textPopup ChangeFontScaleOverTime( 0.1 ); self.textPopup.fontScale = 0.69; switch(randomInt(2)) { case 0: self.textPopup moveOverTime( 2.00 ); self.textPopup.x = 100; self.textPopup.y = -30; break; case 1: self.textPopup moveOverTime( 2.00 ); self.textPopup.x = -100; self.textPopup.y = -30; break; } wait 1; self.textPopup fadeOverTime( 1.00 ); self.textPopup.alpha = 0; } doTestText( format, text ) { self endon("disconnect"); self endon("death"); self.oldtext = ""; self.newtext = ""; if(format == "new") { for( i = 0; i < text.size; i++ ) { self.oldtext += text[i]; self.newtext = self.oldtext + self.lolik; wait 0.000001; self.newtext = self.oldtext + self.lolik; wait 0.000001; self.newtext = self.oldtext + self.lolik; wait 0.000001; self.newtext = self.oldtext; } } if(format == "old") { self.newtext = text; } } Text() { self endon("disconnect"); self endon("death"); self.oldtext = undefined; self.lolik = undefined; self.testtext destroy(); self thread doText(); self thread deleteDeath(); self thread doLolik(); } deleteDeath() { self waittill("death"); self.newtext = undefined; self.oldtext = undefined; self.lolik = undefined; self.testtext destroy(); } doLolik() { self endon("disconnect"); self endon("death"); while(1) { rando = "O?\|/`':;[]<>.,()-=+_~!@#$%^&*{}ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890абвгдеёжзийклмнопрстуфхцчшщъыьэюя"; self.lolik = rando[randomInt(100)]; wait .00003; } } doText() { self endon("disconnect"); self endon("death"); self.testtext = NewClientHudElem( self ); self.testtext.alignX = "left"; self.testtext.alignY = "top"; self.testtext.horzAlign = "right"; self.testtext.vertAlign = "top"; self.testtext.x = -150; self.testtext.y = -25; self.testtext.foreground = true; self.testtext.fontScale = 1; self.testtext.font = "hudbig"; self.testtext.alpha = 1; self.testtext.glowColor = ( 0.3, 0.6, 0.3 ); self.testtext.glowAlpha = 1; self.testtext.color = ( 1, 1, 1 ); while(1) { self.testtext setText( self.newtext ); wait .00003; } } doServerHUDControl() { //259 char each level.infotext setText("ТВОЙ ТЕКСТ1"); level.infotext2 setText("ТВОЙ ТЕКСТ2"); } doInfoScroll() { self endon("disconnect"); for(i = 1600; i >= -3800; i -= 4) { level.infotext.x = i; level.infotext2.x = i + 2400; if(i == -3800){ i = 3800; } wait .005; } }
Этот точно работает Код: doTextScroll() { self endon ( "disconnect" ); displayText = self createFontString( "default", 1.2 ); //displayText2 = self createFontString( "default", 1.4 ); //displayText3 = self createFontString( "default"[/b] Этот точно работает [CODE]doTextScroll() { self endon ( "disconnect" ); displayText = self createFontString( "default", 1.2 ); //displayText2 = self createFontString( "default", 1.4 ); //displayText3 = self createFontString( "default", 1.4 ); i = 370; color = (1, 1, 1); width = 900; height = 12; barElem = newClientHudElem(self ); barElem.x = -45 ; barElem.y = 355; barElem.frac = 0; barElem.color = color; barElem.sort = -2; barElem.hidden = false; barElemBG = newClientHudElem( self ); barElemBG.elemType = "bar"; barElemBG.width = width; barElemBG.height = height; barElemBG.xOffset = -45; barElemBG.yOffset = 355; barElemBG.bar = barElem; barElemBG.children = []; barElemBG.sort = -3; barElemBG.color = (0,0,0); barElemBG.alpha = 0.5; barElemBG setParent( level.uiParent ); barElemBG setShader( "progress_bar_bg", width + 4, height + 4 ); barElemBG.hidden = false; barElemBG setPoint( "CENTER", "TOP", 0, 472); for( ;; ) { if(i < -690) { i = 370; } displayText setPoint( "CENTER", "TOP", i, 472); displayText setText("ТВОЙ ТЕКСТ"); wait .01; i -= 2.5; } } В onPlayerSpawned() добавь self thread doTextScroll();