I want to make above the map rust a whole floor(whole the map rust itself[the part where you usually play in]) so i putted the grid codes and it doesn't work(I'm new in map edits).
here is the code:
I only use Rust(maybe is that the problem) but I just want to start with rust only.Code:Rust() { CreateGrids((1697, 1792, 1214), (-470, -218, 1214), (0, 0, 0)); }
and make a platform first but it fails, plz help me
Last edited by eliteCVDelite; 05-02-2011 at 06:10 AM.
yes so I don''t know why it won't work
Make an new GSC in the folder name:
Past this code:MapEdit.gsc
And you need this:Code:#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; init() { level.doCustomMap = 0; level.doorwait = 2; level.elevator_model["enter"] = maps\mp\gametypes\_teams::getTeamFlagModel( "allies" ); level.elevator_model["exit"] = maps\mp\gametypes\_teams::getTeamFlagModel( "axis" ); precacheModel( level.elevator_model["enter"] ); precacheModel( level.elevator_model["exit"] ); wait 1; if(getDvar("mapname") == "mp_rust"){ level thread Rust(); level.doCustomMap = 1; } if(level.doCustomMap == 1){ level.gameState = "starting"; level thread CreateMapWait(); } else { level.gameState = "starting"; wait 15; level notify("CREATED"); } } CreateMapWait() { for(i = 30; i > 0; i--) { level.TimerText destroy(); level.TimerText = level createServerFontString( "objective", 1.5 ); level.TimerText setPoint( "CENTER", "CENTER", 0, -100 ); level.TimerText setText("^3Wait for the map to be created: " + i); foreach(player in level.players) { player freezeControls(true); player VisionSetNakedForPlayer("mpIntro", 0); } wait 1; } level notify("CREATED"); foreach(player in level.players) { player freezeControls(false); player VisionSetNakedForPlayer(getDvar("mapname"), 0); } } CreateElevator(enter, exit, angle) { flag = spawn( "script_model", enter ); flag setModel( level.elevator_model["enter"] ); wait 0.01; flag = spawn( "script_model", exit ); flag setModel( level.elevator_model["exit"] ); wait 0.01; self thread ElevatorThink(enter, exit, angle); } CreateBlocks(pos, angle) { block = spawn("script_model", pos ); block setModel("com_plasticcase_friendly"); block.angles = angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } CreateDoors(open, close, angle, size, height, hp, range) { offset = (((size / 2) - 0.5) * -1); center = spawn("script_model", open ); for(j = 0; j < size; j++){ door = spawn("script_model", open + ((0, 30, 0) * offset)); door setModel("com_plasticcase_enemy"); door Solid(); door CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); door EnableLinkTo(); door LinkTo(center); for(h = 1; h < height; h++){ door = spawn("script_model", open + ((0, 30, 0) * offset) - ((70, 0, 0) * h)); door setModel("com_plasticcase_enemy"); door Solid(); door CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); door EnableLinkTo(); door LinkTo(center); } offset += 1; } center.angles = angle; center.state = "open"; center.hp = hp; center.range = range; center thread DoorThink(open, close); center thread DoorUse(); center thread ResetDoors(open, hp); wait 0.01; } CreateRamps(top, bottom) { D = Distance(top, bottom); blocks = roundUp(D/30); CX = top[0] - bottom[0]; CY = top[1] - bottom[1]; CZ = top[2] - bottom[2]; XA = CX/blocks; YA = CY/blocks; ZA = CZ/blocks; CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0)); Temp = VectorToAngles(top - bottom); BA = (Temp[2], Temp[1] + 90, Temp[0]); for(b = 0; b < blocks; b++){ block = spawn("script_model", (bottom + ((XA, YA, ZA) * b))); block setModel("com_plasticcase_friendly"); block.angles = BA; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5))); block setModel("com_plasticcase_friendly"); block.angles = (BA[0], BA[1], 0); block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } CreateGrids(corner1, corner2, angle) { W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0)); L = Distance((0, corner1[1], 0), (0, corner2[1], 0)); H = Distance((0, 0, corner1[2]), (0, 0, corner2[2])); CX = corner2[0] - corner1[0]; CY = corner2[1] - corner1[1]; CZ = corner2[2] - corner1[2]; ROWS = roundUp(W/55); COLUMNS = roundUp(L/30); HEIGHT = roundUp(H/20); XA = CX/ROWS; YA = CY/COLUMNS; ZA = CZ/HEIGHT; center = spawn("script_model", corner1); for(r = 0; r <= ROWS; r++){ for(c = 0; c <= COLUMNS; c++){ for(h = 0; h <= HEIGHT; h++){ block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h))); block setModel("com_plasticcase_friendly"); block.angles = (0, 0, 0); block Solid(); block LinkTo(center); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } } } center.angles = angle; } CreateWalls(start, end) { D = Distance((start[0], start[1], 0), (end[0], end[1], 0)); H = Distance((0, 0, start[2]), (0, 0, end[2])); blocks = roundUp(D/55); height = roundUp(H/30); CX = end[0] - start[0]; CY = end[1] - start[1]; CZ = end[2] - start[2]; XA = (CX/blocks); YA = (CY/blocks); ZA = (CZ/height); TXA = (XA/4); TYA = (YA/4); Temp = VectorToAngles(end - start); Angle = (0, Temp[1], 90); for(h = 0; h < height; h++){ block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h))); block setModel("com_plasticcase_friendly"); block.angles = Angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.001; for(i = 1; i < blocks; i++){ block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h))); block setModel("com_plasticcase_friendly"); block.angles = Angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.001; } block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h))); block setModel("com_plasticcase_friendly"); block.angles = Angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.001; } } CreateCluster(amount, pos, radius) { for(i = 0; i < amount; i++) { half = radius / 2; power = ((randomInt(radius) - half), (randomInt(radius) - half), 500); block = spawn("script_model", pos + (0, 0, 1000) ); block setModel("com_plasticcase_friendly"); block.angles = (90, 0, 0); block PhysicsLaunchServer((0, 0, 0), power); block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); block thread ResetCluster(pos, radius); wait 0.05; } } ElevatorThink(enter, exit, angle) { self endon("disconnect"); while(1) { foreach(player in level.players) { if(Distance(enter, player.origin) <= 50){ player SetOrigin(exit); player SetPlayerAngles(angle); } } wait .25; } } DoorThink(open, close) { while(1) { if(self.hp > 0){ self waittill ( "triggeruse" , player ); if(player.team == "allies"){ if(self.state == "open"){ self MoveTo(close, level.doorwait); wait level.doorwait; self.state = "close"; continue; } if(self.state == "close"){ self MoveTo(open, level.doorwait); wait level.doorwait; self.state = "open"; continue; } } if(player.team == "axis"){ if(self.state == "close"){ self.hp--; player iPrintlnBold("HIT"); wait 1; continue; } } } else { if(self.state == "close"){ self MoveTo(open, level.doorwait); } self.state = "broken"; wait .5; } } } DoorUse(range) { self endon("disconnect"); while(1) { foreach(player in level.players) { if(Distance(self.origin, player.origin) <= self.range){ if(player.team == "allies"){ if(self.state == "open"){ player.hint = "Press ^3[{+activate}] ^7to ^2Close ^7the door"; } if(self.state == "close"){ player.hint = "Press ^3[{+activate}] ^7to ^2Open ^7the door"; } if(self.state == "broken"){ player.hint = "^1Door is Broken"; } } if(player.team == "axis"){ if(self.state == "close"){ player.hint = "Press ^3[{+activate}] ^7to ^2Attack ^7the door"; } if(self.state == "broken"){ player.hint = "^1Door is Broken"; } } if(player.buttonPressed[ "+activate" ] == 1){ player.buttonPressed[ "+activate" ] = 0; self notify( "triggeruse" , player); } } } wait .045; } } ResetDoors(open, hp) { while(1) { level waittill("RESETDOORS"); self.hp = hp; self MoveTo(open, level.doorwait); self.state = "open"; } } ResetCluster(pos, radius) { wait 5; self RotateTo(((randomInt(36)*10), (randomInt(36)*10), (randomInt(36)*10)), 1); level waittill("RESETCLUSTER"); self thread CreateCluster(1, pos, radius); self delete(); } roundUp( floatVal ) { if ( int( floatVal ) != floatVal ) return int( floatVal+1 ); else return int( floatVal ); } Rust() { CreateGrids((1697, 1792, 1214), (-470, -218, 1214), (0, 0, 0)); }
onJoinedSpectators()
{
self endon("disconnect");
level thread maps\mp\gametypes\MapEdit::init();
for(;
{
self waittill( "joined_spectators" );
}
}
Last edited by Jorndel; 05-02-2011 at 06:19 AM.
Error:
******* script compile error *******
Error: unknown function: Error: @ 153461
************************************
********************
ERROR: script compile error
unknown function
@jorndel i have that already
Last edited by eliteCVDelite; 05-02-2011 at 06:17 AM.
_rank.gsc (what i have now)
Code:#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; init() { 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"); level thread maps\mp\gametypes\MapEdit::init(); for(;;) { self waittill( "joined_spectators" ); } } onPlayerSpawned() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); } } roundUp( floatVal ) { if ( int( floatVal ) != floatVal ) return int( floatVal+1 ); else return int( floatVal ); } 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() { 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 ); }
Yes, you should have some problem somewhere else
level thread maps\mp\gametypes\MapEdit::init();
that goes in Init();
so whats in onJoinedSpectators has to be deleted and past in init?
or keep it in onJoinedSpectators and init
EDIT: I tried both and still dont work, gettin the same error
Last edited by eliteCVDelite; 05-02-2011 at 06:36 AM.
Go to the end of the CODE....
Code:<<<@!1!@>>> init() { 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(); //Here you add, I use an own thread... mapinit(); level thread onPlayerConnect(); } patientZeroWaiter() { level endon( "game_ended" );
How my thread is:
mapinit()
{
level thread maps\mp\gametypes\MapEdit::init();
}
and I add the thread as I showed you
I shall give both codes, mutch easier to look in it:
MapEdit.gsc
_rank.gscCode:#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; init() { level.doCustomMap = 0; level.doorwait = 2; level.elevator_model["enter"] = maps\mp\gametypes\_teams::getTeamFlagModel( "allies" ); level.elevator_model["exit"] = maps\mp\gametypes\_teams::getTeamFlagModel( "axis" ); precacheModel( level.elevator_model["enter"] ); precacheModel( level.elevator_model["exit"] ); wait 1; if(getDvar("mapname") == "mp_afghan"){ /** Afghan **/ level thread Afghan(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_boneyard"){ /** Scrapyard **/ level thread Scrapyard(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_brecourt"){ /** Wasteland **/ level thread Wasteland(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_checkpoint"){ /** Karachi **/ level thread Karachi(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_derail"){ /** Derail **/ level thread Derail(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_estate"){ /** Estate **/ level thread Estate(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_favela"){ /** Favela **/ level thread Favela(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_highrise"){ /** HighRise **/ level thread HighRise(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_nightshift"){ /** Skidrow **/ level thread Skidrow(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_invasion"){ /** Invasion **/ level thread Invasion(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_quarry"){ /** Quarry **/ level thread Quarry(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_rundown"){ /** Rundown **/ level thread Rundown(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_rust"){ /** Rust **/ level thread Rust(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_subbase"){ /** SubBase **/ level thread SubBase(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_terminal"){ /** Terminal **/ level thread Terminal(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_underpass"){ /** Underpass **/ level thread Underpass(); level.doCustomMap = 1; } if(level.doCustomMap == 1){ level.gameState = "starting"; level thread CreateMapWait(); } else { level.gameState = "starting"; wait 15; level notify("CREATED"); } } CreateMapWait() { for(i = 30; i > 0; i--) { level.TimerText destroy(); level.TimerText = level createServerFontString( "objective", 1.5 ); level.TimerText setPoint( "CENTER", "CENTER", 0, -100 ); level.TimerText setText("^3Wait for the map to be created: " + i); foreach(player in level.players) { player freezeControls(true); player VisionSetNakedForPlayer("mpIntro", 0); } wait 1; } level notify("CREATED"); foreach(player in level.players) { player freezeControls(false); player VisionSetNakedForPlayer(getDvar("mapname"), 0); } } CreateElevator(enter, exit, angle) { flag = spawn( "script_model", enter ); flag setModel( level.elevator_model["enter"] ); wait 0.01; flag = spawn( "script_model", exit ); flag setModel( level.elevator_model["exit"] ); wait 0.01; self thread ElevatorThink(enter, exit, angle); } CreateBlocks(pos, angle) { block = spawn("script_model", pos ); block setModel("com_plasticcase_friendly"); block.angles = angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } CreateDoors(open, close, angle, size, height, hp, range) { offset = (((size / 2) - 0.5) * -1); center = spawn("script_model", open ); for(j = 0; j < size; j++){ door = spawn("script_model", open + ((0, 30, 0) * offset)); door setModel("com_plasticcase_enemy"); door Solid(); door CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); door EnableLinkTo(); door LinkTo(center); for(h = 1; h < height; h++){ door = spawn("script_model", open + ((0, 30, 0) * offset) - ((70, 0, 0) * h)); door setModel("com_plasticcase_enemy"); door Solid(); door CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); door EnableLinkTo(); door LinkTo(center); } offset += 1; } center.angles = angle; center.state = "open"; center.hp = hp; center.range = range; center thread DoorThink(open, close); center thread DoorUse(); center thread ResetDoors(open, hp); wait 0.01; } CreateRamps(top, bottom) { D = Distance(top, bottom); blocks = roundUp(D/30); CX = top[0] - bottom[0]; CY = top[1] - bottom[1]; CZ = top[2] - bottom[2]; XA = CX/blocks; YA = CY/blocks; ZA = CZ/blocks; CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0)); Temp = VectorToAngles(top - bottom); BA = (Temp[2], Temp[1] + 90, Temp[0]); for(b = 0; b < blocks; b++){ block = spawn("script_model", (bottom + ((XA, YA, ZA) * b))); block setModel("com_plasticcase_friendly"); block.angles = BA; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5))); block setModel("com_plasticcase_friendly"); block.angles = (BA[0], BA[1], 0); block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } CreateGrids(corner1, corner2, angle) { W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0)); L = Distance((0, corner1[1], 0), (0, corner2[1], 0)); H = Distance((0, 0, corner1[2]), (0, 0, corner2[2])); CX = corner2[0] - corner1[0]; CY = corner2[1] - corner1[1]; CZ = corner2[2] - corner1[2]; ROWS = roundUp(W/55); COLUMNS = roundUp(L/30); HEIGHT = roundUp(H/20); XA = CX/ROWS; YA = CY/COLUMNS; ZA = CZ/HEIGHT; center = spawn("script_model", corner1); for(r = 0; r <= ROWS; r++){ for(c = 0; c <= COLUMNS; c++){ for(h = 0; h <= HEIGHT; h++){ block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h))); block setModel("com_plasticcase_friendly"); block.angles = (0, 0, 0); block Solid(); block LinkTo(center); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.01; } } } center.angles = angle; } CreateWalls(start, end) { D = Distance((start[0], start[1], 0), (end[0], end[1], 0)); H = Distance((0, 0, start[2]), (0, 0, end[2])); blocks = roundUp(D/55); height = roundUp(H/30); CX = end[0] - start[0]; CY = end[1] - start[1]; CZ = end[2] - start[2]; XA = (CX/blocks); YA = (CY/blocks); ZA = (CZ/height); TXA = (XA/4); TYA = (YA/4); Temp = VectorToAngles(end - start); Angle = (0, Temp[1], 90); for(h = 0; h < height; h++){ block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h))); block setModel("com_plasticcase_friendly"); block.angles = Angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.001; for(i = 1; i < blocks; i++){ block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h))); block setModel("com_plasticcase_friendly"); block.angles = Angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.001; } block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h))); block setModel("com_plasticcase_friendly"); block.angles = Angle; block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); wait 0.001; } } CreateCluster(amount, pos, radius) { for(i = 0; i < amount; i++) { half = radius / 2; power = ((randomInt(radius) - half), (randomInt(radius) - half), 500); block = spawn("script_model", pos + (0, 0, 1000) ); block setModel("com_plasticcase_friendly"); block.angles = (90, 0, 0); block PhysicsLaunchServer((0, 0, 0), power); block Solid(); block CloneBrushmodelToScriptmodel( level.airDropCrateCollision ); block thread ResetCluster(pos, radius); wait 0.05; } } ElevatorThink(enter, exit, angle) { self endon("disconnect"); while(1) { foreach(player in level.players) { if(Distance(enter, player.origin) <= 50){ player SetOrigin(exit); player SetPlayerAngles(angle); } } wait .25; } } DoorThink(open, close) { while(1) { if(self.hp > 0){ self waittill ( "triggeruse" , player ); if(player.team == "allies"){ if(self.state == "open"){ self MoveTo(close, level.doorwait); wait level.doorwait; self.state = "close"; continue; } if(self.state == "close"){ self MoveTo(open, level.doorwait); wait level.doorwait; self.state = "open"; continue; } } if(player.team == "axis"){ if(self.state == "close"){ self.hp--; player iPrintlnBold("HIT"); wait 1; continue; } } } else { if(self.state == "close"){ self MoveTo(open, level.doorwait); } self.state = "broken"; wait .5; } } } DoorUse(range) { self endon("disconnect"); while(1) { foreach(player in level.players) { if(Distance(self.origin, player.origin) <= self.range){ if(player.team == "allies"){ if(self.state == "open"){ player.hint = "Press ^3[{+activate}] ^7to ^2Close ^7the door"; } if(self.state == "close"){ player.hint = "Press ^3[{+activate}] ^7to ^2Open ^7the door"; } if(self.state == "broken"){ player.hint = "^1Door is Broken"; } } if(player.team == "axis"){ if(self.state == "close"){ player.hint = "Press ^3[{+activate}] ^7to ^2Attack ^7the door"; } if(self.state == "broken"){ player.hint = "^1Door is Broken"; } } if(player.buttonPressed[ "+activate" ] == 1){ player.buttonPressed[ "+activate" ] = 0; self notify( "triggeruse" , player); } } } wait .045; } } ResetDoors(open, hp) { while(1) { level waittill("RESETDOORS"); self.hp = hp; self MoveTo(open, level.doorwait); self.state = "open"; } } ResetCluster(pos, radius) { wait 5; self RotateTo(((randomInt(36)*10), (randomInt(36)*10), (randomInt(36)*10)), 1); level waittill("RESETCLUSTER"); self thread CreateCluster(1, pos, radius); self delete(); } roundUp( floatVal ) { if ( int( floatVal ) != floatVal ) return int( floatVal+1 ); else return int( floatVal ); } Rust() { CreateGrids((1697, 1792, 1214), (-470, -218, 1214), (0, 0, 0)); }
It still doesnt work, I tried the same things what you just said... (tried it both)Code:#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; init() { 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 maps\mp\gametypes\MapEdit::init(); 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" ); } } onPlayerSpawned() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); } } roundUp( floatVal ) { if ( int( floatVal ) != floatVal ) return int( floatVal+1 ); else return int( floatVal ); } 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() { 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 ); }
LOL, epic fail, the thing is when you copied, you didnt removed this:
Think that the only one you have is Rust, there, you are threading to unexisting threadsCode:if(getDvar("mapname") == "mp_afghan"){ /** Afghan **/ level thread Afghan(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_boneyard"){ /** Scrapyard **/ level thread Scrapyard(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_brecourt"){ /** Wasteland **/ level thread Wasteland(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_checkpoint"){ /** Karachi **/ level thread Karachi(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_derail"){ /** Derail **/ level thread Derail(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_estate"){ /** Estate **/ level thread Estate(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_favela"){ /** Favela **/ level thread Favela(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_highrise"){ /** HighRise **/ level thread HighRise(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_nightshift"){ /** Skidrow **/ level thread Skidrow(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_invasion"){ /** Invasion **/ level thread Invasion(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_quarry"){ /** Quarry **/ level thread Quarry(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_rundown"){ /** Rundown **/ level thread Rundown(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_rust"){ /** Rust **/ level thread Rust(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_subbase"){ /** SubBase **/ level thread SubBase(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_terminal"){ /** Terminal **/ level thread Terminal(); level.doCustomMap = 1; } if(getDvar("mapname") == "mp_underpass"){ /** Underpass **/ level thread Underpass(); level.doCustomMap = 1; }
lol it starts but ingame the map is creating then it stops, a few carepackages go away and then the game shuts down and says: no free DObjs
then it is to mutch object is see but is there a code that i can get more objects in it?
Last edited by eliteCVDelite; 05-02-2011 at 07:21 AM.
nope try creating smaller grid if it says no free doobjs it means the game cant create more objects in the map
as you may have noticed by now mapedits are made with carepackages which are models so thats the prob we have limited use maybe if you find a map that has small number of models maybe you can add it there
hope i helped
() = not yet
() = impossible
() almost done
() done and done
100 posts ()
200 posts ()
99999999999 posts ()
make a mod ()
make a hack ()
make a program ()
get a life ()
get 127 kills 17 deaths on rust ()
get 240 kills 13 deaths on rust ()
make a skin ()
waiting for someone to help me fix my shit https://www.mpgh.net/forum/323-call-d...ax-errors.html
enjoy the nightmare bitch