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

Помогите исправить плагин  [Решено]

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

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

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

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

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

Помогите исправить плагин

Сообщение dUGDI1 » 23 апр 2021, 21:16

Помогите пожалуйста исправить плагин. Захожу в игру, прописываю команду, модель меняется, но при смене оружия исчезает.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
dUGDI1
 
Сообщения: 10
Зарегистрирован: 21 апр 2021, 21:43
Откуда: г. Пинск
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Pawn

Re: Помогите исправить плагин  [Решено]

Сообщение vitalik19842105 » 23 апр 2021, 21:31

Покажите какое событие вы использовали?
И у вас плохая привычка кидать фаил, этот форум создан для помощи. И желательно скидывать код сюда, мне кажется больше помощи будет.
Скорее всего вы задаете модель оружия через команду, а надо отлавливать покупку оружия, и там давать модель игроку.
Получается вы покупаете оружие и даете модель, но потом покупаете оружие и модель становится стандартной.
Создайте булевой массив на каждого игрока.
Выдавайте оружие через команду и модель оружия, массиву присваивайте значение true.
Отлавливайте покупку оружия, и делайте условие если массив труе, давайте модель оружия
Аватара пользователя
vitalik19842105
 
Сообщения: 195
Зарегистрирован: 14 фев 2021, 10:48
Предупреждения: 1
Благодарил (а): 30 раз.
Поблагодарили: 22 раз.
Опыт программирования: Меньше недели
Языки программирования: Нуждаюсь в помощи

Re: Помогите исправить плагин

Сообщение vitalik19842105 » 24 апр 2021, 14:42

А что вы имеете ввиду в смене оружия? Я наверное не правильно понял вас?
Аватара пользователя
vitalik19842105
 
Сообщения: 195
Зарегистрирован: 14 фев 2021, 10:48
Предупреждения: 1
Благодарил (а): 30 раз.
Поблагодарили: 22 раз.
Опыт программирования: Меньше недели
Языки программирования: Нуждаюсь в помощи

Re: Помогите исправить плагин

Сообщение vitalik19842105 » 25 апр 2021, 10:35

Вот тебе набросал, не тестил.
Суть такова, когда в руках ак 47 у тебя , ты можешь переключать себе модель cо стондартной на премиум и наоборот
Путь к моделям изменил, скидывай сюда, cstrike/models
Код: Выделить всё
#include <amxmodx> 
#include <engine> 
#include <fakemeta> 
 
new MODEL_AK_STANDART
[2][] = { 
 
"models/v_ak47.mdl", 
 
"models/P_ak47.mdl" 
} //это стандартные модели 
 
new MODEL_AK_PREMIUM
[2][] = { 
 
"models/v_ak47azimov.mdl", 
 
"models/p_ak47azimov.mdl" 
} //модели на сервере должны лежать cstrike\models 
 
new PLUGIN
[] = "Change Weapon Model" 
new VERSION
[] = "1.0" 
new AUTHOR
[] = "zadnits" 
 
new weapon
[33]; 
new bool
:g_ak[33]; 
new g
; 
 
public plugin_init
() { 
 register_plugin
(PLUGIN, VERSION, AUTHOR); 
 
 register_clcmd
("chooseakazimov", "function_ak47"); //командой в консоль "chooseakazimov", будем менять модель ак - 47 
 register_event("CurWeapon", "Event_CurWeapon", "be","1=1"); //тут отлавливаем событие, какое оружие в руках, и если ак - 47, меняем модель 
} 
 
public plugin_precache
() { 
 static i
; 
 
 for
(= 0; i < charsmax(MODEL_AK_PREMIUM); ++ i) 
 precache_model
(MODEL_AK_PREMIUM[i]); 
} 
 
public function_ak47
(id) { 
 new k
; 
 
 weapon
[id] = get_user_weapon(id); 
 
 if
(weapon[id] != CSW_AK47) { 
 client_print
(id, print_center, "У вас в руках не АК-47"); 
 return PLUGIN_HANDLED
; 
 
} 
 
 if
(!g_ak[id]) { 
 for
(= 0; k < charsmax(MODEL_AK_PREMIUM); ++ k) 
 entity_set_string
(id, EV_SZ_viewmodel, MODEL_AK_PREMIUM[k]); 
 
 client_print
(id, print_center, "Вы сменили модель АК-47 на премиум"); 
 g_ak
[id] = true; 
 
} 
 
 else if
(g_ak[id]) { 
 for
(= 0; k < charsmax(MODEL_AK_STANDART); ++ k) 
 entity_set_string
(id, EV_SZ_viewmodel, MODEL_AK_STANDART[k]); 
 
 client_print
(id, print_center, "Вы сменили модель АК-47 на стандартную"); 
 g_ak
[id] = false; 
 
} 
 
 return PLUGIN_CONTINUE
; 
} 
 
