Raised This Month: $ Target: $400
 0% 

VIP Player Model


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
MeliMeli
Senior Member
Join Date: Apr 2022
Location: Brazil
Old 07-02-2022 , 19:14   VIP Player Model
Reply With Quote #1

Hello how can I put a specific flag in this plugin for a player to be entitled to a menu of models?

PHP Code:
/*
PLUGIN INFO:
- This plugin should works fine on ZP43Fix5a & ZP50.
- For better model changes, it need a bit mp_freezetime set to 3~5 is enough.
*/

#include <amxmodx>
#include <hamsandwich>

//Server is running ZP50?

#if defined USE_ZP50
    
native zp_core_is_zombie(id)
    
native zp_class_survivor_get(id)
    
native cs_set_player_model(id, const model[])
#else
    
native zp_get_user_zombie(id)
    
native zp_get_user_survivor(id)
    
native zp_override_user_model(id, const model[], modelindex=0)
    
    
//Uncomment this to enable player modelindex
    //#define USE_PLAYER_MODELINDEX
#endif

//player model name: edit as you want
new const szModelName[][] = 
{
    
"arctic",
    
"gign",
    
"gsg9",
    
"guerilla",
    
"leet",
    
"sas",
    
"terror",
    
"urban",
    
"vip"
}

//player model name in menu: edit as you want
new const szModelMenuName[][] = 
{
    
"Arctic Munkey",
    
"GIGN",
    
"GSG9",
    
"Guerillaz",
    
"1337",
    
"SAS",
    
"Tellolist",
    
"Urban Chaos",
    
"VVIP"
}

new 
bool:bIsNewModel[33], szNewModel[33][32], bool:bIsNewRound

public plugin_precache()
{
    new 
jszText[64]
    for(
j=0sizeof szModelNamej++)
    {
        
formatex(szText63"models/player/%s/%s.mdl"szModelName[j], szModelName[j])
        
precache_model(szText)
    }
}

public 
plugin_init()
{
    
register_plugin("ZP Models Menu""0.0.2""wbyokomo")
    
    
register_event("HLTV""OnNewRound""a""1=0""2=0")
    
register_logevent("OnStartRound",2"1=Round_Start")
    
    
RegisterHam(Ham_Spawn"player""OnPlayerSpawnPost"1)
    
    
register_clcmd("say /model""CmdNewModels")
}

public 
client_disconnected(id)
{
    
bIsNewModel[id] = false
}

public 
OnNewRound()
{
    
bIsNewRound true
}

public 
OnStartRound()
{
    
bIsNewRound false
}

public 
OnPlayerSpawnPost(id)
{
    if(!
is_user_alive(id) || !bIsNewModel[id]) return;
    
    
//spawn as zombie in deathmatch, no need to change model.
    #if defined USE_ZP50
        
if(!bIsNewRound && zp_core_is_zombie(id)) return;
        
        
cs_set_player_model(idszNewModel[id])
    
#else
        
if(!bIsNewRound && zp_get_user_zombie(id)) return;
    
        
#if defined USE_PLAYER_MODELINDEX
        
if(zv_get_user_flags(id) & ZV_MULTI)

        
zp_override_user_model(idszNewModel[id], 1)
        
#else
        
zp_override_user_model(idszNewModel[id])
        
#endif
    #endif
}

#if !defined USE_ZP50
public zp_user_humanized_post(id)
{
    if(!
bIsNewModel[id] || zp_get_user_survivor(id)) return;
    
    
#if defined USE_PLAYER_MODELINDEX
    
zp_override_user_model(idszNewModel[id], 1)
    
#else
    
zp_override_user_model(idszNewModel[id])
    
#endif
}
#endif

public CmdNewModels(id)
{
    if(!
is_user_connected(id))
    {
        
log_amx("Unconnected player [%d] tried to use /model command."id)
        return 
PLUGIN_HANDLED;
    }
    
    
#if defined USE_ZP50
    
if(zp_core_is_zombie(id) || zp_class_survivor_get(id))
    
#else
    
if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
    
#endif
    
{
        
client_print(idprint_chat"[MODEL] Sorry! Zombie, Nemesis, Survivor can't use custom model.")
        return 
PLUGIN_HANDLED;
    }
    
    new 
menu menu_create("Human Models:""mh_CustomModel")
    
    new 
j
    
for(j=0sizeof szModelMenuNamej++)
    {
        
menu_additem(menuszModelMenuName[j], ""0)
    }
    
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
menu_display(idmenu0)
    
    return 
PLUGIN_HANDLED;
}

public 
mh_CustomModel(idmenuitem)
{
    if(!
is_user_connected(id))
    {
        
menu_destroy(id)
        return 
PLUGIN_HANDLED;
    }
    
    
#if defined USE_ZP50
    
if(zp_core_is_zombie(id) || zp_class_survivor_get(id))
    
#else
    
if(zp_get_user_zombie(id) || zp_get_user_survivor(id))
    
#endif
    
{
        
menu_destroy(id)
        
client_print(idprint_chat"[MODEL] Sorry! Zombie, Nemesis, Survivor can't use custom model.")
        return 
PLUGIN_HANDLED;
    }
    
    if(
item == MENU_EXIT)
    {
        
menu_destroy(id)
        return 
PLUGIN_HANDLED;
    }

    new 
command[6], name[64], accesscallback

    menu_item_getinfo
(menuitemaccesscommandsizeof command 1namesizeof name 1callback)
    
    
bIsNewModel[id] = true
    
#if defined USE_ZP50
        
cs_set_player_model(idszModelName[item])
    
#else
        #if defined USE_PLAYER_MODELINDEX
        
zp_override_user_model(idszModelName[item], 1)
        
#else
        
zp_override_user_model(idszModelName[item])
        
#endif
    #endif
    
copy(szNewModel[id], 31szModelName[item])
    
client_print(idprint_chat"[MODEL] You've chosen '%s' as your new player model."szModelName[item])

    
menu_destroy(menu)

    return 
PLUGIN_HANDLED;

MeliMeli is offline
 



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 21:23.


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