Русское сообщество по скриптингу

[ZP Human Class Menu] Добавление класса Людей на ZP 4.3  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

[ZP Human Class Menu] Добавление класса Людей на ZP 4.3

Сообщение MayroN » 17 ноя 2017, 07:45

Решил разнообразить свой мод етим добавлением.Начал с малого.Прописал в меню категорию,определил в кейсе,установил позицию.


Теперь нужно как-то корректо добавить уже сами классы
Код: Выделить всё
#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]

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

public message_cur_weapon(msg_id, msg_dest, msg_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)
{
    set_task(get_cvar_float("zp_delay")+5.0, "ClCmdSelectModel",id)
}

public ClCmdSelectModel(id, menuid)
{
    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("\yBыбepu клacc челoвeкa:", "human_menu_handler")
    menu_additem(menu, "\wБроненосец \y(+20 Брони)", "1", 0)
    menu_additem(menu, "\wЖивyчий \y(+300 HP)", "2", 0)
    menu_additem(menu, "\wПрыгун \y(Bыcoкo nрыг.)", "3", 0)
    menu_additem(menu, "\wМopoзucт \y(X5 лeg.rpeн)", "4", 0)
    menu_additem(menu, "\wПogжugaтeль \y(X5 огн.грен)", "5", 0)
    menu_additem(menu, "\wCвeтuлa \y(X5 свет.грен u Аура)", "6", 0)
    menu_additem(menu, "\wЩuтовоg \y(Щит + Дurл)", "7", 0)
    menu_setprop(menu,MPROP_EXITNAME,"Закрыть");
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
    
}
public human_menu_handler(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}
    new data[6], iName[64]
    new access, callback
    menu_item_getinfo
(menu, item, access, data, 5, iName, 63, callback)
    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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/arctic/arctic.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_armor(id, 20)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Броненосец (20 AP)")
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/gsg9/gsg9.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_health(id, 300)
            client_print(id, print_chat,"[ZP] Your class is: Pounder (300 HP)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/guerilla/guerilla.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_gravity(id, 0.50)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Прыгун (Выше прыгает)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/leet/leet.mdl")
                fm_set_weaponmodel_ent(id)
            }

            cs_set_user_bpammo(id, CSW_FLASHBANG, 5)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Мopoзucт (X5 лeg.rpeн)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/sas/sas.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_health(id, get_cvar_num("zp_human_health"))
            set_user_armor(id, 0)
            set_user_gravity(id, 1.00)
            cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Пogжugaтeль (X5 огн.грен)")
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/terror/terror.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_health(id, get_cvar_num("zp_human_health"))
            set_user_armor(id, 0)
            set_user_gravity(id, 1.00)
            cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 5)
            set_pev(id, pev_effects, pev(id, pev_effects) | EF_BRIGHTLIGHT)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Cвeтuлa (X5 свет.грен u Аура)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/urban/urban.mdl")
                fm_set_weaponmodel_ent(id)
            }
            drop_primary_weapons(id)
            give_item(id,"weapon_shield")
            give_item(id,"weapon_deagle")
            new weapon_id = fm_find_ent_by_owner(-1, "weapon_deagle", id); 
            if
(weapon_id) 
            
{ 
                cs_set_weapon_ammo
(weapon_id, 50); 
            
}

            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Щuтовоg (Щит + Дurл)");
        }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED
}

public zp_user_infected_post(id, infector)
{
    fm_remove_model_ents(id)
}

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

stock fm_set_weaponmodel_ent(id)
{
    static model[100]
    pev(id, pev_weaponmodel2, model, sizeof model - 1)
    
    if 
(!pev_valid(g_ent_weaponmodel[id]))
    {
        g_ent_weaponmodel[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
        set_pev(g_ent_weaponmodel[id], pev_aiment, id)
        set_pev(g_ent_weaponmodel[id], pev_owner, id)
    }
    
    engfunc
(EngFunc_SetModel, g_ent_weaponmodel[id], model)
}

stock drop_primary_weapons(id)    
{
    static weapons [ 32 ], num, i, weaponid
    num 
= 0 
    get_user_weapons 
(id, weapons, num )
    
    for 
( i = 0; i < num; i++ )
    {
        weaponid = weapons [ i ]
        if  ( ( (1<<weaponid) & PRIMARY_WEAPONS_BITSUM ) )        
        
{
            static wname[32]
            get_weaponname(weaponid, wname, charsmax(wname))
            engclient_cmd(id, "drop", wname)
        }
    }
}
    
}


