Raised This Month: $32 Target: $400
 8% 

Subplugin Submission [ZP] Addon: Human Classes - Now with model change support - UPDATE


Post New Thread Reply   
 
Thread Tools Display Modes
NewKidz
Member
Join Date: Oct 2010
Old 05-10-2015 , 14:27   Re: [ZP] Addon: Human Classes - Now with model change support - UPDATE
Reply With Quote #211

Bump
NewKidz is offline
NewKidz
Member
Join Date: Oct 2010
Old 05-10-2015 , 18:35   Re: [ZP] Addon: Human Classes - Now with model change support - UPDATE
Reply With Quote #212

I try to edit the code.
It compile without any problem, but the bot won't choose the class.
Am i doing something wrong?

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <zombieplague>

const PRIMARY_WEAPONS_BITSUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)

new 
g_ent_playermodel[33];
new 
g_ent_weaponmodel[33];
new 
g_currentweapon[33];

new 
g_player_class[33]
new 
g_hamczbots
new cvar_botquota

new g_isbot[33]

public 
plugin_init()
{
    
register_plugin("[ZP] Addon: Human Classes""1.3""fiendshard")
    
RegisterHam(Ham_Spawn"player""fwHamPlayerSpawnPost"1)
    
    
cvar_botquota get_cvar_pointer("bot_quota")
}

public 
plugin_precache()
{
                        
// Change paths and names of your models below. Beware of typos.
    
engfunc(EngFunc_PrecacheModel"models/player/arctic/arctic.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/gsg9/gsg9.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/guerilla/guerilla.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/leet/leet.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/sas/sas.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/terror/terror.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/urban/urban.mdl")
    
engfunc(EngFunc_PrecacheModel"models/player/spetsnaz/spetsnaz.mdl")
}

public 
client_putinserver(id)
{
    
g_isbot[id] = true
    
    
if (!g_hamczbots && cvar_botquota)
        {
            
// Set a task to let the private data initialize
            
set_task(0.1"register_ham_czbots"id)
        }
}

public 
register_ham_czbots(id)
{
    if (
g_hamczbots || !is_user_connected(id) || !get_pcvar_num(cvar_botquota))
        return;
    
    
RegisterHamFromEntity(Ham_Spawnid"fwHamPlayerSpawnPost"1)
    
    
g_hamczbots true

    
if (is_user_alive(id)) fwHamPlayerSpawnPost(id)
}

public 
message_cur_weapon(msg_idmsg_destmsg_entity)
{
    if (!
is_user_alive(msg_entity) || get_msg_arg_int(1) != 1)
        return;
    static 
weapon
    weapon 
get_msg_arg_int(2)
    
g_currentweapon[msg_entity] = weapon
    fm_set_weaponmodel_ent
(msg_entity)
}


public 
fwHamPlayerSpawnPost(id)
{
    if(!
is_user_bot(id))
        
set_task(get_cvar_float("zp_delay")+5.0"ClCmdSelectModel",id)
}

public 
ClCmdSelectModel(idmenuid)
{
    if(
zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id))
    {
        return 
PLUGIN_HANDLED;
    }
    
    else if(!
is_user_alive(id))
    {
        return 
PLUGIN_HANDLED;
    }
    else
    {
        
human_menu(id)
    }
    return 
PLUGIN_CONTINUE;
}

public 
human_menu(id)
{
    new 
menu menu_create("\rChoose your perk:^n(Press 'H' for details)""human_menu_handler")
    
menu_additem(menu"\wAntighost""1"0)
    
menu_additem(menu"\wTank""2"0)
    
menu_additem(menu"\wParkour""3"0)
    
menu_additem(menu"\wColdman""4"0)
    
menu_additem(menu"\wDemolition""5"0)
    
menu_additem(menu"\wLightbringer""6"0)
    
menu_additem(menu"\wSharpshooter""7"0)
    
menu_additem(menu"\wBalance",    "8"0)
    
menu_display(idmenu0)
    if (
g_isbot[id])
    {
        
g_player_class[id] = 8
        
return;
    }
}

public 
human_menu_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    new 
data[6], iName[64]
    new 
accesscallback
    menu_item_getinfo
(menuitemaccessdata5iName63callback)
    new 
key str_to_num(data)
    switch(
key)
    {
        case 
1:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 1
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/arctic/arctic.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_mac10")
            
give_item(id,"weapon_fiveseven")
            
give_item(id,"weapon_smokegrenade")
            
set_user_health(id150)
            
set_user_armor(id75)
            
cs_set_user_bpammo(idCSW_MAC10200)
            
cs_set_user_bpammo(idCSW_FIVESEVEN200)
            
client_print(idprint_chat,"You chose Antighost (Press 'H'>'About' for details')")
        }
        case 
2:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 2
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/gsg9/gsg9.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_m3")
            
give_item(id,"weapon_deagle")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id250)
            
set_user_armor(id45)
            
set_user_gravity(id1.15)
            
cs_set_user_bpammo(idCSW_M350)
            
cs_set_user_bpammo(idCSW_DEAGLE200)
            
client_print(idprint_chat,"You chose Tank (Press 'H'>'About' for details')");
        }
        case 
3
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 3
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/guerilla/guerilla.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_mp5navy")
            
give_item(id,"weapon_p228")
            
set_user_health(id150)
            
set_user_armor(id45)
            
set_user_gravity(id0.68)
            
set_user_maxspeed(idget_cvar_float("zp_human_speed") + 40)
            
cs_set_user_bpammo(idCSW_MP5NAVY200)
            
cs_set_user_bpammo(idCSW_P228200)
            
client_cmd(id,"say /napalm")
            
client_print(idprint_chat,"You chose Parkour (Press 'H'>'About' for details')");
        }
        case 
4
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 4
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/leet/leet.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_galil")
            
give_item(id,"weapon_glock18")
            
give_item(id,"weapon_flashbang")
            
set_user_health(id135)
            
set_user_armor(id45)
            
cs_set_user_bpammo(idCSW_GALIL200)
            
cs_set_user_bpammo(idCSW_GLOCK18200)
            
cs_set_user_bpammo(idCSW_FLASHBANG3)
            
client_print(idprint_chat,"You chose Coldman (Press 'H'>'About' for details')");
        }
        case 
5
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 5
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/sas/sas.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_tmp")
            
give_item(id,"weapon_usp")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id200)
            
set_user_armor(id30)
            
set_user_gravity(id0.9)
            
cs_set_user_bpammo(idCSW_TMP200)
            
cs_set_user_bpammo(idCSW_USP200)
            
cs_set_user_bpammo(idCSW_HEGRENADE3)
            
client_cmd(id,"say /napalm")
            
client_cmd(id,"say /napalm")
            
client_print(idprint_chat,"You chose Demolition (Press 'H'>'About' for details')")
        }
        case 
6
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 6
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/terror/terror.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_sg552")
            
give_item(id,"weapon_elite")
            
give_item(id,"weapon_smokegrenade")
            
give_item(id,"weapon_flashbang")
            
set_user_health(id100)
            
set_user_armor(id10)
            
set_user_gravity(id0.9)
            
cs_set_user_bpammo(idCSW_SG552200)
            
cs_set_user_bpammo(idCSW_ELITE200)
            
cs_set_user_bpammo(idCSW_SMOKEGRENADE5)
            
set_pev(idpev_effectspev(idpev_effects) | EF_BRIGHTLIGHT)
            
client_print(idprint_chat,"You chose Lightbringer (Press 'H'>'About' for details')");
        }
        case 
7
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 7
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/urban/urban.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_awp")
            
give_item(id,"weapon_p228")
            
give_item(id,"weapon_flashbang")
            new 
weapon_id fm_find_ent_by_owner(-1"weapon_awp"id); 
            if(
weapon_id
            { 
                
cs_set_weapon_ammo(weapon_id25); 
            }
            
set_user_health(id185)
            
set_user_armor(id60)
            
set_user_gravity(id1.05)
            
cs_set_user_bpammo(idCSW_AWP50)
            
cs_set_user_bpammo(idCSW_P228200)
            
client_print(idprint_chat,"You chose Sharpshooter (Press 'H'>'About' for details')");
        }
        case 
8:
        {
            if(
zp_get_user_zombie(id) || zp_get_user_survivor(id) || zp_get_user_nemesis(id)) return PLUGIN_HANDLED;
            
g_player_class[id] = 8
            fm_remove_model_ents
(id)
            if (!
pev_valid(g_ent_playermodel[id]))
            {
                
g_ent_playermodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"));
                
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,1)
                
set_pev(g_ent_playermodel[id], pev_classname"player_model")
                
set_pev(g_ent_playermodel[id], pev_movetypeMOVETYPE_FOLLOW)
                
set_pev(g_ent_playermodel[id], pev_aimentid)
                
set_pev(g_ent_playermodel[id], pev_ownerid)
                                           
// Change name of your model below.
                
engfunc(EngFunc_SetModelg_ent_playermodel[id], "models/player/spetsnaz/spetsnaz.mdl")
                
fm_set_weaponmodel_ent(id)
            }
            
drop_primary_weapons(id)
            
give_item(id,"weapon_m4a1")
            
give_item(id,"weapon_usp")
            
