Zumbis Online
Últimos assuntos
» [PEDIDO] Plugin Quiz
por [Dk]Serial-Killer 13/9/2017, 10:02 pm

» [PEDIDO] Limite de madness ZP50
por cancels 9/9/2017, 5:38 pm

» [PEDIDO] Midnight's Darkness para ZPA
por PRO DARK 7/9/2017, 5:45 pm

» fast dl
por william 31/8/2017, 3:51 pm

» [ZP 5.0.8] Zombie Madness LIMIT! Ajuda Por Favor
por cancels 29/7/2017, 10:36 pm

» [Dúvida]Limit Madness
por cancels 29/7/2017, 7:31 pm

» [Dúvida]Menu VIP
por cancels 29/7/2017, 7:30 pm

» [Duvida]Menu
por cancels 28/7/2017, 9:31 pm

» [Pedido] Som De Tiros
por N0th1ng 26/7/2017, 7:06 pm

» [PEDIDO] Mudando Menu VIP
por PRO DARK 22/7/2017, 9:37 am

Frases filosóficas Zplague:
....
Os membros mais ativos da semana

Tópicos similares
    Adsense

    [ZP] Predator vs Survivor

    Ver o tópico anterior Ver o tópico seguinte Ir em baixo

    [ZP] Predator vs Survivor

    Mensagem por [D]etonado[R] em 8/12/2013, 3:31 pm

    Predator vs Survivor

    Sma:

    Código:
    #include <      amxmodx >
    #include <      fun >
    #include <      zpa_new_modes >

    /************************************************************\
    |                  Customizations Section                    |
    |        You can edit here according to your liking        |
    \************************************************************/

    // This is the chance value according to which this game mode will be called
    // The higher the value the lesser the chance of calling this game mode
    new const g_chance = 30

    // This is the access flag required to start the game mode
    // through the admin menu. Look in users.ini for more details
    new const g_access_flag[] = "l"

    // This is the sound which is played when the game mode is triggered
    // Add as many as you want [Randomly chosen if more than one]
    new const g_play_sounds[][] =
    {
      "zombie_plague/nemesis1.wav" ,
      "zombie_plague/survivor1.wav"
    }

    // Comment the following line to disable ambience sounds
    // Just add two slashes ( // )
    #define AMBIENCE_SOUNDS

    #if defined AMBIENCE_SOUNDS
    // Ambience Sounds (only .wav and .mp3 formats supported)
    // Add as many as you want [Randomly chosen if more than one]
    new const g_sound_ambience[][] =
    {
      "zombie_plague/ambience.wav"
    }

    // Duration in seconds of each sound
    new const Float:g_sound_ambience_duration[] = { 58.0 , 56.0 }
    #endif

    /************************************************************\
    |                  Customizations Ends Here..!!              |
    |        You can edit the cvars in the plugin init          |
    \************************************************************/

    // Variables
    new g_gameid, g_maxplayers, cvar_minplayers, cvar_ratio, cvar_survivorhp, cvar_predatorhp, g_msg_sync

    // Ambience sounds task
    #define TASK_AMB 3256

    public plugin_init( )
    {
      // Plugin registeration.
      register_plugin( "[ZP] Survivor x Predator","1.0", "@bdul! | [D]etonado[R]" )
     
      // Register some cvars
      // Edit these according to your liking
      cvar_minplayers = register_cvar("zp_nvsm_minplayers", "2")
      cvar_survivorhp =    register_cvar("zp_nvsm_survivor_hp", "1.0")
      cvar_predatorhp =    register_cvar("zp_nvsm_predator_hp", "0.2")
      cvar_ratio =      register_cvar("zp_nvsm_inf_ratio", "0.5")
     
      // Get maxplayers
      g_maxplayers = get_maxplayers( )
     
      // Hud stuff
      g_msg_sync = CreateHudSyncObj()
    }

    // Game modes MUST be registered in plugin precache ONLY
    public plugin_precache( )
    {
      // Read the access flag
      new access_flag = read_flags( g_access_flag )
      new i
     
      // Precache the play sounds
      for (i = 0; i < sizeof g_play_sounds; i++)
          precache_sound( g_play_sounds[i] )
     
      // Precache the ambience sounds
      #if defined AMBIENCE_SOUNDS
      new sound[100]
      for (i = 0; i < sizeof g_sound_ambience; i++)
      {
          if (equal(g_sound_ambience[i][strlen(g_sound_ambience[i])-4], ".mp3"))
          {
            formatex(sound, sizeof sound - 1, "sound/%s", g_sound_ambience[i])
            precache_generic( sound )
          }
          else
          {
            precache_sound( g_sound_ambience[i] )
          }
      }
      #endif
     
      // Register our game mode
      g_gameid = zp_register_game_mode( "Predator vs Survivor Mode", access_flag, g_chance, 0, ZP_DM_BALANCE )
    }

    // Player spawn post
    public zp_player_spawn_post( id )
    {
      // Check for current mode
      if( zp_get_current_mode() == g_gameid )
      {
          // Check if the player is a zombie
          if( zp_get_user_zombie( id ))
          {
            // Make him an predator instead
            zp_make_user_predator( id )
           
            // Set his health
            set_user_health( id, floatround(get_user_health(id) * get_pcvar_float(cvar_predatorhp)) )
          }
          else
          {
            // Make him a Survivor
            zp_make_user_survivor( id )
           
            // Set his health
            set_user_health( id, floatround(get_user_health(id) * get_pcvar_float(cvar_survivorhp)) )
          }
      }
    }

    public zp_round_started_pre( game )
    {
      // Check if it is our game mode
      if( game == g_gameid )
      {
          // Check for min players
          if( fn_get_alive_players() < get_pcvar_num(cvar_minplayers) )
          {
            /**
              * Note:
              * This very necessary, you should return ZP_PLUGIN_HANDLED if
              * some conditions required by your game mode are not met
              * This will inform the main plugin that you have rejected
              * the offer and so the main plugin will allow other game modes
              * to be given a chance
              */
            return ZP_PLUGIN_HANDLED
          }
          // Start our new mode
          start_nvs_mode( )
      }
      // Make the compiler happy =)
      return PLUGIN_CONTINUE
    }

    public zp_round_started( game, id )
    {
      // Check if it is our game mode
      if( game == g_gameid )
      {
          // Show HUD notice
          set_hudmessage(221, 156, 21, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1)
          ShowSyncHudMsg(0, g_msg_sync, "Survivor vs Predator")
         
          // Play the starting sound
          client_cmd(0, "spk ^"%s^"", g_play_sounds[ random_num(0, sizeof g_play_sounds -1) ] )
         
          // Remove ambience task affects
          remove_task( TASK_AMB )
         
          // Set task to start ambience sounds
          #if defined AMBIENCE_SOUNDS
          set_task( 2.0, "start_ambience_sounds", TASK_AMB )
          #endif
      }
    }

    public zp_game_mode_selected( gameid, id )
    {
      // Check if our game mode was called
      if( gameid == g_gameid )
          start_nvs_mode( )
     
      // Make the compiler happy again =)
      return PLUGIN_CONTINUE
    }

    // This function contains the whole code behind this game mode
    start_nvs_mode( )
    {
      // Create and initialize some important vars
      static i_predator, i_max_predator, id, i_alive
      i_alive = fn_get_alive_players()
      id = 0
     
      // Get the no of players we have to turn into predator
      i_max_predator = floatround( ( i_alive * get_pcvar_float( cvar_ratio ) ), floatround_ceil )
      i_predator = 0
     
      // Randomly turn players into predator
      while (i_predator < i_max_predator)
      {
          // Keep looping through all players
          if ( (++id) > g_maxplayers) id = 1
         
          // Dead
          if ( !is_user_alive(id) )
            continue;
         
          // Random chance
          if (random_num(1, 5) == 1)
          {
            // Make user predator
            zp_make_user_predator(id)
           
            // Set his health
            set_user_health( id, floatround(get_user_health(id) * get_pcvar_float(cvar_predatorhp)) )
           
            // Increase counter
            i_predator++
          }
      }
     
      // Turn the remaining players into survivor
      for (id = 1; id <= g_maxplayers; id++)
      {
          // Only those of them who are alive and are not predator
          if ( !is_user_alive(id) || zp_get_user_predator(id) )
            continue;
           
          // Turn into a survivor
          zp_make_user_survivor(id)
         
          // Set his health
          set_user_health( id, floatround(get_user_health(id) * get_pcvar_float(cvar_survivorhp)) )
      }
    }

    #if defined AMBIENCE_SOUNDS
    public start_ambience_sounds( )
    {
      // Variables
      static amb_sound[64], sound, Float:duration
     
      // Select our ambience sound
      sound = random_num( 0, sizeof g_sound_ambience - 1 )
      copy( amb_sound, sizeof amb_sound - 1 , g_sound_ambience[ sound ] )
      duration = g_sound_ambience_duration[ sound ]
     
      // Check whether it's a wav or mp3, then play it on clients
      if ( equal( amb_sound[ strlen( amb_sound ) - 4 ], ".mp3" ) )
          client_cmd( 0, "mp3 play ^"sound/%s^"", amb_sound )
      else
          client_cmd( 0, "spk ^"%s^"", sound )
     
      // Start the ambience sounds
      set_task( duration, "start_ambience_sounds", TASK_AMB )
    }
    public zp_round_ended( winteam )
    {
      // Stop ambience sounds on round end
      remove_task( TASK_AMB )
      client_cmd(winteam, "mp3 stop")  // Para nao bugar o som quando o round acabar caso seja em Mp3
    }
    #endif

    // This function returns the no. of alive players
    // Feel free to use this in your plugin when you
    // are making your own game modes.
    fn_get_alive_players( )
    {
      static i_alive, id
      i_alive = 0
     
      for ( id = 1; id <= g_maxplayers; id++ )
      {
          if( is_user_alive( id ) )
            i_alive++
      }
      return i_alive;
    }

    ____________________________________________

    avatar
    [D]etonado[R]
    Humano
    Humano

    Nick : [D]etonado[R]
    Masculino Número de Mensagens : 625
    Ammo Packs : 1624
    Honra : 20
    Data de inscrição : 17/10/2013

    Ver perfil do usuário

    Voltar ao Topo Ir em baixo

    Re: [ZP] Predator vs Survivor

    Mensagem por Leozinho em 8/12/2013, 4:27 pm

    Legal o modo.

    ____________________________________________

    avatar
    Leozinho
    Administrador
    Administrador

    Masculino Número de Mensagens : 2854
    Ammo Packs : 2789
    Honra : 75
    Data de inscrição : 20/11/2011

    Ver perfil do usuário leozinho.zp

    Voltar ao Topo Ir em baixo

    Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

    - Tópicos similares

     
    Permissão deste fórum:
    Você não pode responder aos tópicos neste fórum