Raised This Month: $51 Target: $400
 12% 

Zombie ME 3.1 (Being updated)


Post New Thread Reply   
 
Thread Tools Display Modes
work_SSS
Junior Member
Join Date: Aug 2009
Old 10-08-2009 , 15:04   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #81

Consider my idea)) I'd like to see a game mode!

Hello, I have an idea
1) There is a bomb (She's terror), they lay it
and guard, to its explosion! As soon as the explosion proizoshol,
of players from other teams become zombies and can infect
this infection only players his own command.
Commando terrorists (ie those who put the bomb) can only kill zombies!
( "It is desirable to make ubravlyaemye parameters for zombies that supposedly
if they are killed by terror, how many lives are taken away from them for
the first blow, and so on)
2) The purpose of the game mode is that a terrorist must infect
entire command cops infected zombies (and kill the zombies +))
) and hence put the bomb and protect it ubiivaya cops and policemen
must either catch razmenirovat (Reconfigure) bomb (which will
outbreaks of infection in command of terrorists)
and not allow spread of infection among their commands!
I apologize for my English))

Отцените мою идею!
Теперь о главном
1) Есть бомба (Она у терроров) они её закладывают
и охраняют, до её взрыва! Как только взрыв произошол,
часть игроков из другой команды становятся зомби и могут заразить
этой инфекцией только игроков своей же комманды.
Комманду террористов (То есть тех кто ставил бомбу) зомби может только убивать!
("Очень желательно сделать убравляемые параметры для зомби что мол
если они убивают терроров то сколько жизни они у них отнимают за
первый удар и так далее")
2) Цель игрового режима состоит в том что терроритам надо заразить
всю комманду ментов инфекцией зомби (И убивать зомби +))
)следовательно ставить бомбу и охранять её убиивая ментов, а ментам
надо либо успеть разменировать (Перенастроить) бомбу (Что приведёт к
вспышки инфекции в комманде террористов)
и не дать распространится инфекции среди своей комманды!

It would be nice is not looking at the classic CS 1.6 CSDM and on fashion!

Хорошо бы это смотрелось не на классической CS 1.6 а на CSDM моде!

just plug into an existing (zombieme) can add 1) returns zombies when firing on it! 2) Extra pridmety (mode of purchase of any weapons and antidote)!

так же в уже имеющийся плаги (zombieme) можно добавить 1) отдачу зомби при стрельбе по нему! 2) Екстра придметы (режим покупки какого либо оружия и антидота)!

Last edited by work_SSS; 10-08-2009 at 15:27.
work_SSS is offline
work_SSS
Junior Member
Join Date: Aug 2009
Old 10-08-2009 , 16:12   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #82

Sequels (updated) Ideas! only CSDM
We all know about the quadrupeds, such as a game mode (flags) (http://forums.alliedmods.net/showthr...ighlight=flags)
In this mode, we are defending the flags, making a total of 5 on the map
and have a greater command of the flags have run faster and it points in the latter wins!

1) There is a bomb (She's terror), they lay it
and guard, to its explosion! As soon as the explosion proizoshol,
is spread zombie
it may byst wave that goes all over the map in the form of a light wave
zarozheniya and distribute to the CT (cops), if members of the command (CT) had to reconfigure the bomb is infected with (terrorism)
a) Contamination spread throughout the players!
b) Комманда which has the most points of the flags can afford to buy (Antidote!)
a) After a dead zombie, no matter from which he commands, he appears a man! "(you need to reconquer the flags!)
g) As soon as the bomb detonated, it appearing again in rebirth terrorists as a game mode CSDM (And he once again runs its mortgage)!
d) If a terrorist bomb killed by the bomb (zombies) will at the place where he was killed.

The purpose of the game mode consists of: 1) (Terrorists) The terrorists have found a bomb (To get zombies are the easiest way not to admit to zovaevaniyu flags) and have time to win as many flags that would buy the antidote, and all sorts of gadgets there!
2) (CT - cops) You must reconfigure the bomb that would not cause outbreaks of infection (zombies) in his command, and to win as many flags that would buy the antidote and Dowa terrorists put a bomb!

The whole game mode will look at the CSDM fashion, and the game (zombies) will acquire a new type may be a new mod!

Who became the interesting idea to write here, let's think out (together) what more can be done that would decorate the game!

Продолжения (обновлённая) Идеи! только для CSDM
Всем нам извесно про такой игровой режим как (Флаги) (http://forums.alliedmods.net/showthr...ighlight=flags)
В этом режиме мы отстаиваем флаги, всего их 5 на карте
и у какой комманды больше флагов у той быстрее бегут очки и она в последствие выигрывает!

1) Есть бомба (Она у терроров) они её закладывают
и охраняют, до её взрыва! Как только взрыв произошол,
идёт распространения инфекции зомби
это может бысть волна которая идёт по всей карте в виде световой волны,
и зарожения распростроняется на CT (Ментов), если члены комманды (CT) успели перенастроить бомбу идёт заражения у (Терроров)
а) Заражения распростроняется по всем игрокам!
б) Комманда у которой больше всего очков от флагов может позволить купить себе (Антидот!)
в) После того как умер зомби, не важно из какой он комманды он появляется человеком!(нужно для отвоёвывания флагов!)
г) Как только бомбу взорвали она появлятся снова у возраждённого террориста так как игра в режиме CSDM (И он вновь бежит её закладывать)!
д) Если террорист с бомбой убит то бомба (зомби) воляется на том месте где его убили.

Цель игрового режима состоит:1) (Террористы) Террористам надо закладывать бомбу (Что бы получить зомби которых проще всего не пускать к зоваеванию флагов) и успеть завоевать как можно больше флагов что бы покупать антидот и всякие там примочки!
2) (CT - менты) Надо перенастроить бомбу что бы не привести вспышки инфекции (зомби) в своей комманде, и завоевать как можно больше флагов что бы покупать антидот и не довать террористам ставить бомбу!