Вот уже главное меню в зомби ( в кейсе 1 поставил Людей )
Код: Выделить всё
// Game Menu
public menu_game(id, key)
{
    switch (key)
    {
        case 0: // Extra Items
        {
            // Extra items enabled?
            if (get_pcvar_num(cvar_extraitems))
            {
                // Check whether the player is able to buy anything
                if (g_isalive[id])
                    show_menu_extras(id)
                else
                    zp_colored_print
(id, "^x04[ Зомби Чума ]^x01 ^x03%L^x01", id, "CMD_NOT")
            }
            else
                zp_colored_print
(id, "^x04[ Зомби Чума ]^x01 ^x03%L^x01", id, "CMD_NOT_EXTRAS")
        }
                case 1: // Human Classes
        {
            // Human classes enabled?
                        human_menu(id)
            zp_colored_print(id, "^x04[ Зомби Чума ]^x01 ^x03%L^x01", id, "CMD_NOT_ZCLASSES")
        }
        case 2: // Zombie Classes
        {
            // Zombie classes enabled?
            if (get_pcvar_num(cvar_zclasses))
                show_menu_zclass(id)
            else
                zp_colored_print
(id, "^x04[ Зомби Чума ]^x01 ^x03%L^x01", id, "CMD_NOT_ZCLASSES")
        }
        case 3: // Help Menu
        {
            show_menu_info(id)
        }
    }
    
    return PLUGIN_HANDLED
;


потом добавляю human_menu(id) и бросаю почти ето всё в мод

Код: Выделить всё
public human_menu(id)
{
    new menu = menu_create("\yBыбepu клacc челoвeкa:", "human_menu_handler")
    menu_additem(menu, "\wБроненосец \y(+20 Брони)", "1", 0)
    menu_additem(menu, "\wЖивyчий \y(+300 HP)", "2", 0)
    menu_additem(menu, "\wПрыгун \y(Bыcoкo nрыг.)", "3", 0)
    menu_additem(menu, "\wМopoзucт \y(X5 лeg.rpeн)", "4", 0)
    menu_additem(menu, "\wПogжugaтeль \y(X5 огн.грен)", "5", 0)
    menu_additem(menu, "\wCвeтuлa \y(X5 свет.грен u Аура)", "6", 0)
    menu_additem(menu, "\wЩuтовоg \y(Щит + Дurл)", "7", 0)
    menu_setprop(menu,MPROP_EXITNAME,"Закрыть");
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, menu, 0)
    
}
public human_menu_handler(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}
    new data[6], iName[64]
    new access, callback
    menu_item_getinfo
(menu, item, access, data, 5, iName, 63, callback)
    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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/arctic/arctic.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_armor(id, 20)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Броненосец (20 AP)")
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/gsg9/gsg9.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_health(id, 300)
            client_print(id, print_chat,"[ZP] Your class is: Pounder (300 HP)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/guerilla/guerilla.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_gravity(id, 0.50)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Прыгун (Выше прыгает)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/leet/leet.mdl")
                fm_set_weaponmodel_ent(id)
            }

            cs_set_user_bpammo(id, CSW_FLASHBANG, 5)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Мopoзucт (X5 лeg.rpeн)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/sas/sas.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_health(id, get_cvar_num("zp_human_health"))
            set_user_armor(id, 0)
            set_user_gravity(id, 1.00)
            cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Пogжugaтeль (X5 огн.грен)")
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/terror/terror.mdl")
                fm_set_weaponmodel_ent(id)
            }
            set_user_health(id, get_cvar_num("zp_human_health"))
            set_user_armor(id, 0)
            set_user_gravity(id, 1.00)
            cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 5)
            set_pev(id, pev_effects, pev(id, pev_effects) | EF_BRIGHTLIGHT)
            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Cвeтuлa (X5 свет.грен u Аура)");
        }
        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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.
                engfunc(EngFunc_SetModel, g_ent_playermodel[id], "models/player/urban/urban.mdl")
                fm_set_weaponmodel_ent(id)
            }
            drop_primary_weapons(id)
            give_item(id,"weapon_shield")
            give_item(id,"weapon_deagle")
            new weapon_id = fm_find_ent_by_owner(-1, "weapon_deagle", id); 
            if
(weapon_id) 
            
{ 
                cs_set_weapon_ammo
(weapon_id, 50); 
            
}

            client_print(id, print_chat,"[ZP] Ваш Класс для этого раунда: Щuтовоg (Щит + Дurл)");
        }
    }
    menu_destroy(menu)
    return PLUGIN_HANDLED