public Event_CurWeapon
(id) { 
 weapon
[id] = get_user_weapon(id); 
 
 if
(weapon[id] != CSW_AK47 || !g_ak[id]) 
 return PLUGIN_HANDLED
; 
 
 for
(= 0; g < charsmax(MODEL_AK_PREMIUM); ++ g) 
 entity_set_string
(id, EV_SZ_viewmodel, MODEL_AK_PREMIUM[g]); 
 
 return PLUGIN_CONTINUE
; 
}
Аватара пользователя
vitalik19842105
 
Сообщения: 195
Зарегистрирован: 14 фев 2021, 10:48
Предупреждения: 1
Благодарил (а): 30 раз.
Поблагодарили: 22 раз.
Опыт программирования: Меньше недели
Языки программирования: Нуждаюсь в помощи

Re: Помогите исправить плагин

Сообщение dUGDI1 » 29 апр 2021, 19:47

а можно сделать чтобы только для одного человека ставилось? просто там оно для всех. Если тебе будет удобнее, можешь с нуля написать
Аватара пользователя
dUGDI1
 
Сообщения: 10
Зарегистрирован: 21 апр 2021, 21:43
Откуда: г. Пинск
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Pawn

Re: Помогите исправить плагин

Сообщение vitalik19842105 » 30 апр 2021, 00:30

Я забыл присвоить значение false, игроку который вышел, получается если он взял модель и вышел, следующий игрок который зайдет под темже айди, то у него останется эта модель
Код: Выделить всё
#include <amxmodx> 
#include <engine> 
#include <fakemeta> 
 
new MODEL_AK_STANDART
[2][] = { 
    
"models/v_ak47.mdl", 
    
"models/P_ak47.mdl" 
} //это стандартные модели 
 
new MODEL_AK_PREMIUM
[2][] = { 
    
"models/v_ak47azimov.mdl", 
    
"models/p_ak47azimov.mdl" 
} //модели на сервере должны лежать cstrike\models 
 
new PLUGIN
[] = "Change Weapon Model" 
new VERSION
[] = "1.0" 
new AUTHOR
[] = "zadnits" 
 
new weapon
[33]; 
new bool
:g_ak[33]; 
new g
; 
 
public plugin_init
() { 
    register_plugin
(PLUGIN, VERSION, AUTHOR); 
 
    register_clcmd
("chooseakazimov", "function_ak47"); //командой в консоль "chooseakazimov", будем менять модель ак - 47 
    register_event("CurWeapon", "Event_CurWeapon", "be","1=1"); //тут отлавливаем событие, какое оружие в руках, и если ак - 47, меняем модель 
} 
 
public client_disconnect
(id) 
    g_ak
[id] = false; 
 
public plugin_precache
() { 
    static i
; 
 
    for
(= 0; i < charsmax(MODEL_AK_PREMIUM); ++ i) 
        precache_model
(MODEL_AK_PREMIUM[i]); 
}

public function_ak47(id) { 
    new k
; 
    weapon
[id] = get_user_weapon(id); 
 
    
if(weapon[id] != CSW_AK47) { 
        client_print
(id, print_center, "У вас в руках не АК-47"); 
        return PLUGIN_HANDLED
; 
    
} 
 
    
if(!g_ak[id]) { 
        
for(= 0; k < charsmax(MODEL_AK_PREMIUM); ++ k) 
        entity_set_string
(id, EV_SZ_viewmodel, MODEL_AK_PREMIUM[k]); 
 
        client_print
(id, print_center, "Вы сменили модель АК-47 на премиум"); 
        g_ak
[id] = true; 
    
} 
 
    else if
(g_ak[id]) { 
        for
(= 0; k < charsmax(MODEL_AK_STANDART); ++ k) 
        entity_set_string
(id, EV_SZ_viewmodel, MODEL_AK_STANDART[k]); 
 
        client_print
(id, print_center, "Вы сменили модель АК-47 на стандартную"); 
        g_ak
[id] = false; 
    
} 
 
    return PLUGIN_CONTINUE
; 
} 
 
public Event_CurWeapon
(id) { 
    weapon
[id] = get_user_weapon(id); 
 
    if
(weapon[id] != CSW_AK47 || !g_ak[id]) 
        return PLUGIN_HANDLED
; 
 
    
for(= 0; g < charsmax(MODEL_AK_PREMIUM); ++ g) 
        entity_set_string
(id, EV_SZ_viewmodel, MODEL_AK_PREMIUM[g]); 
 
    return PLUGIN_CONTINUE
; 

Пробуй
Аватара пользователя
vitalik19842105
 
Сообщения: 195
Зарегистрирован: 14 фев 2021, 10:48
Предупреждения: 1
Благодарил (а): 30 раз.
Поблагодарили: 22 раз.
Опыт программирования: Меньше недели
Языки программирования: Нуждаюсь в помощи


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

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

Сейчас этот форум просматривают: Bing [Bot], Yandex [Bot] и гости: 12

cron