Navigation

    Plutonium
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Donate
    1. Home
    2. Kalitos

    Kalitos (@Kalitos)

    79
    Reputation
    437
    Posts
    401
    Profile views
    43
    Followers
    15
    Following
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Information about Kalitos

    Joined
    Last Online

    Best posts made by Kalitos

    • HD Mini Map

      I bring the minimaps that I had, personally I like them like this.

      Download the following file: HDMiniMap.iwd
      Installation: Place IWD in C:\Users\UserNameHere\AppData\Local\Plutonium\storage\iw5

      Preview:
      3d9a11b3-bec6-429f-be25-9e1822483aa7-image.png

      Alternative Link (Requires manual installation): https://mega.nz/file/pR4FgaIT#vTO8L8ajh3Qsj3a6vo7s6jTH3ib8I7PxIkOVyd4Kg6I

      posted in MW3 Modding Releases & Resources
    • HUD killstreak Player

      I have been looking for this for a long time and I think I could do it, so I share with you I know that I am not the only one who needed it.
      I have relied on coding found in this same forum and the guides given.

      Credits: https://forum.plutonium.pw/topic/2113/storing-players-data-with-chaiscript/3

      :: CODE UPDATE :: 23-05-2021 ::
      Now correctly registers the kills that the player gets when he has a hard line pro and gets 2 assists counting as kill

      /*
      *	 Black Ops 2 - GSC Studio by iMCSx
      *
      *	 Creator : Kalitos
      *	 Project : killstreakHUD
      *    Mode : Multiplayer
      *	 Date : 2021/05/15 - 11:22:19	
      *
      */	
      
      #include maps\mp\gametypes\_hud_util;
      
      
      init()
      {
          level thread onPlayerConnect();
      }
      
      onPlayerConnect()
      {
          for(;;)
          {
              level waittill("connected", player);        
              player thread killstreakPlayer();      
          }
      }	
      
      
      killstreakPlayer ()
      {
      	self endon ("disconnect");
      	level endon("game_ended");
      	self.hudkillstreak = createFontString ("Objective", 1);
      	self.hudkillstreak setPoint ("CENTER", "TOP", "CENTER", 10);
      	self.hudkillstreak.label = &"^2 KILLSTREAK: ^7";
      	
      	while(true)
      	{
      		self.hudkillstreak setValue(self.pers["cur_kill_streak"]);
      		wait 0.5;
      	}
      	
      	
      }
      

      To implement it they must create a .GSC file and paste the code in it, then follow the guide on how to load a scripthere

      HUDkillstreak.png

      posted in MW3 Modding Releases & Resources
    • Just a Question for Teh_Bandit

      @WolflexZ

      #include common_scripts\utility;
      #include maps\mp\zombies\_zm;
      #include maps\mp\zombies\_zm_weapons;
      #include maps\mp\zombies\_zm_utility;
      #include maps\mp\gametypes_zm\_hud_util;
      #include maps\mp\gametypes_zm\_hud_message;
      #include maps\mp\_utility;
      
      
      init()
      {
      			
      	level thread onPlayerConnect();	
      	
      }
      
      onPlayerConnect()
      {
      	for(;;)
      	{
      		level waittill("connected", player);
                      player thread health_bar_hud();	
      	}
      }
      
      
      
      
      health_bar_hud()
      {
      	level endon("end_game");
      	self endon("disconnect");
      	flag_wait("initial_blackscreen_passed");
      
      	health_bar = self createprimaryprogressbar();
      	if (level.script == "zm_buried")
      	{
      		health_bar setpoint(undefined, "BOTTOM", -335, -95);
      	}
      	else if (level.script == "zm_tomb")
      	{
      		health_bar setpoint(undefined, "BOTTOM", -335, -100);
      	}
      	else
      	{
      		health_bar setpoint(undefined, "BOTTOM", -335, -70);
      	}
      	health_bar.hidewheninmenu = 1;
      	health_bar.bar.hidewheninmenu = 1;
      	health_bar.barframe.hidewheninmenu = 1;
      
      	health_bar_text = self createprimaryprogressbartext();
      	if (level.script == "zm_buried")
      	{
      		health_bar_text setpoint(undefined, "BOTTOM", -410, -95);
      	}
      	else if (level.script == "zm_tomb")
      	{
      		health_bar_text setpoint(undefined, "BOTTOM", -410, -100);
      	}
      	else
      	{
      		health_bar_text setpoint(undefined, "BOTTOM", -410, -70);
      	}
      	health_bar_text.hidewheninmenu = 1;
      
      	while (1)
      	{
      		if (isDefined(self.e_afterlife_corpse))
      		{
      			if (health_bar.alpha != 0)
      			{
      				health_bar.alpha = 0;
      				health_bar.bar.alpha = 0;
      				health_bar.barframe.alpha = 0;
      				health_bar_text.alpha = 0;
      			}
      			
      			wait 0.05;
      			continue;
      		}
      
      		if (health_bar.alpha != 1)
      		{
      			health_bar.alpha = 1;
      			health_bar.bar.alpha = 1;
      			health_bar.barframe.alpha = 1;
      			health_bar_text.alpha = 1;
      		}
      
      		health_bar updatebar(self.health / self.maxhealth);
      		health_bar_text setvalue(self.health);
      
      		wait 0.05;
      	}
      }
      
      posted in BO2 Modding Support & Discussion
    • [Release] [ZM] Highest Round Tracker (UPDATED 3/13/2020)

      I fixed the script loading issue. Working with the latest version of the plugin (1.9.5). The script needs an elapsed game to save the first records, then it will display the information.

      #include maps/mp/gametypes/_hud_message;
      #include maps/mp/gametypes/_globallogic_spawn;
      #include maps/mp/gametypes/_spectating;
      #include maps/mp/_tacticalinsertion;
      #include maps/mp/_challenges;
      #include maps/mp/gametypes/_globallogic;
      #include maps/mp/gametypes/_hud_util;
      #include maps/mp/_utility;
      #include common_scripts/utility;
      #include maps/mp/gametypes/_globallogic_ui;
      #include maps/mp/gametypes/_persistence;
      
      init()
      {
          level thread high_round_tracker();
          level thread onPlayerConnect();
      }
      
      onPlayerConnect()
      {
          for(;;)
          {
              level waittill("connected", player);
              player thread high_round_info();
          }
      }
      
      high_round_tracker()
      {
      	thread high_round_info_giver();
      	gamemode = gamemodeName( getDvar( "ui_gametype" ) );
      	map = mapName( level.script );
      	if( level.script == "zm_transit" && getDvar( "ui_gametype" ) == "zsurvival" )
      		map = startLocationName( getDvar( "ui_zm_mapstartlocation" ) );
      	//file handling//
      	level.basepath = getDvar("fs_homepath") + "/";
      	path = level.basepath + "/logs/" + map + gamemode + "HighRound.txt";
      	file = fopen(path, "r");
      	text = fread(file);
      	fclose(file);
      	//end file handling//
      	highroundinfo = strToK( text, ";" );
      	level.HighRound = int( highroundinfo[ 0 ] );
      	level.HighRoundPlayers = highroundinfo[ 1 ];
      	for ( ;; )
      	{
      		level waittill ( "end_game" );
      		if ( level.round_number > level.HighRound )
      		{
      			level.HighRoundPlayers = "";
      			players = get_players();
      			for ( i = 0; i < players.size; i++ )
      			{
      				if( level.HighRoundPlayers == "" )
      				{
      					level.HighRoundPlayers = players[i].name;
      				}
      				else
      				{
      					level.HighRoundPlayers = level.HighRoundPlayers + "," + players[i].name;
      				}
      			}
      			foreach( player in level.players )
      			{
      				player tell( "New Record: ^1" + level.round_number );
      				player tell( "Set by: ^1" + level.HighRoundPlayers );
      			}
      			log_highround_record( level.round_number + ";" + level.HighRoundPlayers );
      		}
      	}
      }
      
      log_highround_record( newRecord )
      {
      	gamemode = gamemodeName( getDvar( "ui_gametype" ) );
      	map = mapName( level.script );
      	if( level.script == "zm_transit" && getDvar( "ui_gametype" ) == "zsurvival" )
      		map = startLocationName( getDvar( "ui_zm_mapstartlocation" ) );
      	level.basepath = getDvar("fs_homepath") + "/";
      	path = level.basepath + "/logs/" + map + gamemode + "HighRound.txt";
      	file = fopen( path, "w" );
      	fwrite( file, newRecord );
      	fclose( file );
      }
      
      startLocationName( location )
      {
      	if( location == "cornfield" )
      		return "Cornfield";
      	else if( location == "diner" )
      		return "Diner";
      	else if( location == "farm" )
      		return "Farm";
      	else if( location == "power" )
      		return "Power";
      	else if( location == "town" )
      		return "Town";
      	else if( location == "transit" )
      		return "BusDepot";
      	else if( location == "tunnel" )
      		return "Tunnel";
      }
      
      mapName( map )
      {
      	if( map == "zm_buried" )
      		return "Buried";
      	else if( map == "zm_highrise" )
      		return "DieRise";
      	else if( map == "zm_prison" )
      		return "Motd";
      	else if( map == "zm_nuked" )
      		return "Nuketown";
      	else if( map == "zm_tomb" )
      		return "Origins";
      	else if( map == "zm_transit" )
      		return "Tranzit";
      	return "NA";
      }
      
      gamemodeName( gamemode )
      {
      	if( gamemode == "zstandard" )
      		return "Standard";
      	else if( gamemode == "zclassic" )
      		return "Classic";
      	else if( gamemode == "zsurvival" )
      		return "Survival";
      	else if( gamemode == "zgrief" )
      		return "Grief";
      	else if( gamemode == "zcleansed" )
      		return "Turned";
      	return "NA";
      }
      
      high_round_info_giver()
      {
      	highroundinfo = 1;
      	roundmultiplier = 5;
      	level endon( "end_game" );
      	while( 1 )
      	{	
      		level waittill( "start_of_round" );
      		if( level.round_number == ( highroundinfo * roundmultiplier ))
      		{
      			highroundinfo++;
      			foreach( player in level.players )
      			{
      				player tell( "High Round Record for this map: ^1" + level.HighRound );
      				player tell( "Record set by: ^1" + level.HighRoundPlayers );
      			}
      		}
      	}
      }
      
      high_round_info()
      {
      	wait 6;
      	self tell( "High Round Record for this map: ^1" + level.HighRound );
      	self tell( "Record set by: ^1" + level.HighRoundPlayers );
      }
      
      posted in BO2 Modding Releases & Resources
    • [Release] IW5 Mapvote

      @birchy It would be very nice if the option to vote for maps and game types is implemented. Example: Domain on Dome, TDM on Lockdown.

      posted in MW3 Modding Releases & Resources
    • dropclient & banclient

      @RAVEN How to use the command? From the in game console you must first log in using "rcon login ****", then "rcon status", then "rcon clientkick 4".

      posted in MW3 Modding Support & Discussion
    • [Release] IW5 Mapvote

      I have adapted it in my own way so that it supports voting for maps and game modes.

      #include maps\mp\_utility;
      #include common_scripts\utility;
      #include maps\mp\gametypes\_hud_util;
      
      init() {
          precacheshader("gradient_fadein");
          precacheshader("gradient_top");
          precacheshader("white");
          //Set here the maps you want to rotate, separate them with a #.
          level.mapvotemaps = strtok("mp_alpha#mp_bootleg#mp_bravo#mp_carbon#mp_dome#mp_exchange#mp_hardhat#mp_interchange#mp_lambeth#mp_mogadishu#mp_paris#mp_plaza2#mp_radar#mp_seatown#mp_underground#mp_village#mp_terminal_cls#mp_rust#mp_highrise#mp_italy#mp_park#mp_overwatch#mp_morningwood#mp_meteora#mp_cement#mp_qadeem#mp_restrepo_ss#mp_hillside_ss#mp_courtyard_ss#mp_aground_ss#mp_six_ss#mp_burn_ss#mp_crosswalk_ss#mp_shipbreaker#mp_roughneck#mp_moab#mp_boardwalk#mp_nola#mp_favela#mp_nuked#mp_nightshift", "#");
          //Set the type/gamemode here, whatever your dsr file is called without the . When doing so, you must also modify within the "maptostring()" function in the "switch(type)" section so that the name of the dsr file matches the type/game mode.
          level.mapvotetype = strtok("TDM_default#DOM_default", "#");
          //The description of maps must go hand in hand with the maps, so that there are no errors when showing them in the vote.
          level.mapvotedescs = strtok("European city center. Great for Team \nDefender.#Medium sized Asian market. Fun for all game \nmodes.#African colonial settlement. Fight to control \nthe center.#Medium sized refinery. Great for any number \nof players.#Small outpost in the desert. Fast and frantic \naction.#Urban map with wide streets. Good for long \nand short range fights.#A small construction site. Fast paced, close \nquarter action.#Destroyed freeway. Great for a wide range of \nspaces and styles.#Derelict Russian ghost town. Great for \ncareful, tactical engagements.#Crash site in an African city. Classic urban \ncombat.#Parisian district. Great for Domination and Kill \nConfirmed.#Medium sized German mall. Intense Search & \nDestroy games.#Large Siberian airbase. Great for epic large \nbattles.#A costal town. Narrow streets bring hectic, \nclose encounters.#Small subway station. Fast paced action both \ninside and out.#Large African village. Great for all game \nmodes.#Russian airport terminal under siege. The \nclassic fan favorite is back.#Tiny desert sandstorm. Fast-paced action on \na small map.#Classic MW2's Rooftop skyscraper.#A small coastal Italian town. Features tight \nclose quarter combat.#Large New York park set in autumn. Great for \nlong distance fire fights.#Unfinished top of a skyscraper. Features \ntense Demolition matches.#Air Force One crash site. Very open map with a \nfew homes that provide cover.#Greek Monastery on a sandstone pillar. \nFeatures both medium and long range combat.#Korean cement factory. Great for close \nquarter combat and tactical maneuvering.#Luxury resort in Dubai. Features Intense \nDomination maches# Remote outpost in Afghanistan. Tight, Sparse \ninteriors linked by open lanes and overlooks #Upscale beachside retreat. Multi-tiered run \nand gun combat haven. #Roman ruins near Mt. Vesuvius. Strong \ninteriors offset by multi-level flanks.#Shipwreck on the irish coast. Open layout \nallows for long distance engagements#American farm in the path of a monster \ntornado. Sparse interiors and well-defined lanes.#War torn section of mid-east highway. \nPlentiful cover and close quarter fighting#Metro intersection on lockdown. Strong \ninterior locations and tactical urban combat#Ship scavenging operation on the indian \ncoast. Dominant overwatch positions and \n strong flank routes.#Deep Water drilling rig. Medium to long range \nengagements between multi-tiered, joined \nplatforms#Abandoned Utah mining settlement. Features \nan open layout and strong flanks.#Jersey shore amusement boardwalk. \nElevated main path set off by close quarters. \nflanks#New Orleans under assault. Features \nfast-paced matches with abundant close \nquarters fighting.#Alleyways of Brazil. Great for all modes\nand all sizes.#A deserted nuke testing facility used in the Cold War.#Urban City fighting. In and out of apartments/nclose range engagements.", "#");
          level.mapvoteindices = [];
      	
      	tryes = 0;	
      	while(level.mapvoteindices.size < 6 && tryes < 100) {
      		tryes++;		
      		j = randomint(level.mapvotemaps.size);
      		k = randomint(level.mapvotetype.size);	
      		while(inArray(level.mapvoteindices,(level.mapvotemaps[j] + "#" + level.mapvotetype[k] + "#" + level.mapvotedescs[j])))
      		{
      			j = randomint(level.mapvotemaps.size);
      			k = randomint(level.mapvotetype.size);		
      		}
      		level.mapvoteindices[level.mapvoteindices.size] = level.mapvotemaps[j] + "#" + level.mapvotetype[k] + "#" + level.mapvotedescs[j];						
      	}
      
          replacefunc(maps\mp\gametypes\_gamelogic::waittillFinalKillcamDone, ::finalkillcamhook);
      }
      
      finalkillcamhook() {
          if (!IsDefined(level.finalkillcam_winner)) {
              mapvote();
              return false;
          } else {
              level waittill("final_killcam_done");
              mapvote();
              return true;
          }
      }
      
      mapvote() {
          if (!waslastround()) return;
          level.mapvoteui[0] = shader("white", "TOP", "TOP", 0, 120, 350, 20, (0.157,0.173,0.161), 1, 1, true);
          level.mapvoteui[1] = shader("white", "TOP", "TOP", 0, 140, 350, 60, (0.310,0.349,0.275), 1, 1, true);
          level.mapvoteui[2] = shader("gradient_top", "TOP", "TOP", 0, 140, 350, 2, (1,1,1), 1, 2, true);
          level.mapvoteui[3] = shader("white", "TOP", "TOP", 0, 200, 350, 20, (0.212,0.231,0.220), 1, 1, true);
          level.mapvoteui[4] = shader("white", "TOP", "TOP", 0, 220, 350, 20, (0.180,0.196,0.188), 1, 1, true);
          level.mapvoteui[5] = shader("white", "TOP", "TOP", 0, 240, 350, 20, (0.212,0.231,0.220), 1, 1, true);
          level.mapvoteui[6] = shader("white", "TOP", "TOP", 0, 260, 350, 20, (0.180,0.196,0.188), 1, 1, true);
          level.mapvoteui[7] = shader("white", "TOP", "TOP", 0, 280, 350, 20, (0.212,0.231,0.220), 1, 1, true);
          level.mapvoteui[8] = shader("white", "TOP", "TOP", 0, 300, 350, 20, (0.180,0.196,0.188), 1, 1, true);
          level.mapvoteui[9] = shader("white", "TOP", "TOP", 0, 320, 350, 20, (0.157,0.173,.161), 1, 1, true);
          level.mapvoteui[10] = shader("white", "TOP", "TOP", 0, 340, 350, 20, (0.310,0.349,0.275), 1, 1, true);
          level.mapvoteui[11] = shader("gradient_top", "TOP", "TOP", 0, 320, 350, 2, (1,1,1), 1, 2, true);
          level.mapvoteui[12] = text(&"VOTING PHASE: ", "LEFT", "TOP", -170, 130, 1, "hudSmall", (1,1,1), 1, 3, true, 20);    
          level.mapvoteui[13] = text( maptostring(strTok(level.mapvoteindices[0],"#")[0], strTok(level.mapvoteindices[0],"#")[1]), "LEFT", "TOP", -170, 210, 1.5, "objective", (1,1,1), 1, 3, true);
          level.mapvoteui[14] = text( maptostring(strTok(level.mapvoteindices[1],"#")[0], strTok(level.mapvoteindices[1],"#")[1]), "LEFT", "TOP", -170, 230, 1.5, "normal", (1,1,1), 1, 3, true);
          level.mapvoteui[15] = text( maptostring(strTok(level.mapvoteindices[2],"#")[0], strTok(level.mapvoteindices[2],"#")[1]), "LEFT", "TOP", -170, 250, 1.5, "normal", (1,1,1), 1, 3, true);
          level.mapvoteui[16] = text( maptostring(strTok(level.mapvoteindices[3],"#")[0], strTok(level.mapvoteindices[3],"#")[1]), "LEFT", "TOP", -170, 270, 1.5, "normal", (1,1,1), 1, 3, true);
          level.mapvoteui[17] = text( maptostring(strTok(level.mapvoteindices[4],"#")[0], strTok(level.mapvoteindices[4],"#")[1]), "LEFT", "TOP", -170, 290, 1.5, "normal", (1,1,1), 1, 3, true);
          level.mapvoteui[18] = text( maptostring(strTok(level.mapvoteindices[5],"#")[0], strTok(level.mapvoteindices[5],"#")[1]), "LEFT", "TOP", -170, 310, 1.5, "normal", (1,1,1), 1, 3, true);    
          //////////////
          //TODO: speed_throw/toggleads_throw will show bound/unbound for hold/toggle ads players. compromise may be to use forward/back, depending on how controller
          //bindings handle this.
          level.mapvoteui[19] = text("Up ^2[{+attack}] ^7Down ^2[{+toggleads_throw}]", "LEFT", "TOP", -170, 330, 1.5, "normal", (1,1,1), 1, 3, true);
          level.mapvoteui[20] = text("Vote ^2[{+activate}]", "RIGHT", "TOP", 170, 330, 1.5, "normal", (1,1,1), 1, 3, true);
          foreach(player in level.players) player thread input();
          for(i = 0; i <= 20; i++) {
              level.mapvoteui[12] setvalue(20 - i);
              //playsoundonplayers("trophy_detect_projectile");
              wait 1;
          }
          level notify("mapvote_over");
          besti = 0;
          bestv = -1;
          for(i = 0; i < 6; i++) {
              if(level.mapvoteui[i + 13].value > bestv) {
                  besti = i;
                  bestv = level.mapvoteui[i + 13].value;
              }
          }
          //Note: We wait to prevent the scoreboard popping up at the end for a cleaner transition (Don't wait infinitely as a failsafe).
          //TODO: Proper manipulation of sv_level.mapvotemaps is the better way to do this as it would allow the final scoreboard to show.
          setDvar( "sv_maprotationcurrent", "dsr " + strTok(level.mapvoteindices[besti],"#")[1] + " map " + strTok(level.mapvoteindices[besti],"#")[0] );   
      }
      
      input() {
          self endon("disconnect");
          self endon("mapvote_over");
          index = 0;
          selected = -1;
          select[0] = self text((index + 1) + "/6", "RIGHT", "TOP", 170, 130, 1.5, "normal", (1,1,1), 1, 3, false);
          select[1] = self text(strTok(level.mapvoteindices[index],"#")[2], "LEFT", "TOP", -170, 150, 1.5, "normal", (1,1,1), 1, 3, false);
          select[2] = self shader("gradient_fadein", "TOP", "TOP", 0, 200, 350, 20, (1,1,1), 0.5, 2, false);
          select[3] = self shader("gradient_top", "TOP", "TOP", 0, 220, 350, 2, (1,1,1), 1, 2, false);
          self notifyonplayercommand("up", "+attack");
      	self notifyonplayercommand("up", "+forward");
          self notifyonplayercommand("down", "+toggleads_throw");
          self notifyonplayercommand("down", "+speed_throw");
          self notifyonplayercommand("down", "+back");
          self notifyonplayercommand("select", "+usereload");
          self notifyonplayercommand("select", "+activate");
          self notifyonplayercommand("select", "+frag");
          for(;;) {
              command = self waittill_any_return("up", "down", "select");        
              if(command == "up" && index > 0) {
                  index--;
                  select[0] settext((index + 1) + "/6");
                  select[1] settext(strTok(level.mapvoteindices[index],"#")[2]);
                  select[2].y -= 20;
                  select[3].y -= 20;
                  self playlocalsound("mouse_over");
              } else if(command == "down" && index < 5) {
                  index++;
                  select[0] settext((index + 1) + "/6");
                  select[1] settext(strTok(level.mapvoteindices[index],"#")[2]);
                  select[2].y += 20;
                  select[3].y += 20;
                  self playlocalsound("mouse_over");
              } else if(command == "select") {
                  if(selected == -1) {
                      selected = index;                
                      
                      level.mapvoteui[selected + 13].value += 1;
                      level.mapvoteui[selected + 13].text = strTok(level.mapvoteui[selected + 13].text,":")[0] + ":" + level.mapvoteui[selected + 13].value;
                      level.mapvoteui[selected + 13]  settext(level.mapvoteui[selected + 13].text);                
                      //iPrintLn(level.mapvoteui[selected + 13].text);                    
                      self playlocalsound("mouse_click");
                  } else if(selected != index) {                
                      
                      level.mapvoteui[selected + 13].value -= 1;
                      level.mapvoteui[selected + 13].text = strTok(level.mapvoteui[selected + 13].text,":")[0] + ":" + level.mapvoteui[selected + 13].value;
                      level.mapvoteui[selected + 13]  settext(level.mapvoteui[selected + 13].text);                
                      selected = index;
                      
                      level.mapvoteui[selected + 13].value += 1;
                      level.mapvoteui[selected + 13].text = strTok(level.mapvoteui[selected + 13].text,":")[0] + ":" + level.mapvoteui[selected + 13].value;
                      level.mapvoteui[selected + 13]  settext(level.mapvoteui[selected + 13].text);
                      //iPrintLn(level.mapvoteui[selected + 13].text);    
                      self playlocalsound("mouse_click");
                  }
              }        
          }
      }
      
      text(text, align, relative, x, y, fontscale, font, color, alpha, sort, server, value) {
          element = spawnstruct();
          if(server) {
              element = createServerFontString( font, fontscale ); 
          } else {
              element = self createFontString( font, fontscale ); 
          }
          if(isdefined(value)) {
              element.label = text;
              element.value = value;
              element setvalue(value);
          } else {
              element settext(text);
              element.text = text;
              element.value = 0;
      
          }
          element.hidewheninmenu = true;
          element.color = color;
          element.alpha = alpha;
          element.sort = sort;
          element setpoint(align, relative, x, y);
          return element;
      }
      
      addTextHud( who, x, y, alpha, alignX, alignY, horiz, vert, fontScale, sort ) {
      	if( isPlayer( who ) )
      		hud = newClientHudElem( who );
      	else
      		hud = newHudElem();
      
      	hud.x = x;
      	hud.y = y;
      	hud.alpha = alpha;
      	hud.sort = sort;
      	hud.alignX = alignX;
      	hud.alignY = alignY;
      	if(isdefined(vert))
      		hud.vertAlign = vert;
      	if(isdefined(horiz))
      		hud.horzAlign = horiz;		
      	if(fontScale != 0)
      		hud.fontScale = fontScale;
      	hud.foreground = 1;
      	hud.archived = 0;
      	return hud;
      }
      
      shader(shader, align, relative, x, y, width, height, color, alpha, sort, server) {
          element = spawnstruct();
          if(server) {
              element = newhudelem(self);
          } else {
              element = newclienthudelem(self);
          }
          element.elemtype = "icon";
          element.hidewheninmenu = true;
          element.shader = shader;
          element.width = width;
          element.height = height;
          element.align = align;
          element.relative = relative;
          element.xoffset = 0;
          element.yoffset = 0;
          element.children = [];
          element.sort = sort;
          element.color = color;
          element.alpha = alpha;
          element setparent(level.uiparent);
          element setshader(shader, width, height);
          element setpoint(align, relative, x, y);
          return element;
      }
      
      randomindices() {
          array = [];
          for (i = 0; i < 6; i++) {
              array[i] = randomint(level.mapvotemaps.size);
              for (j = 0; j < i; j++) {
                  if (array[i] == array[j]) {
                      i--;
                      break;
                  }
              }
          }
          return array;
      }
      
      
      
      maptostring(map,type) {    
          switch(map) {
          case "mp_alpha":  map = "LOCKDOWN";
          break;
          case "mp_bootleg": map = "BOOTLEG";
          break;
          case "mp_bravo": map = "MISSION";
          break;
          case "mp_carbon": map = "CARBON";
          break;
          case "mp_dome": map = "DOME";
          break;
          case "mp_exchange": map = "DOWNTURN";
          break;
          case "mp_hardhat": map = "HARDHAT";
          break;
          case "mp_interchange": map = "INTERCHANGE";
          break;
          case "mp_lambeth": map = "FALLEN";
          break;
          case "mp_mogadishu": map = "BAKAARA";
          break;
          case "mp_paris": map = "RESISTANCE";
          break;
          case "mp_plaza2": map = "ARKADEN";
          break;
          case "mp_radar": map = "OUTPOST";
          break;
          case "mp_seatown": map = "SEATOWN";
          break;
          case "mp_underground": map = "UNDERGROUND";
          break;
          case "mp_village": map = "VILLAGE";
          break;
          case "mp_terminal_cls": map = "TERMINAL";
          break;
          case "mp_rust": map = "RUST";
          break;
          case "mp_highrise": map = "HIGHRISE";
          break;
          case "mp_italy": map = "PIAZZA";
          break;
          case "mp_park": map = "LIBERATION";
          break;
          case "mp_overwatch": map = "OVERWATCH";
          break;
          case "mp_morningwood": map = "BLACK BOX";
          break;
          case "mp_meteora": map = "SANCTUARY";
          break;
          case "mp_qadeem": map = "OASIS";
          break;
          case "mp_restrepo_ss": map = "LOOKOUT";
          break;
          case "mp_hillside_ss": map = "GETAWAY";
          break;
          case "mp_courtyard_ss": map = "EROSION";
          break;
          case "mp_aground_ss": map = "AGROUND";
          break;
          case "mp_six_ss": map = "VORTEX";
          break;
          case "mp_burn_ss": map = "U-TURN";
          break;
          case "mp_crosswalk_ss": map = "INTERSECTION";
          break;
          case "mp_shipbreaker": map = "DECOMMISSION";
          break;
          case "mp_roughneck": map = "OFF SHORE";
          break;
          case "mp_moab": map = "GULCH";
          break;
          case "mp_boardwalk": map = "BOARDWALK";
          break;
          case "mp_nola": map = "PARISH";
          break;
          case "mp_favela": map = "FAVELA";
          break;
          case "mp_nuked": map = "NUKETOWN";
          break;
          case "mp_nightshift": map = "SKIDROW";
          break;
          case "mp_cement": map = "FOUNDATION";
          break;
          default:
          break;
          } 
      
          switch(type) {
          case "TDM_default": map = map + " (TEAM DEATHMATCH)" + " :0";
          break;
          case "DOM_default":map = map  + " (DOMINATION)" + " :0";
          break;
          case "DEM_default": map = map + " (DEMOLITION)" + " :0";
          break;
          case "INF_Default": map = map + " (INFECTED)" + " :0";
          break;
          case "FFA_default":map = map  + " (FREE FOR ALL)" + " :0";    
          break;
          case "CTF_default":map = map  + " (CAPTURE THE FLAG)" + " :0";    
          break;
          case "DZ_default":map = map  + " (DROP ZONE)" + " :0";    
          break;
          case "GG_default":map = map  + " (GUN GAME)" + " :0";    
          break;
          case "HQ_default":map = map  + " (HEADQUARTERS)" + " :0";    
          break;
          case "JUG_default":map = map  + " (JUGGERNAUT)" + " :0";
          break;
          case "KC_default":map = map  + " (KILL CONFIRMED)" + " :0";
          break;
          case "OIC_default":map = map  + " (ONE IN THE CHAMBER)" + " :0";
          break;
          case "SAB_default":map = map  + " (SABOTAGE)" + " :0";
          break;
          case "SD_default":map = map  + " (SEARCH AND DESTROY)" + " :0";
          break;
          case "TDEF_default":map = map  + " (TEAM DEFENDER)" + " :0";
          break;
          case "TJ_default":map = map  + " (TEAM JUGGERNAUT)" + " :0";
          break;
          default:
          break;
          }    
          return map;
      }
      
      inArray(array, text)
      {
          for(i=0; i<array.size; i++)
          {
              if(array[i] == text)
                return true;
          }
          return false;
      }
      
      posted in MW3 Modding Releases & Resources
    • add friend

      @Mr-Android I don't have that option.user2.png

      posted in General Discussion
    • how to change juggernog max health ?

      @MH11 You must set the health you want the player to have when they get the perk.
      I don't know the difference between the two. To not make a problem, set the same health to both dVars

      
      #include maps\mp\_utility;
      #include common_scripts\utility;
      #include maps\mp\gametypes_zm\_hud_util;
      #include maps\mp\gametypes_zm\_hud_message;
      
      init()
      {
          //jugg health bonus
      	level.juggHealthBonus = getDvarIntDefault( "juggHealthBonus", 160 );
      	level.zombie_vars[ "zombie_perk_juggernaut_health" ] = level.juggHealthBonus;	
      	//perma jugg health bonus 
      	level.permaJuggHealthBonus = getDvarIntDefault( "permaJuggHealthBonus", 190 );
      	level.zombie_vars[ "zombie_perk_juggernaut_health_upgrade" ] = level.permaJuggHealthBonus;
      }
      

      Compile the file. Name it whatever you want and put it in the scripts/zm folder

      posted in BO2 Modding Support & Discussion
    • [Release] IW5 Mapvote

      Another version, which does not need a description, in my simplest way. Keeps mode/map vote option

      #include maps\mp\_utility;
      #include common_scripts\utility;
      #include maps\mp\gametypes\_hud_util;
      
      init() {
          precacheshader("gradient_fadein");
          precacheshader("gradient_top");
          precacheshader("white");
          //Set here the maps you want to rotate, separate them with a #.
          level.mapvotemaps = strtok("mp_alpha#mp_bootleg#mp_bravo#mp_carbon#mp_dome#mp_exchange#mp_hardhat#mp_interchange#mp_lambeth#mp_mogadishu#mp_paris#mp_plaza2#mp_radar#mp_seatown#mp_underground#mp_village#mp_terminal_cls#mp_rust#mp_highrise#mp_italy#mp_park#mp_overwatch#mp_morningwood#mp_meteora#mp_cement#mp_qadeem#mp_restrepo_ss#mp_hillside_ss#mp_courtyard_ss#mp_aground_ss#mp_six_ss#mp_burn_ss#mp_crosswalk_ss#mp_shipbreaker#mp_roughneck#mp_moab#mp_boardwalk#mp_nola#mp_favela#mp_nuked#mp_nightshift", "#");
          //Set the type/gamemode here, whatever your dsr file is called without the . When doing so, you must also modify within the "maptostring()" function in the "switch(type)" section so that the name of the dsr file matches the type/game mode.
          level.mapvotetype = strtok("TDM_default#DOM_default", "#");
          level.mapvoteindices = [];
      	
      	tryes = 0;	
      	while(level.mapvoteindices.size < 6 && tryes < 100) {
      		tryes++;		
      		j = randomint(level.mapvotemaps.size);
      		k = randomint(level.mapvotetype.size);	
      		while(inArray(level.mapvoteindices,(level.mapvotemaps[j] + "#" + level.mapvotetype[k])))
      		{
      			j = randomint(level.mapvotemaps.size);
      			k = randomint(level.mapvotetype.size);		
      		}
      		level.mapvoteindices[level.mapvoteindices.size] = level.mapvotemaps[j] + "#" + level.mapvotetype[k];						
      	}
      
          replacefunc(maps\mp\gametypes\_gamelogic::waittillFinalKillcamDone, ::finalkillcamhook);
      }
      
      finalkillcamhook() {
          if (!IsDefined(level.finalkillcam_winner)) {
              mapvote();
              return false;
          } else {
              level waittill("final_killcam_done");
              mapvote();
              return true;
          }
      }
      
      mapvote() {
          if (!waslastround()) return;
          level.mapvoteui[0] = shader("white", "TOP", "TOP", 0, 120, 350, 20, (0.157,0.173,0.161), 1, 1, true);
          level.mapvoteui[1] = shader("white", "TOP", "TOP", 0, 140, 350, 20, (0.310,0.349,0.275), 1, 1, true);
          level.mapvoteui[2] = shader("gradient_top", "TOP", "TOP", 0, 140, 350, 2, (1,1,1), 1, 2, true);
          level.mapvoteui[3] = shader("white", "TOP", "TOP", 0, 160, 350, 20, (0.212,0.231,0.220), 1, 1, true); //160
          level.mapvoteui[4] = shader("white", "TOP", "TOP", 0, 180, 350, 20, (0.180,0.196,0.188), 1, 1, true); //180
          level.mapvoteui[5] = shader("white", "TOP", "TOP", 0, 200, 350, 20, (0.212,0.231,0.220), 1, 1, true); //200
          level.mapvoteui[6] = shader("white", "TOP", "TOP", 0, 220, 350, 20, (0.180,0.196,0.188), 1, 1, true); //220
          level.mapvoteui[7] = shader("white", "TOP", "TOP", 0, 240, 350, 20, (0.212,0.231,0.220), 1, 1, true); //240
          level.mapvoteui[8] = shader("white", "TOP", "TOP", 0, 260, 350, 20, (0.180,0.196,0.188), 1, 1, true); //260
          level.mapvoteui[9] = shader("white", "TOP", "TOP", 0, 280, 350, 20, (0.157,0.173,.161), 1, 1, true); //280
          level.mapvoteui[10] = shader("white", "TOP", "TOP", 0, 300, 350, 20, (0.310,0.349,0.275), 1, 1, true); //300
          level.mapvoteui[11] = shader("gradient_top", "TOP", "TOP", 0, 280, 350, 2, (1,1,1), 1, 2, true); // 280
          level.mapvoteui[12] = text(&"VOTING PHASE: ", "LEFT", "TOP", -170, 130, 1, "hudSmall", (1,1,1), 1, 3, true, 20);    //
          level.mapvoteui[13] = text( maptostring(strTok(level.mapvoteindices[0],"#")[0], strTok(level.mapvoteindices[0],"#")[1]), "LEFT", "TOP", -170, 170, 1, "objective", (1,1,1), 1, 3, true); // 170
          level.mapvoteui[14] = text( maptostring(strTok(level.mapvoteindices[1],"#")[0], strTok(level.mapvoteindices[1],"#")[1]), "LEFT", "TOP", -170, 190, 1, "objective", (1,1,1), 1, 3, true); // 190
          level.mapvoteui[15] = text( maptostring(strTok(level.mapvoteindices[2],"#")[0], strTok(level.mapvoteindices[2],"#")[1]), "LEFT", "TOP", -170, 210, 1, "objective", (1,1,1), 1, 3, true); // 210
          level.mapvoteui[16] = text( maptostring(strTok(level.mapvoteindices[3],"#")[0], strTok(level.mapvoteindices[3],"#")[1]), "LEFT", "TOP", -170, 230, 1, "objective", (1,1,1), 1, 3, true); // 230
          level.mapvoteui[17] = text( maptostring(strTok(level.mapvoteindices[4],"#")[0], strTok(level.mapvoteindices[4],"#")[1]), "LEFT", "TOP", -170, 250, 1, "objective", (1,1,1), 1, 3, true); // 250
          level.mapvoteui[18] = text( maptostring(strTok(level.mapvoteindices[5],"#")[0], strTok(level.mapvoteindices[5],"#")[1]), "LEFT", "TOP", -170, 270, 1, "objective", (1,1,1), 1, 3, true); // 270  
          //////////////
          //TODO: speed_throw/toggleads_throw will show bound/unbound for hold/toggle ads players. compromise may be to use forward/back, depending on how controller
          //bindings handle this.
          level.mapvoteui[19] = text("Up ^2[{+attack}] ^7Down ^2[{+toggleads_throw}]", "LEFT", "TOP", -170, 290, 1, "objective", (1,1,1), 1, 3, true); //290
          level.mapvoteui[20] = text("Vote ^2[{+activate}]", "RIGHT", "TOP", 170, 290, 1, "objective", (1,1,1), 1, 3, true); //290
          foreach(player in level.players) player thread input();
          for(i = 0; i <= 20; i++) {
              level.mapvoteui[12] setvalue(20 - i);
              //playsoundonplayers("trophy_detect_projectile");
              wait 1;
          }
          level notify("mapvote_over");
          besti = 0;
          bestv = -1;
          for(i = 0; i < 6; i++) {
              if(level.mapvoteui[i + 13].value > bestv) {
                  besti = i;
                  bestv = level.mapvoteui[i + 13].value;
              }
          }
          //Note: We wait to prevent the scoreboard popping up at the end for a cleaner transition (Don't wait infinitely as a failsafe).
          //TODO: Proper manipulation of sv_level.mapvotemaps is the better way to do this as it would allow the final scoreboard to show.
          setDvar( "sv_maprotationcurrent", "dsr " + strTok(level.mapvoteindices[besti],"#")[1] + " map " + strTok(level.mapvoteindices[besti],"#")[0] );   
      }
      
      input() {
          self endon("disconnect");
          self endon("mapvote_over");
          index = 0;
          selected = -1;
          select[0] = self text((index + 1) + "/6", "RIGHT", "TOP", 170, 130, 1, "objective", (1,1,1), 1, 3, false);
          //select[1] = self text(" ", "LEFT", "TOP", -170, 150, 1, "objective", (1,1,1), 1, 3, false);
          select[2] = self shader("gradient_fadein", "TOP", "TOP", 0, 160, 350, 20, (1,1,1), 0.5, 2, false);
          select[3] = self shader("gradient_top", "TOP", "TOP", 0, 180, 350, 2, (1,1,1), 1, 2, false);
          self notifyonplayercommand("up", "+attack");
      	self notifyonplayercommand("up", "+forward");
          self notifyonplayercommand("down", "+toggleads_throw");
          self notifyonplayercommand("down", "+speed_throw");
          self notifyonplayercommand("down", "+back");
          self notifyonplayercommand("select", "+usereload");
          self notifyonplayercommand("select", "+activate");
          self notifyonplayercommand("select", "+frag");
          for(;;) {
              command = self waittill_any_return("up", "down", "select");        
              if(command == "up" && index > 0) {
                  index--;
                  select[0] settext((index + 1) + "/6");
                  //select[1] settext(" ");
                  select[2].y -= 20;
                  select[3].y -= 20;
                  self playlocalsound("mouse_over");
              } else if(command == "down" && index < 5) {
                  index++;
                  select[0] settext((index + 1) + "/6");
                  //select[1] settext(" ");
                  select[2].y += 20;
                  select[3].y += 20;
                  self playlocalsound("mouse_over");
              } else if(command == "select") {
                  if(selected == -1) {
                      selected = index;                
                      
                      level.mapvoteui[selected + 13].value += 1;
                      level.mapvoteui[selected + 13].text = strTok(level.mapvoteui[selected + 13].text,":")[0] + ":" + level.mapvoteui[selected + 13].value;
                      level.mapvoteui[selected + 13]  settext(level.mapvoteui[selected + 13].text);                
                      //iPrintLn(level.mapvoteui[selected + 13].text);                    
                      self playlocalsound("mouse_click");
                  } else if(selected != index) {                
                      
                      level.mapvoteui[selected + 13].value -= 1;
                      level.mapvoteui[selected + 13].text = strTok(level.mapvoteui[selected + 13].text,":")[0] + ":" + level.mapvoteui[selected + 13].value;
                      level.mapvoteui[selected + 13]  settext(level.mapvoteui[selected + 13].text);                
                      selected = index;
                      
                      level.mapvoteui[selected + 13].value += 1;
                      level.mapvoteui[selected + 13].text = strTok(level.mapvoteui[selected + 13].text,":")[0] + ":" + level.mapvoteui[selected + 13].value;
                      level.mapvoteui[selected + 13]  settext(level.mapvoteui[selected + 13].text);
                      //iPrintLn(level.mapvoteui[selected + 13].text);    
                      self playlocalsound("mouse_click");
                  }
              }        
          }
      }
      
      text(text, align, relative, x, y, fontscale, font, color, alpha, sort, server, value) {
          element = spawnstruct();
          if(server) {
              element = createServerFontString( font, fontscale ); 
          } else {
              element = self createFontString( font, fontscale ); 
          }
          if(isdefined(value)) {
              element.label = text;
              element.value = value;
              element setvalue(value);
          } else {
              element settext(text);
              element.text = text;
              element.value = 0;
      
          }
          element.hidewheninmenu = true;
          element.color = color;
          element.alpha = alpha;
          element.sort = sort;
          element setpoint(align, relative, x, y);
          return element;
      }
      
      addTextHud( who, x, y, alpha, alignX, alignY, horiz, vert, fontScale, sort ) {
      	if( isPlayer( who ) )
      		hud = newClientHudElem( who );
      	else
      		hud = newHudElem();
      
      	hud.x = x;
      	hud.y = y;
      	hud.alpha = alpha;
      	hud.sort = sort;
      	hud.alignX = alignX;
      	hud.alignY = alignY;
      	if(isdefined(vert))
      		hud.vertAlign = vert;
      	if(isdefined(horiz))
      		hud.horzAlign = horiz;		
      	if(fontScale != 0)
      		hud.fontScale = fontScale;
      	hud.foreground = 1;
      	hud.archived = 0;
      	return hud;
      }
      
      shader(shader, align, relative, x, y, width, height, color, alpha, sort, server) {
          element = spawnstruct();
          if(server) {
              element = newhudelem(self);
          } else {
              element = newclienthudelem(self);
          }
          element.elemtype = "icon";
          element.hidewheninmenu = true;
          element.shader = shader;
          element.width = width;
          element.height = height;
          element.align = align;
          element.relative = relative;
          element.xoffset = 0;
          element.yoffset = 0;
          element.children = [];
          element.sort = sort;
          element.color = color;
          element.alpha = alpha;
          element setparent(level.uiparent);
          element setshader(shader, width, height);
          element setpoint(align, relative, x, y);
          return element;
      }
      
      randomindices() {
          array = [];
          for (i = 0; i < 6; i++) {
              array[i] = randomint(level.mapvotemaps.size);
              for (j = 0; j < i; j++) {
                  if (array[i] == array[j]) {
                      i--;
                      break;
                  }
              }
          }
          return array;
      }
      
      
      
      maptostring(map,type) {    
          switch(map) {
          case "mp_alpha":  map = "LOCKDOWN";
          break;
          case "mp_bootleg": map = "BOOTLEG";
          break;
          case "mp_bravo": map = "MISSION";
          break;
          case "mp_carbon": map = "CARBON";
          break;
          case "mp_dome": map = "DOME";
          break;
          case "mp_exchange": map = "DOWNTURN";
          break;
          case "mp_hardhat": map = "HARDHAT";
          break;
          case "mp_interchange": map = "INTERCHANGE";
          break;
          case "mp_lambeth": map = "FALLEN";
          break;
          case "mp_mogadishu": map = "BAKAARA";
          break;
          case "mp_paris": map = "RESISTANCE";
          break;
          case "mp_plaza2": map = "ARKADEN";
          break;
          case "mp_radar": map = "OUTPOST";
          break;
          case "mp_seatown": map = "SEATOWN";
          break;
          case "mp_underground": map = "UNDERGROUND";
          break;
          case "mp_village": map = "VILLAGE";
          break;
          case "mp_terminal_cls": map = "TERMINAL";
          break;
          case "mp_rust": map = "RUST";
          break;
          case "mp_highrise": map = "HIGHRISE";
          break;
          case "mp_italy": map = "PIAZZA";
          break;
          case "mp_park": map = "LIBERATION";
          break;
          case "mp_overwatch": map = "OVERWATCH";
          break;
          case "mp_morningwood": map = "BLACK BOX";
          break;
          case "mp_meteora": map = "SANCTUARY";
          break;
          case "mp_qadeem": map = "OASIS";
          break;
          case "mp_restrepo_ss": map = "LOOKOUT";
          break;
          case "mp_hillside_ss": map = "GETAWAY";
          break;
          case "mp_courtyard_ss": map = "EROSION";
          break;
          case "mp_aground_ss": map = "AGROUND";
          break;
          case "mp_six_ss": map = "VORTEX";
          break;
          case "mp_burn_ss": map = "U-TURN";
          break;
          case "mp_crosswalk_ss": map = "INTERSECTION";
          break;
          case "mp_shipbreaker": map = "DECOMMISSION";
          break;
          case "mp_roughneck": map = "OFF SHORE";
          break;
          case "mp_moab": map = "GULCH";
          break;
          case "mp_boardwalk": map = "BOARDWALK";
          break;
          case "mp_nola": map = "PARISH";
          break;
          case "mp_favela": map = "FAVELA";
          break;
          case "mp_nuked": map = "NUKETOWN";
          break;
          case "mp_nightshift": map = "SKIDROW";
          break;
          case "mp_cement": map = "FOUNDATION";
          break;
          default:
          break;
          } 
      
          switch(type) {
          case "TDM_default": map = map + " (TEAM DEATHMATCH)" + " :0";
          break;
          case "DOM_default":map = map  + " (DOMINATION)" + " :0";
          break;
          case "DEM_default": map = map + " (DEMOLITION)" + " :0";
          break;
          case "INF_Default": map = map + " (INFECTED)" + " :0";
          break;
          case "FFA_default":map = map  + " (FREE FOR ALL)" + " :0";    
          break;
          case "CTF_default":map = map  + " (CAPTURE THE FLAG)" + " :0";    
          break;
          case "DZ_default":map = map  + " (DROP ZONE)" + " :0";    
          break;
          case "GG_default":map = map  + " (GUN GAME)" + " :0";    
          break;
          case "HQ_default":map = map  + " (HEADQUARTERS)" + " :0";    
          break;
          case "JUG_default":map = map  + " (JUGGERNAUT)" + " :0";
          break;
          case "KC_default":map = map  + " (KILL CONFIRMED)" + " :0";
          break;
          case "OIC_default":map = map  + " (ONE IN THE CHAMBER)" + " :0";
          break;
          case "SAB_default":map = map  + " (SABOTAGE)" + " :0";
          break;
          case "SD_default":map = map  + " (SEARCH AND DESTROY)" + " :0";
          break;
          case "TDEF_default":map = map  + " (TEAM DEFENDER)" + " :0";
          break;
          case "TJ_default":map = map  + " (TEAM JUGGERNAUT)" + " :0";
          break;
          default:
          break;
          }    
          return map;
      }
      
      inArray(array, text)
      {
          for(i=0; i<array.size; i++)
          {
              if(array[i] == text)
                return true;
          }
          return false;
      }
      
      posted in MW3 Modding Releases & Resources

    Latest posts made by Kalitos

    • Bank

      @Sorex I like it, it's much simpler. My first banking system is something similar. I used txt files for each player.

      posted in BO2 Modding Support & Discussion
    • Bank

      @ytjusteli https://github.com/mjkzy/t6-zm-chat-bank

      posted in BO2 Modding Support & Discussion
    • Como puedo hacer un server de modern warfare 3??

      @Viclex_23 https://plutonium.pw/docs/server/iw5/setting-up-a-server/
      Sigue el tutorial del foro

      posted in Temas De Español
    • cant join 1 specific server

      @Regalia2900 Maybe it is some corrupted file different from the one on the server regarding the map you are trying to load.
      You can try deleting the map folder.
      Browse to your location: C:\Users\YouUser\AppData\Local\Plutonium\storage\iw5\usermaps
      And delete the map name folder.

      posted in MW3 Client Support
    • IW4M Commands Not Working In Game

      @KavoGaming no, you must override it in your config file
      30c23010-f1b1-4fce-9ec9-bedf28dbb96e-image.png

      posted in BO1 Server Hosting Support
    • IW4M Commands Not Working In Game

      @KavoGaming You must change this for it to work.

        "RConParserVersion": "Call of Duty Multiplayer - Ship COD_T5_S MP build 7.0.189 CL(1022875) CODPCAB-V64 CEG Wed Nov 02 18:02:23 2011 win-x86",
          
                "EventParserVersion": "Call of Duty Multiplayer - Ship COD_T5_S MP build 7.0.189 CL(1022875) CODPCAB-V64 CEG Wed Nov 02 18:02:23 2011 win-x86",
      posted in BO1 Server Hosting Support
    • HEY! is there any power up like movement speed or something plz send me !

      @Ahmad-B-Taha https://forum.plutonium.pw/topic/20162/release-zombies-black-ops-2-custom-perk-power-up?_=1653944271964

      posted in BO2 Modding Support & Discussion
    • Busco mods de servidor para partidas locales

      @Klarex04 https://plutonium.pw/docs/modding/loading-mods

      posted in All Other Languages Discussion
    • Puedo ser baneado por esto?

      @Rewinds22 los mods que tu instales no funcionarán en servidores públicos, solo en partidas privadas. A menos que seas propietario del servidor y lo instales en él.
      Mods para que funcionen en servidores deben instalarse en el servidor.
      Y serás baneado si haces algo que modifique el juego a nivel de la memoria como injectar algo.

      posted in Temas De Español
    • drop points

      @Sprully

      #include common_scripts\utility;
      #include maps\mp\zombies\_zm;
      #include maps\mp\zombies\_zm_weapons;
      #include maps\mp\zombies\_zm_utility;
      #include maps\mp\gametypes_zm\_hud_util;
      #include maps\mp\gametypes_zm\_hud_message;
      #include maps\mp\_utility;
      #include common_scripts\utility;
      
      init()
      {	   		
          level thread onsayPlayer();	
      }
      
      onsayPlayer()
      {
          level endon("game_ended");    
          for(;;)
          {
              level waittill( "say", message, player );
              sayText = strtok(tolower(message), " ");        
              if(sayText[0]==".send" || sayText[0]=="/.send") //GivePoints
              {
                  if(sayText.size>1)
                  {
                      for( i = 0; i < level.players.size; i++ )
                      {
                          if( isSubStr( tolower( getPlayerName( level.players[ i ] )), tolower(sayText[ 1 ] ) ))
                          {
                              value = int( sayText[ ( sayText.size - 1 ) ] );
                              if( value < 0 )
                                  value = ( value * -1 );
                              player give_points( level.players[ i ], int( value ));
                          }                    
                      }
                  }else
                  {
                      player iPrintLn("Use ^2.send ^1name ^2amount");
                  }
              }       
          }
      }
      
      give_points( player, var )
      {
      	if( !isDefined( self.giving_points ) )
      	{
      		self.giving_points = true;
      		if ( player.score == 1000000 )
      			self iPrintLn( getPlayerName( player ) + " already has ^51000000 ^7points" );
      		else if( self.score >= var )
      		{
      			self maps/mp/zombies/_zm_score::minus_to_player_score( var, 1 );
      			self iPrintLn( "^1Gave ^7" + getPlayerName( player ) + " ^1" + var + " ^7points" );
      			player maps/mp/zombies/_zm_score::add_to_player_score( var, 1 );
      			player iPrintLn( "^2" + getPlayerName( self ) + " ^7gave you ^2" + var + " ^7points" );
      		}
      		else
      			self iPrintLn( "^1You don't have enough points for that" );
      		wait 1;
      		self.giving_points = undefined;
      	}
      }
      
      getPlayerName( player )
      {
          playerName = getSubStr( player.name, 0, player.name.size );
          for( i = 0; i < playerName.size; i++ )
          {
      		if( playerName[ i ] == "]" )
      			break;
          }
          if( playerName.size != i )
      		playerName = getSubStr( playerName, i + 1, playerName.size );
      		
          return playerName;
      }
      
      
      
      posted in BO2 Modding Support & Discussion