И началось:
Ошибки zp_get_user_zombie(id) ,хотя они зарегистрированы.
Подскажите,что я делаю нетак?Как правильно подстроить.Розберитесь если есть немного времени у Вас свободного.
:thumbs_up

ZP
У вас нет необходимых прав для просмотра вложений в этом сообщении.
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...

Re: [ZP Human Class Menu] Добавление класса Людей на ZP 4.3

Сообщение fl0wer » 17 ноя 2017, 12:55

Подключи zombieplague inc в мод )0))
Ну а вообще используй саму переменную g_zombie, а не натив для других плагинов.
Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 508 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

Re: [ZP Human Class Menu] Добавление класса Людей на ZP 4.3

Сообщение Gavrik » 17 ноя 2017, 21:27

У меня всё ровно скомпилировалось( какое слово то тяжёлое) без ошибок.
Аватара пользователя
Gavrik
 
Сообщения: 29
Зарегистрирован: 19 ноя 2009, 21:51
Благодарил (а): 4 раз.
Поблагодарили: 1 раз.

Re: [ZP Human Class Menu] Добавление класса Людей на ZP 4.3

Сообщение MayroN » 21 ноя 2017, 01:06

fl0wer писал(а):Подключи zombieplague inc в мод )0))


Как ни странно даже и не заметил что его нет.Но когда вкл. - плагин не компил.А без его - всё впорядке.
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...

Re: [ZP Human Class Menu] Добавление класса Людей на ZP 4.3  [Решено]

Сообщение MayroN » 12 мар 2018, 23:53

Спустя много времени - вернулся к Категории )
Получилось следующее :

Как сказал fl0wer,да нужно было ставить по такому принципу вместо zp_get_user_zombie(id)

Код: Выделить всё
if (g_zombie[id] || g_survivor[id] || g_nemesis[id]) return PLUGIN_HANDLED;


Ето запрещает выбирать Категорию Человека если ты Зомби ,Виживший или Немезида.( но не блокирует сам Пункт в Главном Меню ).Только сообщение в чат выдаёться,после как питаешься вибрать класс..

Беда в том,что из меню любую категорию можно выбирать бесконечно,тем самим наполняя себя множеством гранат,здоровьем,брони и прочего.

Я вот,что подумал: Нужно игроку дать только Один выбор класса на всю игру без смены повторного выбора
Либо дать Один выбор класса на один раунд ( после заблокировать) или всё таки дать выбор,но неизменять текущий,и в след.раунде сменить автоматом.

Меню из 1м классом
Код: Выделить всё
public human_menu_handler(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}
    new data[6], iName[64]
    new access, callback
    menu_item_getinfo
(menu, item, access, data, 5, iName, 63, callback)
    new key = str_to_num(data)
    switch(key)
    {
        case 1:
        {
            if (g_zombie[id] || g_survivor[id] || g_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_CreateNamedEntity, engfunc(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_movetype, MOVETYPE_FOLLOW)
                set_pev(g_ent_playermodel[id], pev_aiment, id)
                set_pev(g_ent_playermodel[id], pev_owner, id)
                                           // Change name of your model below.                
                fm_set_weaponmodel_ent(id)
            }
            set_user_armor(id, 300)
                        zp_colored_print(id, "^x04[ Зомби Чума ]^x01 ^x03Ваша Категория Людей:^x01 ^x04Воин^x01 ^x03[ 300 %% Брони ]^x01")            
        
}


Как ето сделать,подскажите,что за чем и куда?
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...

Re: [ZP Human Class Menu] Добавление класса Людей на ZP 4.3

Сообщение 3BEPb » 13 мар 2018, 01:11

А можно сбрасывать способности при смене класса.
Аватара пользователя
3BEPb
 
Сообщения: 141
Зарегистрирован: 16 авг 2014, 22:02
Откуда: Пряжа
Благодарил (а): 22 раз.
Поблагодарили: 17 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: [ZP Human Class Menu] Добавление класса Людей на ZP 4.3

Сообщение MayroN » 13 мар 2018, 01:38

3BEPb писал(а):А можно сбрасывать способности при смене класса.


Да, можно и таким вариантом тоже.Но тут немного нето.Выбрал один класс - набрал гранат огненных.Покидал.Выбрал другой - покидал ледяных и.т.д.).Всёравно нужно блокировать на раунд.
МультиМод CS
Аватара пользователя
MayroN
 
Сообщения: 673
Зарегистрирован: 10 окт 2010, 18:23
Откуда: Украина, г. Белая Церковь
Благодарил (а): 149 раз.
Поблагодарили: 86 раз.
Опыт программирования: Около года
Языки программирования: На которых говорю...


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20