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

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

Все вопросы по скриптингу для 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: Помогите исправить плагин  [Решено]

Сообщение [N][E][M][E][C] » 23 апр 2021, 21:31

Покажите какое событие вы использовали?
И у вас плохая привычка кидать фаил, этот форум создан для помощи. И желательно скидывать код сюда, мне кажется больше помощи будет.
Скорее всего вы задаете модель оружия через команду, а надо отлавливать покупку оружия, и там давать модель игроку.
Получается вы покупаете оружие и даете модель, но потом покупаете оружие и модель становится стандартной.
Создайте булевой массив на каждого игрока.
Выдавайте оружие через команду и модель оружия, массиву присваивайте значение true.
Отлавливайте покупку оружия, и делайте условие если массив труе, давайте модель оружия
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

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

Сообщение [N][E][M][E][C] » 24 апр 2021, 14:42

А что вы имеете ввиду в смене оружия? Я наверное не правильно понял вас?
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

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

Сообщение [N][E][M][E][C] » 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
; 
}
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

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

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

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

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

Сообщение [N][E][M][E][C] » 30 апр 2021, 00:30

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

new g_szModel[MAX_MODEL][MAX_MODEL][] = {
    {
"models/v_ak47.mdl""models/v_ak47azimov.mdl"}, 
    {
"models/P_ak47.mdl""models/p_ak47azimov.mdl"}  
};                                             
                                             
new 
bool:g_bModel[33];               
 
public 
plugin_init() {                        
    
register_plugin("Change Weapon Model""1.0""zadnits"); 
 
    
register_clcmd("amx_model""remove_model");
    
register_event("CurWeapon""Event_CurWeapon""be","1=1"); 
}

public 
client_disconnect(id
    
g_bModel[id] = false;                                                             
                                                
public 
plugin_precache() {                                    
    for(new 
iMAX_MODEL; ++i) {
        for(new 
uMAX_MODEL; ++u)     
            
precache_model(g_szModel[i][u]);    
    }                                                         
}                                                                                                      
                                       
public 
remove_model(id) {                                                  
    if(
is_user_alive(id)) {             
        
g_bModel[id] = !g_bModel[id];
        
set_user_x_model(idg_bModel[id]);
                           
        
client_print(idprint_chat"Вы сменили модель АК-47 на %s"g_bModel[id] ? "премиум" "стандартную");
    }
}                                     
                                                             
public 
Event_CurWeapon(id)
    if(
is_user_alive(id)) set_user_x_model(idg_bModel[id]);                                                                                 
                                                                          
set_user_x_model(const user, const model) {
    if(
get_user_weapon(user) == CSW_AK47) {                                                      
        
entity_set_string(userEV_SZ_viewmodelg_szModel[0][model]);                             
        
entity_set_string(userEV_SZ_weaponmodelg_szModel[1][model]);
    }
}  

Пробуй
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи


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

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

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