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

Knife skins: сбрасывается модель в новом раунде

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

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

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

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

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

Knife skins: сбрасывается модель в новом раунде

Сообщение Zloy-DED » 15 сен 2017, 10:45

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

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <engine>

#define PLUGIN "Knife skins"
#define VERSION "0.1" 
#define AUTHOR "abcs-servera.tk"

new g_Menu;

public plugin_init() {
   
   register_plugin
(PLUGIN, VERSION, AUTHOR)
   
   g_Menu 
= register_menuid("Knife Mod")
   register_menucmd(g_Menu, 1023, "knifemenu")
   
   register_clcmd
("say /knife", "display_knife")
}

public plugin_precache() {
   precache_model("models/abcs_servera_weapons/v_3.mdl")
   precache_model("models/abcs_servera_weapons/p_3.mdl")
   precache_model("models/abcs_servera_weapons/v_1.mdl")
   precache_model("models/abcs_servera_weapons/p_1.mdl")
   precache_model("models/abcs_servera_weapons/v_2.mdl")
   precache_model("models/abcs_servera_weapons/p_2.mdl")
   precache_model("models/abcs_servera_weapons/v_4.mdl")
   precache_model("models/abcs_servera_weapons/p_4.mdl")
   precache_model("models/v_knife.mdl")
   precache_model("models/p_knife.mdl")
}

public display_knife(id) {
   new menuBody[512]
   add(menuBody, 511, "Выбор ножа^n")
   add(menuBody, 511, "1. Секира^n")
   add(menuBody, 511, "2. Крапаль^n")
   add(menuBody, 511, "3. Спидозный^n")
   add(menuBody, 511, "4. Комбатw^n")
   add(menuBody, 511, "5. Стандартный нож^n")
   add(menuBody, 511, "0. Выход^n")
   
   new keys 
= ( 1<<| 1<<| 1<<| 1<<| 1<<| 1<<)
   show_menu(id, keys, menuBody, -1, "Knife Mod")
}

public knifemenu(id, key) {
   switch(key)
   {
      case 0: SetKnife(id , 4)
      case 1: SetKnife(id , 2)
      case 2: SetKnife(id , 3)
      case 3: SetKnife(id , 1)
      case 4: SetKnife(id , 0)
      default: return PLUGIN_HANDLED
   
}
   return PLUGIN_HANDLED
}

public SetKnife(id , Knife) {
   
   new Clip
, Ammo, Weapon = get_user_weapon(id, Clip, Ammo)
   if ( Weapon != CSW_KNIFE )
      return PLUGIN_HANDLED
   
   new vModel
[56],pModel[56]
   
   switch
(Knife)
   {
      case 0: {
         format(vModel,55,"models/v_knife.mdl")
         format(pModel,55,"models/p_knife.mdl")
      }
      case 1: {
         format(vModel,55,"models/abcs_servera_weapons/v_3.mdl")
         format(pModel,55,"models/abcs_servera_weapons/p_3.mdl")
      }
      case 2: {
         format(vModel,55,"models/abcs_servera_weapons/v_2.mdl")
         format(pModel,55,"models/abcs_servera_weapons/p_2.mdl")
      }
      case 3: {
         format(vModel,55,"models/abcs_servera_weapons/v_4.mdl")
         format(pModel,55,"models/abcs_servera_weapons/p_4.mdl")
      }
      case 4: {
         format(vModel,55,"models/abcs_servera_weapons/v_1.mdl")
         format(pModel,55,"models/abcs_servera_weapons/p_1.mdl")
      }
   }
   
   entity_set_string
(id, EV_SZ_viewmodel, vModel)
   entity_set_string(id, EV_SZ_weaponmodel, pModel)
   
   return PLUGIN_HANDLED
; 

Название темы скорректировано // Subb98
Аватара пользователя
Zloy-DED
 
Сообщения: 256
Зарегистрирован: 30 мар 2013, 12:31
Благодарил (а): 33 раз.
Поблагодарили: 33 раз.
Языки программирования: Counter-Strike 1.6

Re: Knife skins: сбрасывается модель в новом раунде

Сообщение ALIK » 15 сен 2017, 12:54

Аватара пользователя
ALIK
 
Сообщения: 227
Зарегистрирован: 01 июн 2010, 23:05
Благодарил (а): 116 раз.
Поблагодарили: 55 раз.
Опыт программирования: Меньше недели
Языки программирования: Pawn

Re: Knife skins: сбрасывается модель в новом раунде

Сообщение Zloy-DED » 15 сен 2017, 19:47

ALIK писал(а):Zloy-DED, чтобы не сбрасывалась есть Вы должны зарегистрироваться, чтобы видеть ссылки.

что-то не совсем понял , можно ли любой пример хотя бы глянуть ?
Аватара пользователя
Zloy-DED
 
Сообщения: 256
Зарегистрирован: 30 мар 2013, 12:31
Благодарил (а): 33 раз.
Поблагодарили: 33 раз.
Языки программирования: Counter-Strike 1.6

Re: Knife skins: сбрасывается модель в новом раунде

Сообщение NEoMASTERR » 15 сен 2017, 20:49

Конечно можно! Почему нет?
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Knife skins: сбрасывается модель в новом раунде

Сообщение Zloy-DED » 16 сен 2017, 01:32

NEoMASTERR писал(а):Конечно можно! Почему нет?

я не так выразился )
не могли бы любой пример суда сбросить чтобы глянуть его как правильно все делается
Аватара пользователя
Zloy-DED
 
Сообщения: 256
Зарегистрирован: 30 мар 2013, 12:31
Благодарил (а): 33 раз.
Поблагодарили: 33 раз.
Языки программирования: Counter-Strike 1.6

Re: Knife skins: сбрасывается модель в новом раунде

Сообщение Subb98 » 16 сен 2017, 10:54

Zloy-DED, а ссылка на гугл вам для чего была дана?
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Knife skins: сбрасывается модель в новом раунде

Сообщение NEoMASTERR » 16 сен 2017, 11:06

Вешаете хук на смену оружия на нож
Код: Выделить всё
public plugin_init()
{
    RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_item_deploy_post", 1);    

Обрабатываете, меняете модель
Код: Выделить всё

const m_pPlayer 
= 41
const m_iId 
= 43
const XO_WEAPON 
= 4

public ham_item_deploy_post
(ent)
{
    if (!pev_valid(ent)) return HAM_IGNORED;
    if (get_pdata_int(ent, m_iId, XO_WEAPON) != CSW_KNIFE) return HAM_IGNORED

    static id
; id = get_pdata_cbase(ent, m_pPlayer, 4) // с помощью id игрока узнаёте какой у него скин должен быть (сохраняете в переменную g_KnifeUsed[id] к примеру)
    // ставите модель, в зависимости от того как их будете хранить (не так как сейчас, это никуда не годится)
    set_pev(id, pev_viewmodel, engfunc(EngFunc_AllocString, g_Models[g_KnifeUsed[id]][model_v]));
    set_pev(id, pev_weaponmodel, engfunc(EngFunc_AllocString, g_Models[g_KnifeUsed[id]][model_p]));
    
    return HAM_HANDLED


Добавлено спустя 2 минуты 28 секунд:
Ну или чтобы далеко не ходить ловите спавн игроков и присваиваете им модель повторно, которую надо сохранить в переменную так чтобы было ясно у какого игрока какая модель (думайте)
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6


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

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

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