Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSS[ZP] HELP >> Server as the first zombie?


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
The idea of this code is to choose to infect players depending on the number of players online, here everything works fine, the only problem is that from time to time it selects the server as the first zombie, it even starts a round without zombies already which selects the server as the first zombie.

Code
PHP Code:

/*================================================================================ 
     
    --------------------------------- 
    -*- [ZP] Game Mode: Infection -*- 
    --------------------------------- 
     
    This plugin is part of Zombie Plague Mod and is distributed under the 
    terms of the GNU General Public License. Check ZP_ReadMe.txt for details. 
     
================================================================================*/ 

#include <amxmodx> 
#include <fun> 
#include <fakemeta> 
#include <hamsandwich> 
#include <cs_teams_api> 
#include <cs_ham_bots_api> 
#include <zp50_gamemodes> 
#include <zp50_deathmatch> 

// HUD messages 
#define HUD_EVENT_X -1.0 
#define HUD_EVENT_Y 0.17 
#define HUD_EVENT_R 255 
#define HUD_EVENT_G 0 
#define HUD_EVENT_B 0 

new g_MaxPlayers 
new g_HudSync 
new g_TargetPlayerg_TargetPlayer2g_TargetPlayer3 

new cvar_infection_chancecvar_infection_min_players 
new cvar_infection_show_hud 
new cvar_infection_allow_respawncvar_respawn_after_last_human 
new cvar_zombie_first_hp_multiplier
new cvar_zombie_second_hpcvar_zombie_third_hp 

public plugin_precache() 

    
// Register game mode at precache (plugin gets paused after this) 
    
