Don't like ads? PRO users don't see any ads ;-)
Guest

Code de modo l4d

By: a guest on May 5th, 2012  |  syntax: None  |  size: 5.04 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. // Make a Zombie Function
  2. make_a_zombie(mode, id)
  3. {
  4.         // Get alive players count
  5.         static iPlayersnum
  6.         iPlayersnum = fnGetAlive()
  7.        
  8.         // Not enough players, come back later!
  9.         if (iPlayersnum < 1)
  10.         {
  11.                 set_task(10.0, "make_zombie_task", TASK_MAKEZOMBIE)
  12.                 return;
  13.         }
  14.        
  15.         #if defined AMBIENCE_SOUNDS
  16.         // Start ambience sounds after a mode begins
  17.         remove_task(TASK_AMBIENCESOUNDS)
  18.         set_task(2.0, "ambience_sound_effects", TASK_AMBIENCESOUNDS)
  19.         #endif
  20.        
  21.         // Get prevent consecutive modes setting
  22.         static preventconsecutive
  23.         preventconsecutive = get_pcvar_num(cvar_preventconsecutive)
  24.        
  25.         g_newround = false
  26.         g_survround = false
  27.         g_weskround = false
  28.         g_nemround = false
  29.         g_swarmround = false
  30.         g_plagueround = false
  31.         g_armageddonround = false
  32.         g_synapsisround = false
  33.        
  34.         // Set up some common vars
  35.         static forward_id, name[32], iZombies, iMaxZombies
  36.        
  37.         if ((mode == MODE_NONE && (!preventconsecutive || g_lastmode != MODE_SURVIVOR) && random_num(1, get_pcvar_num(cvar_survchance)) == get_pcvar_num(cvar_surv) && iPlayersnum >= get_pcvar_num(cvar_survminplayers)) || mode == MODE_SURVIVOR)
  38.         {
  39.                 // Survivor Mode
  40.                 g_survround = true
  41.                 g_lastmode = MODE_SURVIVOR
  42.                
  43.                 // Choose player randomly?
  44.                 if (mode == MODE_NONE)
  45.                         id = fnGetRandomAlive(random_num(1, iPlayersnum))
  46.                
  47.                 // Remember id for calling our forward later
  48.                 forward_id = id
  49.                
  50.                 // Turn player into a survivor
  51.                 humanme(id, 1, 0)
  52.                
  53.                 // Show health task
  54.                 set_task(1.0, "ShowHealth", id+TASK_HEALTH, _, _, "b")
  55.                
  56.                 // Turn the remaining players into zombies
  57.                 for (id = 1; id <= g_maxplayers; id++)
  58.                 {
  59.                         // Not alive
  60.                         if (!is_user_alive(id))
  61.                                 continue;
  62.                        
  63.                         // Survivor or already a zombie
  64.                         if (g_survivor[id] || g_zombie[id])
  65.                                 continue;
  66.                        
  67.                         // Turn into a zombie
  68.                         zombieme(id, 0, 0, 1)
  69.                 }
  70.                
  71.                 // Play survivor sound
  72.                 PlaySound(sound_survivor[random_num(0, sizeof sound_survivor -1)]);
  73.                
  74.                 // Get player's name
  75.                 get_user_name(forward_id, name, sizeof name - 1)
  76.                
  77.                 // Show Survivor HUD notice
  78.                 set_hudmessage(0, 180, 255, HUD_EVENT_X, HUD_EVENT_Y, 1, 0.0, 5.0, 1.0, 1.0, -1)
  79.                 ShowSyncHudMsg(0, g_MsgSync, "..::Modo Survivor::..^n%s ha sido convertido en Survivor!", name)
  80.                
  81.                 message_begin(MSG_BROADCAST, g_msgScreenFade) // Open The Function
  82.                 write_short((1<<12)*1) // Duration
  83.                 write_short(1<<12) // Hold Time
  84.                 write_short(0x0000) // Fade Type
  85.                 write_byte(0) // Color Red
  86.                 write_byte(180) // Color Green
  87.                 write_byte(255) // Color Blue
  88.                 write_byte(100) // Alpha
  89.                 message_end() // Close The Function
  90.                
  91.                 // Round start forward
  92.                 ExecuteForward(g_fwRoundStart, g_fwDummyResult, MODE_SURVIVOR, forward_id);
  93.         }
  94.         else if ((mode == MODE_NONE && (!preventconsecutive || g_lastmode != MODE_L4D) && random_num(1, get_pcvar_num(cvar_l4dchance)) == get_pcvar_num(cvar_l4d) && floatround((iPlayersnum-2)*get_pcvar_float(cvar_l4dratio), floatround_ceil) >= 1 && iPlayersnum >= get_pcvar_num(cvar_l4dminplayers)) || mode == MODE_L4D)//[registramos si no es alguno de los otros modos realiza una pregunta si es compatible con todas las cvars creadas por nosotros (pd. pcvar_float es una cvar permanente, pcvar_num es una cvar numerica)]
  95.     {
  96.         //Modo L4D
  97.         g_l4dround = true // Establecemos la ronda del modo l4d como true
  98.         g_swarmround = true // Establecemos la ronda del modo swarm como true para que no se infecten a los humanos
  99.         for (id = 1; id <= g_maxplayers; id++)//[para todos los jugadores que esten conectados]
  100.         {
  101.             // si no esta vivo
  102.             if (!is_user_alive(id))
  103.                 continue;//[no continuar]
  104.              
  105.             // si es un zombie
  106.             if (g_zombie[id])
  107.                 continue;
  108.              
  109.             // Convertir en zombie
  110.             zombieme(id, 0, 0, 1)
  111.                        // Convierte a todos en zombies a menos que no este vivo o que ya sea zombie
  112.         }
  113.          
  114.         // Convertir 4 de los zombies en Humanos
  115.         for ( new i = 0; i < 4; i++ )//[para que sean 4 jugadores los que se conviertan en humanos]
  116. {
  117.      id = fnGetRandomAlive( random_num( 1, iPlayersnum ) )//[este code sirve para elegir a alguien al azar]
  118.      if ( g_zombie[id] )//[ si no es zombie]
  119.          humanme( id, 0 ) //[los convierte en humano solo a 4 recuerden]
  120.      else//[sino]
  121.          i--//[no lo convertimos en humano]
  122. }  
  123.      
  124.      
  125.         // Establecemos el sonido del modo plague como el del l4d
  126.         PlaySound(sound_plague[random_num(0, sizeof sound_plague -1)]); // podemos cambiarlo por cualquier otro sonido de otro modo o registrar uno propio
  127.          
  128.         // Mostramos la noticia del modo en un HuD
  129.         set_hudmessage(0, 50, 200, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)//[aqui se muestra el color y la posicion]
  130.         ShowSyncHudMsg(0, g_MsgSync, "..::Modo Left 4 Dead::..")//[muestra el hud por un tiempito diciendo el mensaje del lang_player registrado como notice_l4d]
  131.          
  132.         // Ejecutamos la ronda de modo L4D
  133.         ExecuteForward(g_fwRoundStart, g_fwDummyResult, MODE_L4D, 0);
  134.     }