give_item(id,"weapon_flashbang")
            
give_item(id,"weapon_smokegrenade")
            
give_item(id,"weapon_hegrenade")
            
set_user_health(id200)
            
set_user_armor(id50)
            
cs_set_user_bpammo(idCSW_M4A1200)
            
cs_set_user_bpammo(idCSW_USP200)
            
client_print(idprint_chat,"You chose Balance (Press 'H'>'About' for details')")
        }
    }
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
zp_user_infected_post(idinfector)
{
    
fm_remove_model_ents(id)
}

stock fm_remove_model_ents(id)
{
    if (
pev_valid(g_ent_playermodel[id]))
    {
        
engfunc(EngFunc_RemoveEntityg_ent_playermodel[id])
        
g_ent_playermodel[id] = 0
    
}
    if (
pev_valid(g_ent_weaponmodel[id]))
    {
        
engfunc(EngFunc_RemoveEntityg_ent_weaponmodel[id])
        
g_ent_weaponmodel[id] = 0
    
}
}

stock fm_set_weaponmodel_ent(id)
{
    static 
model[100]
    
pev(idpev_weaponmodel2modelsizeof model 1)
    
    if (!
pev_valid(g_ent_weaponmodel[id]))
    {
        
g_ent_weaponmodel[id] = engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
        if (!
pev_valid(g_ent_weaponmodel[id])) return;
        
        
set_pev(g_ent_weaponmodel[id], pev_classname"weapon_model")
        
set_pev(g_ent_weaponmodel[id], pev_movetypeMOVETYPE_FOLLOW)
        
set_pev(g_ent_weaponmodel[id], pev_aimentid)
        
set_pev(g_ent_weaponmodel[id], pev_ownerid)
    }
    
    
engfunc(EngFunc_SetModelg_ent_weaponmodel[id], model)
}

stock drop_primary_weapons(id)    
{
    static 
weapons 32 ], numiweaponid
    num 

    get_user_weapons 
(idweaponsnum )
    
    for ( 
0numi++ )
    {
        
weaponid weapons ]
        if  ( ( (
1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) )        
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
engclient_cmd(id"drop"wname)
        }
    }

NewKidz is offline
tfk94
Veteran Member
Join Date: Jan 2011
Location: [url=http://www.gametrac
Old 02-26-2016 , 17:35   Re: [ZP] Addon: Human Classes - Now with model change support - UPDATE
Reply With Quote #213

Can this plugin be made to be used only in the first 10-15 seconds of the map
because if it is swarm mod and the player is down to 10 hp he can choose class pounder and again be 200hp+ ?
tfk94 is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 02-26-2016 , 19:38   Re: [ZP] Addon: Human Classes - Now with model change support - UPDATE
Reply With Quote #214

Quote:
Originally Posted by tfk94 View Post
Can this plugin be made to be used only in the first 10-15 seconds of the map
because if it is swarm mod and the player is down to 10 hp he can choose class pounder and again be 200hp+ ?
[ZPNM] Zombie Plague Nightmare Mod 2.3.8 + all sub-plugins
Quote:
Originally Posted by georgik57 View Post
It's a ZP43fix5a edition with integrated human classess and a lot of additional fixes(including crash fixes) and functionalities like natives, forwards and extra customisability.
It also comes with a ton of sub-plugins.
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
tfk94
Veteran Member
Join Date: Jan 2011
Location: [url=http://www.gametrac
Old 02-27-2016 , 03:11   Re: [ZP] Addon: Human Classes - Now with model change support - UPDATE
Reply With Quote #215

do you have the zm class which makes double dmg on the armor ?
thank you for the mod but the gameplay style in my server is different.

Last edited by tfk94; 02-27-2016 at 03:56.
tfk94 is offline
georgik57
Veteran Member
Join Date: Oct 2008
Location: 🎧Music World
Old 02-27-2016 , 05:35   Re: [ZP] Addon: Human Classes - Now with model change support - UPDATE
Reply With Quote #216

Quote:
Originally Posted by tfk94 View Post
do you have the zm class which makes double dmg on the armor ?
thank you for the mod but the gameplay style in my server is different.
I don't, but the mod is fully compatible with default ZP 4.3 zombie classes.
__________________
georgik57 is offline
Send a message via MSN to georgik57 Send a message via Yahoo to georgik57 Send a message via Skype™ to georgik57
RainePlayz1
Junior Member
Join Date: Mar 2022
Old 08-30-2022 , 23:25   Re: [ZP] Addon: Human Classes - Now with model change support - UPDATE
Reply With Quote #217

For Zombie Plague 4.3?
RainePlayz1 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 20:31.


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