Весь этот игровой режим будет смотреться на CSDM моде, и игра (зомби) приобретёт новый вид возможно новый мод!

Кому стала интересна идея пишите сюда, будем додумывать (вместе) что ещё можно сделать что бы украсить игру!
work_SSS is offline
supergreg
Senior Member
Join Date: Jul 2007
Location: Oslo, Norway
Old 10-13-2009 , 19:26   Re: Zombie ME v3.1 Update! '3/11/08'
Reply With Quote #83

Quote:
Originally Posted by Zombiecorp View Post
not scary mod
Could still be fun ;)

Just like this song, awesome: No more kings - Zombie Me
supergreg is offline
Redfalcon
BANNED
Join Date: Sep 2009
Location: Prison Break
Old 10-16-2009 , 11:11   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #84

Cool plugin
Redfalcon is offline
Send a message via MSN to Redfalcon
soolt
BANNED
Join Date: Aug 2009
Location: Lithuania
Old 10-16-2009 , 15:41   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #85

nice plugin and: keep them on that team and turn them into a zombie about infection idea.
and please make fast z_zombie_limit
because admins have too much fun
soolt is offline
Send a message via Skype™ to soolt
purple nurple
Senior Member
Join Date: Jun 2007
Location: US Missouri
Old 02-01-2010 , 23:00   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #86

I should be able to update this mod soon. Probably going to use HAM and rewrite most of it!
purple nurple is offline
albjb
Junior Member
Join Date: Jul 2013
Old 07-25-2013 , 02:57   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #87

Soy español, y updated the plugin with T/CT models y most code :
PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <fun>

#define PLUGIN "Zombie Me"
#define VERSION "3.7"
#define AUTHOR "ALBJB"

enum ROUNDSTATUS {
    
RS_END,
    
RS_RUNNING,
    
RS_UNDEFINED
}
new 
ROUNDSTATUS:roundstatus RS_UNDEFINED

#define ZOMBIE_PAIN 2
new pain_zombie[ZOMBIE_PAIN][] = {"zombie/zo_pain1.wav""zombie/zo_pain2.wav" }

#define ZOMBIE_IDLE 7
new idle_zombie[ZOMBIE_IDLE][] = {
    
"zombie/zo_alert10.wav"
    
"zombie/zo_alert20.wav",
    
"zombie/zo_alert30.wav",
    
"zombie/zo_idle1.wav",
    
"zombie/zo_idle2.wav",
    
"zombie/zo_idle3.wav"
    
"zombie/zo_idle4.wav"
}

#define ZOMBIE_MISS 2
new miss_zombie[ZOMBIE_MISS][] = {"zombie/claw_miss1.wav""zombie/claw_miss2.wav" }

#define ZOMBIE_HIT 3
new hit_zombie[ZOMBIE_HIT][] = {"zombie/claw_strike1.wav""zombie/claw_strike2.wav","zombie/claw_strike3.wav" }

#define ZOMBIE_DEATH 2
new death_zombie[ZOMBIE_DEATH][] = {"aslave/slv_die1.wav","aslave/slv_die2.wav" }

new 
nightvision[33]
new 
bool:zombie[33]
new 
bool:z_vida[33]
new 
z_life[33]
new 
user_team[33]

new 
z_costz_healthz_armorz_speedz_gravityz_buyablez_glowz_damagez_sounds
#define MAX_PLAYERS 32
new bool:g_restart_attempt[MAX_PLAYERS 1]
new 
freezemaxspeed

new bool:map_off false
new mapname[32]

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
////COMMANDS
    
register_clcmd("say /zombi""buy_zombie")//, 0, "Transforms you into a zombie.")
    
register_clcmd("say /zombieme","buy_zombie")
    
register_clcmd("say /zombie","buy_zombie")
    
register_clcmd("say_team /zombi","buy_zombie")
    
register_clcmd("say_team /zombieme","buy_zombie")
    
register_clcmd("say_team /zombie","buy_zombie")
    
register_clcmd("nightvision","client_nightvision")
    
    
//register_clcmd("zombie_menu","zombie_menu", ADMIN_KICK)
    
register_menuid("zombie_menu")
    
register_concmd("zombie_menu","zombie_menu")//para abrir menu desde la consola
    
register_clcmd("zmenu","zombie_menu")
    
register_clcmd("say_team zmenu""zombie_menu")
    
////////////
    /////////EVENTS/////
    
register_event("WeapPickup""event_weap_pickup""be""1!29")    // removes players picked up weapon
    
register_event("Damage","event_damage_pain","be","2!0","3=0")     // cuando produce algun daño al jugador
    
register_event("DeathMsg","event_DeathMsg","a")            // cuando muere de algun jugador
    
register_event("CurWeapon","event_CurWeapon","be")        // use the CurWeapon event to keep setting player's speed
    
register_event("ResetHUD""event_hud_reset""be")        // cuando se reinicia el HUD PLAYER
    
register_event("HLTV""check_commands""a")
    
//RegisterHam(Ham_Spawn, "player", "check_commands", 0); // Pre, player is dead
    
register_clcmd("fullupdate""clcmd_fullupdate")        // 
    
register_event("TextMsg""event_restart_attempt""a""2=#Game_will_restart_in")// cuendo el CS usa algun comando
    
register_event("TextMsg""event_restart_attempt""a""2=#Game_Commencing")// cuendo el CS usa algun comando
    
    
register_forward(FM_PlayerPreThink,"Client_PreThink")
    
register_forward(FM_Touch,"fw_Touch")                // Cuando el jugador o entidad toca algo
    