register_plugin("[ZP] Game Mode: Infection"ZP_VERSION_STRING"ZP Dev Team"
    new 
game_mode_id zp_gamemodes_register("Infection Mode"
    
zp_gamemodes_set_default(game_mode_id
     
    
// Create the HUD Sync Objects 
    
g_HudSync CreateHudSyncObj() 
     
    
g_MaxPlayers get_maxplayers() 
     
    
cvar_infection_chance register_cvar("zp_infection_chance""1"
    
cvar_infection_min_players register_cvar("zp_infection_min_players""0"
    
cvar_infection_show_hud register_cvar("zp_infection_show_hud""1"
    
cvar_infection_allow_respawn register_cvar("zp_infection_allow_respawn""1"
    
cvar_respawn_after_last_human register_cvar("zp_respawn_after_last_human""1"
    
cvar_zombie_first_hp_multiplier register_cvar("zp_zombie_first_hp_multiplier""2.0")
    
cvar_zombie_second_hp register_cvar("zp_zombie_second_hp""3.0"
    
cvar_zombie_third_hp register_cvar("zp_zombie_third_hp""2.0")


// Deathmatch module's player respawn forward 
public zp_fw_deathmatch_respawn_pre(id

    
// Respawning allowed? 
    
if (!get_pcvar_num(cvar_infection_allow_respawn)) 
        return 
PLUGIN_HANDLED
     
    
// Respawn if only the last human is left? 
    
if (!get_pcvar_num(cvar_respawn_after_last_human) && zp_core_get_human_count() == 1
        return 
PLUGIN_HANDLED
     
    return 
PLUGIN_CONTINUE


public 
zp_fw_gamemodes_choose_pre(game_mode_idskipchecks

    if (!
skipchecks
    { 
        
        
// Random chance 
        
if (random_num(1get_pcvar_num(cvar_infection_chance)) != 1
            return 
PLUGIN_HANDLED
         
        
// Min players 
        
if (GetAliveCountHuman() < get_pcvar_num(cvar_infection_min_players)) 
            return 
PLUGIN_HANDLED;
                 
    } 
     
    
// Game mode allowed 
    
return PLUGIN_CONTINUE


public 
zp_fw_gamemodes_choose_post(game_mode_idtarget_player)
{             
    
// Pick player randomly?
    
g_TargetPlayer = (target_player == RANDOM_TARGET_PLAYER) ? GetRandomAlive(random_num(1GetAliveCount())) : target_player
    g_TargetPlayer2 
= (target_player == RANDOM_TARGET_PLAYER) ? GetRandomAlive(random_num(1GetAliveCount())) : target_player   
    g_TargetPlayer3 
= (target_player == RANDOM_TARGET_PLAYER) ? GetRandomAlive(random_num(1GetAliveCount())) : target_player    


public 
zp_fw_gamemodes_start() 
{        
    
// Allow infection for this game mode 
    
zp_gamemodes_set_allow_infect()
    
    switch (
GetAliveCountHuman()) 
    { 
        case 
.. 10
        { 
             if(
is_user_alive(g_TargetPlayer))
             {     
                
zp_core_infect(g_TargetPlayerg_TargetPlayer
                
set_user_health(g_TargetPlayerfloatround(get_user_health(g_TargetPlayer) * get_pcvar_float(cvar_zombie_first_hp_multiplier)))      
             }
        }  
    
        case 
11 .. 20
        {     
             if(
is_user_alive(g_TargetPlayer2))
             {                 
                
zp_core_infect(g_TargetPlayer2g_TargetPlayer2
                
set_user_health(g_TargetPlayer2floatround(get_user_health(g_TargetPlayer2) * get_pcvar_float(cvar_zombie_second_hp)))      
             }

             if(
is_user_alive(g_TargetPlayer))
             {
                
zp_core_infect(g_TargetPlayerg_TargetPlayer)
                
set_user_health(g_TargetPlayerfloatround(get_user_health(g_TargetPlayer) * get_pcvar_float(cvar_zombie_first_hp_multiplier)))            
             }
        }
    
        case 
21 .. 32
        {     
             if(
is_user_alive(g_TargetPlayer3))
             {      
                
zp_core_infect(g_TargetPlayer3g_TargetPlayer3
                
set_user_health(g_TargetPlayer3floatround(get_user_health(g_TargetPlayer3) * get_pcvar_float(cvar_zombie_third_hp))) 
             }
       
             if(
is_user_alive(g_TargetPlayer2))
             {                 
                
zp_core_infect(g_TargetPlayer2g_TargetPlayer2
                
set_user_health(g_TargetPlayer2floatround(get_user_health(g_TargetPlayer2) * get_pcvar_float(cvar_zombie_second_hp)))      
             }

             if(
is_user_alive(g_TargetPlayer))
             {
                
zp_core_infect(g_TargetPlayerg_TargetPlayer)
                
set_user_health(g_TargetPlayerfloatround(get_user_health(g_TargetPlayer) * get_pcvar_float(cvar_zombie_first_hp_multiplier)))            
             }
        }           
    }
    
// Remaining players should be humans (CTs) 
    
new id 
    
for (id 1id <= g_MaxPlayersid++) 
    { 
        
// Not alive 
        
if (!is_user_alive(id)) 
            continue; 
         
        
// This is our first zombie 
        
if (zp_core_is_zombie(id)) 
            continue; 
         
        
// Switch to CT 
        
cs_set_player_team(idCS_TEAM_CT
    } 
     
    if (
get_pcvar_num(cvar_infection_show_hud)) 
    { 
        
// Show First Zombie HUD notice 
        
new name[32
        
get_user_name(g_TargetPlayernamecharsmax(name)) 
        
set_hudmessage(HUD_EVENT_RHUD_EVENT_GHUD_EVENT_BHUD_EVENT_XHUD_EVENT_Y00.05.01.01.0, -1
        
ShowSyncHudMsg(0g_HudSync"%L"LANG_PLAYER"NOTICE_FIRST"name
    } 


// Get Alive Count -returns alive players number- 
GetAliveCountHuman() 

    new 
iAliveid 
     
    
for (id 1id <= g_MaxPlayersid++) 
    { 
        if (
is_user_alive(id)) 
            
iAlive++ 
    } 
     
    return 
iAlive


// Get Alive Count -returns alive players number- 
GetAliveCount() 

    new 
iAliveid 
     
    
for (id 1id <= g_MaxPlayersid++) 
    { 
        if (
is_user_alive(id) && id != g_TargetPlayer && id != g_TargetPlayer2 && id != g_TargetPlayer3
            
iAlive++ 
    } 
     
    return 
iAlive


// Get Random Alive -returns index of alive player number target_index - 
GetRandomAlive(target_index

    new 
iAliveid 
     
    
for (id 1id <= g_MaxPlayersid++) 
    { 
        if (
is_user_alive(id) && id != g_TargetPlayer && id != g_TargetPlayer2 && id != g_TargetPlayer3
            
iAlive++ 
         
        if (
iAlive == target_index
            return 
id
    } 
     
    return -
1
}  

public 
zp_fw_gamemodes_end() 
{                 
    
g_TargetPlayer 0
    g_TargetPlayer2 
0
    g_TargetPlayer3 
0


Thank you very much in advance to anyone who helps me :wink:

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...