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

Help / Support [SOLVED] Werewolf zombie


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
naSTR
Veteran Member
Join Date: Dec 2011
Location: Asia, Mongolia
Old 05-02-2012 , 17:03   [SOLVED] Werewolf zombie
Reply With Quote #1

Can somebody help me with this zombie class. Ive got this error log in debug mod.
PHP Code:
L 05/03/2012 04:50:10Invalid player id 0
L 05
/03/2012 04:50:10: [AMXXDisplaying debug trace (plugin "zp_zclass_werewolf.amxx")
L 05/03/2012 04:50:10: [AMXXRun time error 10native error (native "get_user_weapon")
L 05/03/2012 04:50:10: [AMXX]    [0zp_zclass_werewolf.sma::fw_TakeDamage (line 137
__________________

Last edited by naSTR; 05-05-2012 at 18:27.
naSTR is offline
H.RED.ZONE
Veteran Member
Join Date: Sep 2011
Location: Serbia, Belgrade
Old 05-02-2012 , 18:02   Re: [HELP] Werewolf zombie
Reply With Quote #2

PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <zombieplague>
#include <fakemeta>
/*        WereWolf Zombie
            by x[L]eoNNN
        
        #Description :
        
        this is a Zombie Class of Famous Game, "L4d" with the ability to throw rocks at enemies,
        either killing him, infecting taking life, etc. (controlled by a cvar)
        
        this is a Zombie Class that is Werewolf, alone which can be killed by silver bullets
        that are bought extra item
        
        #Cvars :
        
        zp_sb_oneround 1 // one round bullets
        zp_silver_bullets 30 // silver bullets
        zp_werewolf_killreward_enable 1 // 1 = enable ammo packs reward / 0 = disable
        zp_werewolf_killreward  4 // ammo packs reward for kill a werewolf
        zp_sb_effect 1 // silver bullets effect
        zp_werewolf_howling 1 // enable werewolf howling
        zp_werewolf_howling_time 5.0 // werewolf howling time
        zp_werewolf_howling_dontmove 1 // dont move in howling
        
        #Changelog :
        
        v1.0: public release

*/
new const zclass_name[] = { "WereWolf" // name
new const zclass_info[] = { "Only it can be killed by silver bullets" // description
new const zclass_model[] = { "zm_werewolf" // model
new const zclass_clawmodel[] = { "v_werewolf.mdl" // claw model
const zclass_health 800 // health
const zclass_speed 200 // speed
const Float:zclass_gravity 1.0 // gravity
const Float:zclass_knockback 0.6 // knockback

new const howling_sounds[][] = { "zm_werewolf/werewolf1.wav""zm_werewolf/werewolf2.wav" }
new const 
silver_bullets_sprite[] = "sprites/dot.spr" // silver bullets sprite

new cvar_oneroundcvar_sbcvar_rewardenablecvar_rewardcvar_sb_effectcvar_howlingcvar_dontmove,
cvar_howlingtimecvar_lasthowlingcvar_damage

new g_SBItemIDg_SBSprg_werewolf
new boolg_PlayerHaveSB[33], g_SilverBullets[33]
new 
Float:g_last_howling[33]

public 
plugin_init()
{
    
register_plugin("[ZP] Zombie Class: Werewolf Zombie""1.0""xLeoNNN"
    
register_event("CurWeapon""event_CurWeapon""be""1=1""3>0")
    
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1)
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
    
register_forward(FM_CmdStart"CmdStart" )
    
    
g_SBItemID zp_register_extra_item("Buy Silver Bullets"15ZP_TEAM_HUMAN)
    
    
cvar_oneround register_cvar("zp_sb_oneround""1")
    
cvar_sb register_cvar("zp_silver_bullets""30")
    
cvar_rewardenable register_cvar("zp_werewolf_killreward_enable""1")
    
cvar_reward register_cvar("zp_werewolf_killreward""4")
    
cvar_sb_effect register_cvar("zp_sb_effect""1")
    
cvar_howling register_cvar("zp_werewolf_howling""1")
    
cvar_howlingtime register_cvar("zp_werewolf_howling_time""5.0")
    
cvar_dontmove register_cvar("zp_werewolf_howling_dontmove""1")
    
cvar_lasthowling register_cvar"zp_werewolf_last_howling_time""20.0" )
    
cvar_damage register_cvar("zp_werewolf_damage","0.5")
}

public 
plugin_precache()
{
    
g_werewolf zp_register_zombie_class(zclass_namezclass_infozclass_modelzclass_clawmodelzclass_healthzclass_speedzclass_gravityzclass_knockback
    
g_SBSpr precache_model(silver_bullets_sprite)
    static 
i
    
for(0sizeof howling_soundsi++)
        
precache_sound(howling_sounds[i])
}


public 
zp_user_infected_post idinfector )
{
    if (
zp_get_user_zombie_class(id) == g_werewolf)
    {
        
print_chatColor(id"\g[ZP]\n You have choosen \gWereWolf\n, only you can be killed by silver bullets!!"
    }
    
g_PlayerHaveSB[id] = false
    g_SilverBullets
[id] = false
}  

public 
zp_user_humanized_post(id)
{
    
g_PlayerHaveSB[id] = false
    g_SilverBullets
[id] = false
}

public 
zp_extra_item_selected(iditemid)
{
    if (
itemid == g_SBItemID)
    {
        
print_chatColor(id"\g[ZP]\n You have bought silver bullets, now you can kill a \gwerewolf\n!!!")
        
g_PlayerHaveSB[id] = true
        g_SilverBullets
[id] = get_pcvar_num(cvar_sb)
    }
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    
g_PlayerHaveSB[victim] = false
    g_SilverBullets
[victim] = false
    
    
if(g_PlayerHaveSB[attacker] && zp_get_user_zombie_class(victim) == g_werewolf)
    {
        if(
get_pcvar_num(cvar_rewardenable))
        {
            
print_chatColor(attacker"\g[ZP]\n You Receive \t%d\n Ammo Packs To Kill a WereWolf!"get_pcvar_num(cvar_reward))
            
zp_set_user_ammo_packs(attackerzp_get_user_ammo_packs(attacker) + get_pcvar_num(cvar_reward))
        }
    }    
}

public 
client_connect(id)
{
    
g_PlayerHaveSB[id] = false
    g_SilverBullets
[id] = false
}

public 
client_disconnect(id)
{
    
g_PlayerHaveSB[id] = false
    g_SilverBullets
[id] = false
}

public 
fw_PlayerSpawn_Post(id)
{
    if (!
is_user_alive(id))
        return;
    
    if(
get_pcvar_num(cvar_oneround))
    {
        
g_PlayerHaveSB[id] = false
        g_SilverBullets
[id] = false
    
}
}

public 
fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if(!
is_user_alive(attacker) || !is_user_alive(inflictor) || !is_user_alive(victim))
    return 
HAM_IGNORED
    
if(!g_PlayerHaveSB[attacker] && zp_get_user_zombie_class(victim) == g_werewolf)
    {
        new 
Floatdmg;
        
        
dmg get_pcvar_float(cvar_damage)
        
        
SetHamParamFloat(4damage*dmg)
        return 
HAM_SUPERCEDE
    
}
    else
        if(
get_user_weapon(attacker) == CSW_KNIFE)
            if(
zp_get_user_zombie_class(victim) == g_werewolf)
                return 
HAM_SUPERCEDE
    
    
return HAM_IGNORED
}

public 
CmdStart( const id, const uc_handlerandom_seed )
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED;
    
    if(!
zp_get_user_zombie(id) || zp_get_user_nemesis(id))
        return 
FMRES_IGNORED;
    
    new 
button pev(idpev_button)
    new 
oldbutton pev(idpev_oldbuttons)
    
    if (
zp_get_user_zombie(id) && zp_get_user_zombie_class(id) == g_werewolf)
    {
        if(
oldbutton IN_RELOAD && !(button IN_RELOAD))
        {
            if( 
get_gametime() - g_last_howling[id] < get_pcvar_float(cvar_lasthowling))
            {
                
print_chatColor(id"\g[ZP]\n You need to wait for %.f0 seconds to howling again!"get_pcvar_float(cvar_lasthowling) - (get_gametime() - g_last_howling[id]))
                return 
PLUGIN_HANDLED
            
}
            
            
g_last_howling[id] = get_gametime()
            
            if(
get_pcvar_num(cvar_howling))
            {
                
emit_sound(idCHAN_STREAMhowling_sounds[random_num(0sizeof howling_sounds 1)], 1.0ATTN_NORM0PITCH_HIGH )
                if(
get_pcvar_num(cvar_dontmove))
                {
                    
set_pev(id pev_velocity , { 0.0 0.0 0.0 } )
                    
set_pev(idpev_flagspev(idpev_flags) | FL_FROZEN
                    
set_task(get_pcvar_float(cvar_howlingtime), "set_vel"id)
                }
            }
        }
    }
    return 
FMRES_IGNORED
}

public 
set_vel(id)
    
set_pev(id pev_flags pev(id pev_flags) & ~FL_FROZEN)

public 
event_CurWeapon(id)
{
    new 
buttons pev(idpev_button)
    new 
oldbuttons pev(idpev_oldbuttons)
    
    if(
buttons IN_ATTACK || oldbuttons IN_ATTACK)
    {
        if (
g_SilverBullets[id] > && g_PlayerHaveSB[id] ) 
        {
            if(
get_pcvar_num(cvar_sb_effect))
            {
                static 
Origin[3], Origin2[3]
                
get_user_origin(idOrigin1
                
get_user_origin(idOrigin24
                
                
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
                
write_byte (0)     
                
write_coord(Origin[0])
                
write_coord(Origin[1])
                
write_coord(Origin[2])
                
write_coord(Origin2[0])
                
write_coord(Origin2[1])
                
write_coord(Origin2[2])
                
write_short(g_SBSpr)
                
write_byte(1
                
write_byte(5
                
write_byte(2
                
write_byte(10
                
write_byte(0
                
write_byte(132)     
                
write_byte(132)       
                
write_byte(132)
                
write_byte(200
                
write_byte(150
                
message_end()
            }
            
            
g_SilverBullets[id]--
        }
    }
    if(
g_SilverBullets[id] <= 0)
    {
        
g_PlayerHaveSB[id] = false
        g_SilverBullets
[id] = 0
    
}
}


stock print_chatColor(const id,const input[], any:...)
{
    new 
msg[191], players[32], count 1;
    
vformat(msg,190,input,3);
    
replace_all(msg,190,"\g","^4");// green
    
replace_all(msg,190,"\n","^1");// normal
    
replace_all(msg,190,"\t","^3");// team
    
    
if (idplayers[0] = id; else get_players(players,count,"ch");
    for (new 
i=0;i<count;i++)
        if (
is_user_connected(players[i]))
    {
        
message_begin(MSG_ONE_UNRELIABLE,get_user_msgid("SayText"),_,players[i]);
        
write_byte(players[i]);
        
write_string(msg);
        
message_end();
    }

__________________
H.RED.ZONE is offline
yokomo
Surprise Ascot!
Join Date: May 2010
Location: Malaysia
Old 05-03-2012 , 00:37   Re: [HELP] Werewolf zombie
Reply With Quote #3

You need to check is user valid in takedamage forward:
PHP Code:
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if(!
is_user_connected(attacker)) return HAM_IGNORED;
    
    
//Your code here.

LOL
PHP Code:
if(!is_user_alive(attacker) || !is_user_alive(inflictor) || !is_user_alive(victim)) 
What's the point to make many check? 1 check is enough. "is_user_connected(attacker)" has fixed that problem.
__________________
Team-MMG CS1.6 Servers:
✅ MultiMod -- 103.179.44.152:27016
✅ Zombie Plague -- 103.179.44.152:27015
✅ Zombie Escape -- 103.179.44.152:27017
✅ Klassik Kombat -- 103.179.44.152:27018
✅ Boss-Battle -- 103.179.44.152:27019
yokomo is offline
naSTR
Veteran Member
Join Date: Dec 2011
Location: Asia, Mongolia
Old 05-03-2012 , 04:51   Re: [HELP] Werewolf zombie
Reply With Quote #4

Quote:
Originally Posted by yokomo View Post
You need to check is user valid in takedamage forward:
PHP Code:
public fw_TakeDamage(victiminflictorattackerFloat:damagedamage_type)
{
    if(!
is_user_connected(attacker)) return HAM_IGNORED;
    
    
//Your code here.

LOL
PHP Code:
if(!is_user_alive(attacker) || !is_user_alive(inflictor) || !is_user_alive(victim)) 
What's the point to make many check? 1 check is enough. "is_user_connected(attacker)" has fixed that problem.
Can u fix and write here
__________________
naSTR is offline
yokomo
Surprise Ascot!
Join Date: May 2010
Location: Malaysia
Old 05-03-2012 , 05:19   Re: [HELP] Werewolf zombie
Reply With Quote #5

OMG so lazy to learn coding? btw here the fix.
Attached Files
File Type: sma Get Plugin or Get Source (zp_zclass_werewolf_fix.sma - 508 views - 8.0 KB)
__________________
Team-MMG CS1.6 Servers:
✅ MultiMod -- 103.179.44.152:27016
✅ Zombie Plague -- 103.179.44.152:27015
✅ Zombie Escape -- 103.179.44.152:27017
✅ Klassik Kombat -- 103.179.44.152:27018
✅ Boss-Battle -- 103.179.44.152:27019
yokomo is offline
Old 05-03-2012, 06:29
JoKeR LauGh
This message has been deleted by JoKeR LauGh.
yokomo
Surprise Ascot!
Join Date: May 2010
Location: Malaysia
Old 05-03-2012 , 09:59   Re: [HELP] Werewolf zombie
Reply With Quote #6

Quote:
Originally Posted by JoKeR LauGh View Post
can like this?

PHP Code:
if ( is_user_connected attackervictim ) ) 
??
No, because that native only have 1 param.
__________________
Team-MMG CS1.6 Servers:
✅ MultiMod -- 103.179.44.152:27016
✅ Zombie Plague -- 103.179.44.152:27015
✅ Zombie Escape -- 103.179.44.152:27017
✅ Klassik Kombat -- 103.179.44.152:27018
✅ Boss-Battle -- 103.179.44.152:27019
yokomo is offline
jc980
Veteran Member
Join Date: Jan 2010
Location: God is with us...
Old 05-03-2012 , 22:34   Re: [HELP] Werewolf zombie
Reply With Quote #7

Quote:
Originally Posted by JoKeR LauGh View Post
can like this?

PHP Code:
if ( is_user_connected attackervictim ) ) 
??
SERIOUSLY?
__________________
jc980 is offline
JoKeR LauGh
Veteran Member
Join Date: May 2011
Location: Malaysia
Old 05-04-2012 , 23:06   Re: [HELP] Werewolf zombie
Reply With Quote #8

Quote:
Originally Posted by jc980 View Post
SERIOUSLY?
boo spam ...
__________________
Quote:
Originally Posted by addons_zz View Post
Also, just to not read `the article`, read all you find. Read and read, for ever and ever. Never stop reading.
Why? Because there is not one single universal truth which holds the meaning for everything.
JoKeR LauGh is offline
jc980
Veteran Member
Join Date: Jan 2010
Location: God is with us...
Old 05-05-2012 , 01:48   Re: [HELP] Werewolf zombie
Reply With Quote #9

Quote:
Originally Posted by JoKeR LauGh View Post
boo spam ...
call my post spam, but your post was very stupid. you already know that those kind of commands ( is_user_alive is_user_bot Etc. ) have only one parameter. Seriously playing dumb? gtfo.
__________________
jc980 is offline
JoKeR LauGh
Veteran Member
Join Date: May 2011
Location: Malaysia
Old 05-05-2012 , 04:05   Re: [HELP] Werewolf zombie
Reply With Quote #10

Ok, I deleted my post, happy?
__________________
Quote:
Originally Posted by addons_zz View Post
Also, just to not read `the article`, read all you find. Read and read, for ever and ever. Never stop reading.
Why? Because there is not one single universal truth which holds the meaning for everything.
JoKeR LauGh 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 15:24.


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