register_forward(FM_EmitSound"fw_EmitSound")
    
    
register_logevent("event_roundstart"2"0=World triggered""1=Round_Start")    // detecta el empieze de la ronda
    
register_event("SendAudio""event_twin""a""2&%!MRAD_terwin")        // detecta cuando ganan T
    
register_event("SendAudio""event_ctwin""a""2&%!MRAD_ctwin")        // detecta cuadno ganan CT
    
register_logevent("event_roundend",2,"1=Game_Commencing")            // detecta el final de la ronda
    /////////////////////
    /////////CVARS/////////
    
z_cost register_cvar("z_cost","16000"// coste del zombi
    
z_health register_cvar("z_health","1500"// vida del zombi
    
z_armor register_cvar("z_armor","200"// armadura del zombi
    
z_speed register_cvar("z_speed","420"// velocidad del zombi
    
z_gravity register_cvar("z_gravity","0.5"// gravedad del zombi
    
z_buyable register_cvar("z_buyable","1"// activar/desactivar comprar zombi
    
z_glow register_cvar("z_glow""20"// activar/desactivar recubrimiento team color
    
z_damage register_cvar("z_damage","20"// daño de mas que causa el zombie
    
z_sounds register_cvar("z_sounds","1"// activar/desactivar sonidos del zombie
    ///////////////////
    ///////////////STUFF////////////
    
register_cvar(PLUGIN,VERSION,FCVAR_SERVER)
    
/////////////////////////////////////
    /////////////////////Server commands////////
    
maxspeed get_cvar_num("sv_maxspeed")    // obtiene el valor del comando del server
    
freeze get_cvar_num("mp_freezetime")    // obtiene el valor del comando del server
    /////////////////////
}

public 
bool:zombie_has false    //para usar en otros plugins
public zombie_id 0        //para usar en otros plugins


public plugin_precache() {
    
precache_model("models/player/zombieme/v_claws.mdl")     // zombie knife model CT
    
precache_model("models/player/zombieme2/v_claws2.mdl")     // zombie knife model T
    
precache_model("models/player/zombieme/zombieme.mdl")     // zombie user model CT
    
precache_model("models/player/zombieme2/zombieme2.mdl"// zombie user model T
    
precache_sound("scientist/c1a0_sci_catscream.wav")     // scream/chillido
    
    
new i
    
for (0ZOMBIE_DEATHi++)
        
precache_sound(death_zombie[i])
    for (
0ZOMBIE_PAINi++)
        
precache_sound(pain_zombie[i]) // zombie pain sounds
    
for (0ZOMBIE_IDLEi++)
        
precache_sound(idle_zombie[i])
    for (
0ZOMBIE_MISSi++)
        
precache_sound(miss_zombie[i])
    for (
0ZOMBIE_HITi++)
        
precache_sound(hit_zombie[i])
    
    
    
/*    
    //pain_zombie[2]
    precache_sound("zombie/zo_pain1.wav")
    precache_sound("zombie/zo_pain2.wav")
    
    //idle_zombie[7]
    precache_sound("zombie/zo_alert10.wav") 
    precache_sound("zombie/zo_alert20.wav")
    precache_sound("zombie/zo_alert30.wav")
    precache_sound("zombie/zo_idle1.wav")
    precache_sound("zombie/zo_idle2.wav")
    precache_sound("zombie/zo_idle3.wav") 
    precache_sound("zombie/zo_idle4.wav")
    
    //miss_zombie[2]
    precache_sound("zombie/claw_miss1.wav")
    precache_sound("zombie/claw_miss2.wav")
    
    //hit_zombie[3]
    precache_sound("zombie/claw_strike1.wav")
    precache_sound("zombie/claw_strike2.wav")
    precache_sound("zombie/claw_strike3.wav")
    
    //death_zombie[2]
    precache_sound("aslave/slv_die1.wav")
    precache_sound("aslave/slv_die2.wav")
    */
}

public 
client_connect(id) {// resetea todas las variables
    
zombie[id] = false 
    zombie_has 
false
    zombie_id 
id
    nightvision
[id] = false
    z_vida
[id] = false
    z_life
[id] = 0
}
public 
nombre_mapa(){
    
    
get_mapname(mapnamesizeof (mapname))
    
    if( (
equali(mapname"as_"3)) || (equali(mapname"es_"3)) ){
        
map_off true
    
}
}
public 
buy_zombie(id) {
    if (!
get_pcvar_num(z_buyable)) {
        
client_print(0,print_chat,"[ZOMBIE] ZombieMe esta desactivado.")
        return 
PLUGIN_HANDLED
    
}
    if(!
is_user_alive(id))
    {
        
client_print(id,print_chat,"[ZOMBIE] Intentalo cuando estes vivo.")
        return 
PLUGIN_HANDLED
    
}
    if(
zombie[id])
    {
        
client_print(idprint_chat"[ZOMBIE] Ya eres un Zombie.")
        return 
PLUGIN_HANDLED
    
}
    
nombre_mapa()
    if(
map_off){
        
client_print(id,print_chat,"[ZOMBIE] En este mapa no se perminten Zombies.")
        return 
PLUGIN_HANDLED
    
}
    if((
cs_get_user_money(id) - get_pcvar_num(z_cost)) < 0// check if the player has enough cash
    
{
        
client_print(id,print_chat,"[ZOMBIE] Para convertirte en Zombie necesitas $%d"get_cvar_num("z_cost"))
        return 
PLUGIN_HANDLED
    
}
    
zombie[id] = true
    zombie_has 
true
    zombie_id 
id
    z_vida
[id] = true
    
//z_life[id] = 0
    
    
event_player_spawn(id)
    
cs_set_user_money(id,cs_get_user_money(id) - get_pcvar_num(z_cost))
    return 
PLUGIN_CONTINUE
}

public 
clcmd_fullupdate(){
    return 
PLUGIN_HANDLED_MAIN
}
public 
event_roundstart(id){
    
roundstatus RS_RUNNING
}
public 
event_twin(){
    
set_task(1.0"event_roundend")
}
public 
event_ctwin(){
    
set_task(1.0"event_roundend")
}
public 
event_roundend(){//si la ronda termino reiniciar el model del zombie para evitar errores al volver a cargarlo    
    
roundstatus RS_END
    
    
new players[32], count
    get_players
(playerscount"h")
    for(new 
0counti++)
    {
        if(
zombie[players[i]])
            
cs_reset_user_model(players[i])
    }
    
//return
}

public 
event_restart_attempt() {//para verificar si se ha reiniciado la ronda
    
new players[32], num
    get_players
(playersnum"a")
    for (new 
inum; ++i){
        
g_restart_attempt[players[i]] = true
    
}
}

public 
event_hud_reset(id) {//al empezar la ronda
    
if (g_restart_attempt[id]) {// si la ronda se a reiniciado
        
g_restart_attempt[id] = false
        Remove_zombie
(id)
    }
    
event_roundstart(id)
    
//check_commands()
    
event_player_spawn(id)
}

public 
check_commands(){//para cambiar los comandos default del server si hay algun zombi
    /*
    new players[32], num;
    get_players(players, num, "a")
    
    new num_zombies = 0
    for(new i = 0 ; i < num ; i++){
        if(zombie[players[i]]){
            num_zombies += 1
        }
    }
    */
    
new num_zombies 0
    
for(new 33 i++){
        if(
zombie[i] && is_user_connected(i)){
            
num_zombies += 1
        
}
    }
    
    
    if(
num_zombies 0){//si hay algun zombi
        
set_cvar_num"mp_freezetime" )
        
set_cvar_num"sv_maxspeed"99999 )
    }
    else{
//si no hay zombis
        
set_cvar_num"mp_freezetime" freeze )
        
set_cvar_num"sv_maxspeed"maxspeed )
    }
}

public 
allow_speed(id){//para setear la velocidad cuando freezetime termina
    
    
if(zombie[id]){
        
set_user_maxspeed(idget_pcvar_float(z_speed))
    }
    return 
PLUGIN_CONTINUE
}
public 
check_team(){
    new 
players[32], num;
    
get_players(playersnum);
    
    
    for(new 
num i++){
        new 
CsTeams:iTeam cs_get_user_team(players[i])     
        if (
iTeam == CS_TEAM_T) {  
            
user_team[players[i]] = 1
        
}
        else if (
iTeam == CS_TEAM_CT) {  
            
user_team[players[i]] = 2
        
}
        else {
            
user_team[players[i]] = 0
        
}
        
//user_team[players[i]] = get_user_team(players[i])
    
}
}
public 
event_player_spawn(id) {//cuando se compra el zombie o se empieza la ronda siendo zombie
    
    
if(zombie[id]){//&& is_user_alive(id)
        
set_task(0.1"RemovePickedWeapon"id//removes zombies guns
        //Zombie grito
        
emit_sound(idCHAN_VOICE"scientist/c1a0_sci_catscream.wav"1.0ATTN_NORM0PITCH_NORM)
        
//////////////
        
if(z_vida[id] == true){//si acaba de comprar el zombie
            
z_life[id] = get_pcvar_num(z_health)
            
z_vida[id] = false
            msg_zombie_transform
(id)//client_print(id, print_chat, "[ZOMBIE] Te has transformando en un Zombie!")
        
}
        
        
set_user_health(idz_life[id])
        
        new 
roundtime = (get_cvar_num("mp_roundtime")*60)+freeze //segundos que dura cada ronda+freezetime
        //client_print(id, print_chat, "mp_roundtime: %d", roundtime)
        
set_task(
            
1.0,            //intervalo de tiempo
            
"zombiehealth",        //funcion
            
id,            //id
            
_,            //parameter - An array contain data to send to the timer function 
            
_,            //len - Size of the array to send to the timer function 
            
"a",            //flags: "a" - Repetir "b" - Infinito "c" - cuando despues map timeleft "d" - cuando antes map timeleft
            
roundtime        //ej: repetir 5 veces si usa flag "a" 
        
)
        
        
set_user_armor(idget_pcvar_num(z_armor))
        
check_commands()
        
//set_user_maxspeed(id, get_pcvar_float(z_speed))
        
new repeat = (freeze*60)+30    //*60= a milisegundos(0.1) + 30 por si acaso
        
set_task(0.1,"allow_speed"id__"a"repeat)
        
set_user_gravity(idget_pcvar_float(z_gravity)) // needs to be a float (0.5 is 400 gravity)
        
set_user_footsteps(id,1)
        if (
roundstatus == RS_RUNNING){
            
check_team()
            if(
user_team[id] == 1//terrist
            

                
cs_set_user_model(id"zombieme2")
                
//client_print(0,print_chat,"[ZOMBIE] ZombieMe TERROR.")
            

            else 
            {
                if(
user_team[id] == 2//counter-terrist
                

                    
cs_set_user_model(id"zombieme")
                    
//client_print(0,print_chat,"[ZOMBIE] ZombieMe POLICE.")
                
}
                else 
//3 = spectator, 0 = no play
                

                    
cs_set_user_model(id"zombieme")
                    
//client_print(0,print_chat,"[ZOMBIE] ZombieMe DEFAULT.")
                
}
            }
            
//cs_set_user_model(id, "zombieme")
        
}
        
cs_set_user_nvg(id,0)
        
zombiesounds(id)
        
zombiehealth(id)
        
set_vision(id)
        
set_glow(id)
        
        
//return PLUGIN_CONTINUE 
    
}
    else{
        
cs_reset_user_model(id)
        
set_user_footsteps(id,0)
        
set_user_rendering(id)
        
//return PLUGIN_CONTINUE
    
}
}
public 
set_vision(id) {//pone el model
    
    
message_begin(MSG_ONEget_user_msgid("ScreenFade"), {0,0,0}, id)
    
write_short(~0)
    
write_short(~0)
    
write_short(0)
    
write_byte(255)
    
write_byte(0)
    
write_byte(0)
    
write_byte(80)
    
message_end()
    
    
check_team()
    if (
user_team[id] == 1){  //terrorist  
        
set_pev(idpev_viewmodelengfunc(EngFunc_AllocString"models/player/zombieme2/v_claws2.mdl"))
    }
    else { 
//2 = counter-terrist, 3 = spectator, 0 = no play
        
set_pev(idpev_viewmodelengfunc(EngFunc_AllocString"models/player/zombieme/v_claws.mdl"))
    }
    
    
//set_pev(id, pev_viewmodel, engfunc(EngFunc_AllocString, "models/player/zombieme/v_claws.mdl"))
    
set_pev(idpev_weaponmodelengfunc(EngFunc_AllocString""))
}
public 
set_glow(id) {// pone una especie de escudo del color del equipo al zommbie
    
    
if(!get_cvar_num("z_glow")) {
        return 
PLUGIN_CONTINUE
    
}
    new 
CsTeams:team cs_get_user_team(id)
    if(
team == CS_TEAM_T//terrist
    

        
set_user_rendering(idkRenderFxGlowShell15000kRenderNormalget_pcvar_num(z_glow))
    } 
    
    else if(
team == CS_TEAM_CT//counter-terrist
    

        
set_user_rendering(idkRenderFxGlowShell00150kRenderNormalget_pcvar_num(z_glow))
    } 
    
    return 
PLUGIN_CONTINUE
}
public 
msg_zombie_transform(id){
    static 
msg[191]
    
//msg = ("^x01- Estas en el MAPA: ^x04%s", mapname)
    
format (msg190"^x03[ZOMBIE] Te has transformando en un Zombie!")
    
//^x03 = Color del equipo - ^x04 = Verde
    
message_begin(MSG_ONEget_user_msgid("SayText"), {0,0,0}, id)
    
write_byte(id)
    
write_string(msg)
    
message_end()
}
public 
event_weap_pickup(id) {//cuando recoje un arma
    
if(zombie[id]){
        
set_task(0.1"RemovePickedWeapon"id)
    }
    return 
PLUGIN_HANDLED
}

public 
RemovePickedWeapon(id) {//para soltar todas las armas
    
if(!is_user_alive(id) || !is_user_connected(id)) 
        return 
PLUGIN_CONTINUE

    
if(zombie[id]){
        
engclient_cmd(id"drop""weapon_c4")
        
strip_user_weapons(id)
        
give_item(id,"weapon_knife")
        
set_user_maxspeed(idget_pcvar_float(z_speed))
    }
    return 
PLUGIN_HANDLED


public 
fw_Touch(pToucherpTouched)
{
    if ( !
pev_valid(pToucher) || !pev_valid(pTouched) )
        return 
FMRES_IGNORED
    
    
if (!is_user_connected(pTouched) )
        return 
FMRES_IGNORED
    
    
if (!zombie[pTouched] )
        return 
FMRES_IGNORED
    
    
new className[32]
    
pev(pToucherpev_classnameclassName31)
    
    if ( 
equal(className"weaponbox") || equal(className"armoury_entity" ) || equal(className"weapon_shield" ) )
        return 
FMRES_SUPERCEDE
    
    
return FMRES_IGNORED
}
public 
zombiehealth(id) {//vida del zombi
    
if(zombie[id] && z_life[id] >= 1)
    {
        
//new id = read_data(0)
        //new health = read_data(1)
        
set_hudmessage(//BLANCO
        
255,        //Red     (0-255)
        
255,        //Green    (0-255)
        
255,        //Blue    (0-255)
        
0.11,        //Float:x -1.0 = center
        
0.77,        //Float:y
        
_,        //efectos (0 - off, 1 - parpadear, 2 - aparecer)
        
1.00,        //Float:fxtime (tiempo del efecto)
        
1.0,        //Float:holdtime (tiempo en pantalla ej 5.0 segundos)
        
_,        //Float:fadeintime
        
_,        //Float:fadeouttime
        
4        //channel 
        
)
        
show_hudmessage(id"Vida:  %d  "z_life[id])
    }
    return 
PLUGIN_CONTINUE
}
public 
event_DeathMsg() { //despues de morir
    //new killer = read_data(1)
    //new victim = read_data(2)
    
new id
    id 
read_data(2)
    
set_task(1.0,"Remove_zombie",id)//el que muere(victima) se le resetean las variables
    
message_begin(MSG_ONEget_user_msgid("ScreenFade"), { 00}, id)
    
write_short(1<<10)
    
write_short(1<<10)
    
write_short(0x0000)
    
write_byte(255)//r 100
    
write_byte(0)//g 0
    
write_byte(0)//b 0
    
write_byte(0//50
    
message_end()
    return 
PLUGIN_CONTINUE
}
public 
Remove_zombie(id){// declara que ya no es zombi
    
zombie[id] = false
    zombie_has 
false
    zombie_id 
id
    nightvision
[id] = false
    z_vida
[id] = false
    z_life
[id] = 0
    check_commands
()
}

public 
event_CurWeapon(id) { // declara la velocidad continuamente al cojer/dejar/cambiar de arma
    
if(is_user_alive(id) && zombie[id]){
        
set_user_maxspeed(idget_pcvar_float(z_speed))
        
set_vision(id)
    }        
}
/*
public event_damage_pain(id) {//daño recibido
    new damage = read_data(2)
    
    new bodypart, weapon
    new enemy = get_user_attacker(id, weapon, bodypart)
    //client_print(enemy, print_chat, "danio: %d", damage)
    if ( zombie[id] && is_user_alive(id))//si el que recibe daño es zombie 
    {
        //z_life[id] = floatround( float(get_user_health(id)) - (float(damage)) )
        z_life[id] = get_user_health(id)

        //client_print(id, print_chat, "Vida restante: %f", z_life[id])
        zombiehealth(id)
        emit_sound(id, CHAN_VOICE, pain_zombie[random_num(0, ZOMBIE_PAIN - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
        //return
    } 
    if(zombie[enemy] && weapon == CSW_KNIFE && (enemy >= 1) && (enemy <= 32) && is_user_alive(id))//si el que causa el daño es zombi    && is_user_alive(id)
    {
        new Xdamage = floatround( float(get_user_health(id)) - (float(damage) + get_pcvar_float(z_damage)) )
        //Xdamage = la vida de la victima -(el daño echo + el daño extra por ser zombie)

        if(Xdamage <= 0){
            
            //sumara las muertes, frags... al marcador
            new frags, _frags//, deaths
            //suma +1 a las bajas causadas por el asesino
            frags = get_user_frags(enemy) + 1
            set_user_frags(enemy, frags)
            //suma +1 a los asesinatos de la victima (el CS por default resta -1)
            _frags = get_user_frags(id) + 1
            set_user_frags(id, _frags)
            //suma +1 a las muertes de la victima
            //NO ES NECESARIO el CS suma +1 por default
                //deaths = cs_get_user_deaths(id) + 1
                //cs_set_user_deaths(id, deaths)
                //deaths = cs_get_user_deaths(id) + 1
                //cs_set_user_deaths(id, deaths)
                
            //para poner el sprite y quien mato a quien
            set_msg_block(get_user_msgid("DeathMsg"),BLOCK_ONCE)
            message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0, 0, 0}, 0)
            write_byte(id)
            write_byte(enemy)
            write_byte(0)
            write_string("knife")
            message_end()    
                
                
            set_user_health(id, 0)
        }
        else{
            set_user_health(id, Xdamage)
        }
        //return
    }
    //return PLUGIN_CONTINUE
}
*/

public event_damage_pain(victim) {//daño recibido
    
new damage read_data(2)
    new 
bodypartweapon
    
new killer get_user_attacker(victimweaponbodypart)
    
    
//client_print(killer, print_chat, "danio: %d", damage)
    
if ( zombie[victim] && is_user_alive(victim))//si el que recibe daño es zombie 
    
{
        
//z_life[id] = floatround( float(get_user_health(victim)) - (float(damage)) )
        
z_life[victim] = get_user_health(victim)

        
//client_print(victim, print_chat, "Vida restante: %f", z_life[id])
        
zombiehealth(victim)
        
emit_sound(victimCHAN_VOICEpain_zombie[random_num(0ZOMBIE_PAIN 1)], 1.0ATTN_NORM0PITCH_NORM)
        
//return
    

    if(
zombie[killer] && weapon == CSW_KNIFE && is_user_alive(victim))//si el que causa el daño es zombi
    
{
        new 
Xdamage floatroundfloat(get_user_health(victim)) - (float(damage) + get_pcvar_float(z_damage)) )
        
//Xdamage = la vida de la victima -(el daño echo + el daño extra por ser zombie)
        
        
if(Xdamage <= 0){
            if(
get_user_team(victim) == get_user_team(killer)){//TeamKiller
                //sumara las muertes, frags... al marcador
                
new frags_frags//, deaths
                //suma -1 a las bajas causadas por el asesino
                
frags get_user_frags(killer) - 1
                set_user_frags
(killerfrags)
                
//suma +1 a los asesinatos de la victima (el CS por default resta -1)
                
_frags get_user_frags(victim) + 1
                set_user_frags
(victim_frags)
                
            }
            else{
                
//sumara las muertes, frags... al marcador
                
new frags_frags//, deaths
                //suma +1 a las bajas causadas por el asesino
                
frags get_user_frags(killer) + 1
                set_user_frags
(killerfrags)
                
//suma +1 a los asesinatos de la victima (el CS por default resta -1)
                
_frags get_user_frags(victim) + 1
                set_user_frags
(victim_frags)
            }
            
            
//para poner el sprite y quien mato a quien
            
set_msg_block(get_user_msgid("DeathMsg"),BLOCK_ONCE)
            
message_begin(MSG_ALLget_user_msgid("DeathMsg"), {000}, 0)
            
write_byte(victim)
            
write_byte(killer)
            
write_byte(0)
            
write_string("knife")
            
message_end()    
                
                
            
set_user_health(victim0)
        }
        else{
            
//client_print(0, print_chat, "Vida restante victim: %d", Xdamage)
            
set_user_health(victimXdamage)
        }
        
//return
    
}
    return 
PLUGIN_CONTINUE
}

public 
zombiesounds(id){//reproduce sonidos zombie aleatoriamente mientras la ronda este en curso
    
if (roundstatus == RS_RUNNING && get_pcvar_num(z_sounds))
    {
        if (
random_num(135) == && zombie[id]) {
            if(
is_user_alive(id))
                
emit_sound(idCHAN_VOICEidle_zombie[random_num(0ZOMBIE_IDLE-1)], 1.0ATTN_NORM0PITCH_NORM)
        }
    }
    if(
zombie[id])
        
set_task(1.0,"zombiesounds",id)
}

public 
Client_PreThink(id){//para poner la vision nocturna roja            
    
    
if(zombie[id] && is_user_alive(id) && nightvision[id]) {
        new 
pos[3]
        
get_user_origin(idpos)
        
message_begin(MSG_ONESVC_TEMPENTITY, {0,0,0}, id)
        
write_byte(TE_DLIGHT)
        
write_coord(pos[0])
        
write_coord(pos[1])
        
write_coord(pos[2])
        
write_byte(80)
        
write_byte(50)
        
write_byte(0)
        
write_byte(0)
        
write_byte(5)
        
write_byte(10)
        
message_end()
    }
    return 
PLUGIN_CONTINUE
}

public 
client_nightvision(id){//para saber si se esta usando la vision nocturna (si se ha pulsado la N)
    
    
if(nightvision[id])
    {
        
nightvision[id] = false
        
return PLUGIN_HANDLED
    
}
    if(!
nightvision[id])
    {
        
nightvision[id] = true
    
}
    return 
PLUGIN_CONTINUE
}

public 
fw_EmitSound(idchannelsample[]){//para emitir sonidos segun las teclas pulsadas

    
if(sample[0] == 'p' && sample[1] == 'l'&& sample[7] == 'd' && zombie[id])
    {
        
emit_sound(idCHAN_WEAPON,  death_zombie[random_num(0ZOMBIE_DEATH 1)], VOL_NORMATTN_NORM0PITCH_NORM)
        return 
FMRES_SUPERCEDE    
    
}
    
    if ( !
is_user_alive(id) || !zombie[id] )
        return 
FMRES_IGNORED
    
    
if ( sample[0] == 'w' && sample[1] == 'e' && sample[8] == 'k' && sample[9] == 'n' )
    {
        switch(
sample[17])
        {
            case 
'l': return FMRES_SUPERCEDE
                
            
case 's''w':
            {                
                
emit_sound(idCHAN_WEAPONmiss_zombie[random_num(0ZOMBIE_MISS 1)], VOL_NORMATTN_NORM0PITCH_NORM)    
                return 
FMRES_SUPERCEDE
            
}
            
            case 
'b''1''2''3''4':
            {
                
emit_sound(idCHAN_WEAPONhit_zombie[random_num(0ZOMBIE_HIT 1)], VOL_NORMATTN_NORM0PITCH_NORM)
                return 
FMRES_SUPERCEDE
            
}
        }
    }
    
    
    return 
FMRES_IGNORED
}

public 
zombie_menu(id){
    
/*    
    if(!is_user_alive(id)){  
        return
    }
    */
    
if (!(get_user_flags(id)&ADMIN_KICK)){  
        
server_print("[ZOMBIE] El Menu ZombieMe es solo para admins...")
        
client_print(id,print_chat,"[ZOMBIE] El Menu ZombieMe es solo para admins...")
        return
    }
    
/*
     Colores:
    \w = Blanco
    \r = Rojo
    \d = Gris
    \y = Amarillo
    ^t = tabulacion (espacio)
    ^n = salto de linea
    \R = align text to the right
    \a => Beep
    \b => Backspace
    \e => Escape
    \n => Nueva Línea
    \r => Retorno de Carro (se utiliza en Windows para una línea nueva "/r/n")
    \t => Tabulación Horizontal
    \v => Tabulación Vertical
    \\ => Inserta literalmente el símbolo '\'
    \’’ => Inserta literalmente el símbolo "'"
    \" => Inserta literalmente el símbolo '"'
    \% => Inserta literalmente el símbolo '%'
    \ddd => código de caracteres, con el código en decimal "ddd"
    \xhhh => código de caracteres, con el código en hexadecimal "hhh"
    */
    
    
new menu menu_create("\yTransformar en Zombie a :""menu_trasform"
    
    
menu_additem(menu"T""1")
    
menu_additem(menu"CT""2")
    
menu_additem(menu"Todos""3")
    
menu_additem(menu"Jugador""4")

    
menu_setprop(menuMPROP_EXITNAME"\ySalir")
    
menu_setprop(menuMPROP_NEXTNAME"\yMas")
    
//menu_setprop(menu, MPROP_BACKNAME, "\yAtras")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idmenu0)
}
public 
menu_trasform(idmenuitem){ 
    if(
item == MENU_EXIT){
        
menu_destroy(menu
        return 
PLUGIN_HANDLED 
    

    
    new 
data[6], iName[64
    new 
accesscallback 

    menu_item_getinfo
(menuitemaccessdata5iName63callback); 
    
    new 
iKey str_to_num(data); 

    switch(
iKey){ 
        case 
1:{ // T
            
transform_T(id)
        }
        case 
2:{ // CT
            
transform_CT(id)
        }
        case 
3:{ // Todos
            
transform_ALL(id)
        }
        case 
4:{ // Jugador
            
transform_ONE(id)
        }
    }
    
//descongelar(id)
    
menu_destroy(menu
    return 
PLUGIN_HANDLED 
}
public 
transform_T(id){
    
check_team()
    new 
players[32], num;
    
get_players(playersnum);
    new 
num_players_zombieme 0
    
for(new num i++){//busca a todos los jugadores
        
if( is_user_alive(players[i]) ){//si el jugador esta vivo
            
if(user_team[players[i]] == 1){//si el jugador es terrorista
                
if(zombie[players[i]] == false){//si no es zombie
                    
zombie[players[i]] = true
                    zombie_has 
true
                    zombie_id 
players[i]
                    
z_vida[players[i]] = true
                    z_life
[players[i]] = 0
                    
                    num_players_zombieme 
+= 1
                    
                    event_player_spawn
(players[i])
                }
            }
        }
    }
    if(
num_players_zombieme == 0){
        
client_print(id,print_chat,"[ZOMBIE] No se encontro ningun jugador humano en el equipo Terrorista.")
    }
    else{
        
client_print(id,print_chat,"[ZOMBIE] Se transformaron en Zombies %d jugadores del equipo Terrorista."num_players_zombieme)
    }
    
//menu_destroy(menu) 
    
return PLUGIN_HANDLED 
}
public 
transform_CT(id){
    
check_team()
    new 
players[32], num;
    
get_players(playersnum);
    new 
num_players_zombieme 0
    
for(new num i++){//busca a todos los jugadores
        
if( is_user_alive(players[i]) ){//si el jugador esta vivo
            
if(user_team[players[i]] == 2){//si el jugador es policia
                
if(zombie[players[i]] == false){//si no es zombie
                    
zombie[players[i]] = true
                    zombie_has 
true
                    zombie_id 
players[i]
                    
z_vida[players[i]] = true
                    z_life
[players[i]] = 0
        
                    num_players_zombieme 
+= 1
        
                    event_player_spawn
(players[i])
                }
            }
        }
    }
    if(
num_players_zombieme == 0){
        
client_print(id,print_chat,"[ZOMBIE] No se encontro ningun jugador humano en el equipo Anti-Terrorista.")
    }
    else{
        
client_print(id,print_chat,"[ZOMBIE] Se transformaron en Zombies %d jugadores del equipo Anti-Terrorista."num_players_zombieme)
    }
    
//menu_destroy(menu) 
    
return PLUGIN_HANDLED 
}
public 
transform_ALL(id){
    
check_team()
    new 
players[32], num;
    
get_players(playersnum);
    new 
num_players_zombieme 0
    
for(new num i++){//busca a todos los jugadores
        
if( is_user_alive(players[i]) ){//si el jugador esta vivo
            
if(user_team[players[i]] == || user_team[players[i]] == 2){//si el jugador es terrorista o policia
                
if(zombie[players[i]] == false){//si no es zombie
                    
zombie[players[i]] = true
                    zombie_has 
true
                    zombie_id 
players[i]
                    
z_vida[players[i]] = true
                    z_life
[players[i]] = 0
                    
                    num_players_zombieme 
+= 1
        
                    event_player_spawn
(players[i])
                }
            }
        }
    }
    if(
num_players_zombieme == 0){
        
client_print(id,print_chat,"[ZOMBIE] No se encontro ningun jugador humano.")
    }
    else{
        
client_print(id,print_chat,"[ZOMBIE] Se transformaron en Zombies %d jugadores."num_players_zombieme)
    }
    
//menu_destroy(menu) 
    
return PLUGIN_HANDLED 

public 
transform_ONE(id){
    new 
players[32], num;
    new 
szName[32], szUserId[32];
    
get_players(playersnum);
    new 
menu menu_create("\yTransformar en Zombie a :""menu_transform_ONE"
    for(new 
num i++){//busca a todos los jugadores
        
get_user_nameplayers[i], szNamecharsmaxszName ) );
        
formatexszUserIdcharsmaxszUserId ), "%d"get_user_userid(players[i]) );
        
menu_additemmenuszNameszUserId);
    }
    
menu_setprop(menuMPROP_EXITNAME"\ySalir")
    
menu_setprop(menuMPROP_NEXTNAME"\yMas")
    
menu_setprop(menuMPROP_BACKNAME"\yAtras")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idmenu0)

    
//menu_destroy(menu) 
    
return PLUGIN_HANDLED 
}
public 
menu_transform_ONE(idmenuitem){
    if(
item == MENU_EXIT){
        
menu_destroy(menu
        return 
PLUGIN_HANDLED 
    

    
    new 
data[6], iName[64
    new 
accesscallback 

    menu_item_getinfo
(menuitemaccessdatacharsmax(data), iNamecharsmax(iName), callback); 
    
    new 
iKey str_to_num(data); //guarda el id del jugador elegido
    
new player_id find_player"k"iKey ); // flag "k" : para buscar al jugador por id
    
    
if ( player_id && is_user_alive(player_id) ){//si el jugador esta vivo
        
if(zombie[player_id] == true){
            
client_print(id,print_chat,"[ZOMBIE] %s ya esta transformado en Zombie."iName)
        }
        else{
//si el jugador no es zombi
            
zombie[player_id] = true
            zombie_has 
true
            zombie_id 
player_id
            z_vida
[player_id] = true
            z_life
[player_id] = 0

            event_player_spawn
(player_id)
            
            
client_print(id,print_chat,"[ZOMBIE] %s se transformo en Zombie."iName)
            new 
Admin_Name[32]
            
get_user_nameidAdmin_NamecharsmaxAdmin_Name ) );
            
client_print(player_id,print_chat,"[ZOMBIE] El Admin %s te transformo en Zombie."Admin_Name)
        }
    }
    else{
        
client_print(id,print_chat,"[ZOMBIE] %s esta muerto, no se puede transformar en Zombie."iName)
    }
    
    
menu_destroy(menu
    return 
PLUGIN_HANDLED 


Last edited by albjb; 08-17-2013 at 10:15.
albjb is offline
albjb
Junior Member
Join Date: Jul 2013
Old 08-17-2013 , 10:16   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #88

do you like my new version 3.7 ???
albjb is offline
sami_spt
Veteran Member
Join Date: Sep 2012
Location: I<3 pussy cats
Old 08-17-2013 , 11:12   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #89

yes.

nice mod

thank you for posting after requesting this from 2007 - 2010

Last edited by sami_spt; 08-17-2013 at 11:12.
sami_spt is offline
WaSaAa1
Senior Member
Join Date: Dec 2011
Location: Andalusia (Spain)
Old 10-11-2013 , 08:39   Re: Zombie ME 3.1 (Being updated)
Reply With Quote #90

Quote:
Originally Posted by albjb View Post
do you like my new version 3.7 ???
Looks good but is fully fixed? It has an error?

Thank you very much!

[ES]
Tiene buena pinta pero está totalmente arreglado? Tiene algún error?

Muchas gracias!!!
__________________
Being admin is not power, is responsibility.
WaSaAa1 is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:38.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode