Форум Остальное Флудильня Помогите с плагином |
Помогите с плагином |
Дата: Суббота, 02.06.2018, 22:19 | Сообщение # 1
Дух ( Новичок )
Offline
![]()
Ребята , нужно немного поправит плагин. Сделать что бы толькомогли брать випы с флагом t и только 1 раз за раунд
https://yadi.sk/d/surXsPGt3WukQo
Сообщение отредактировал Nadi - Суббота, 02.06.2018, 22:21
|
Дата: Суббота, 02.06.2018, 22:44 | Сообщение # 2
Профи
Offline
![]()
Проверь(Исправлено)
Сообщение отредактировал Mandar1n - Воскресенье, 03.06.2018, 00:31
|
Дата: Суббота, 02.06.2018, 23:48 | Сообщение # 3
Скриптер
Эксперт
Offline
![]()
Mandar1n,
Первое, что бросается в глаза: Код bool: CanUse[32] = true Во-первых, ТС не назвал сколько слотов у него на сервере, если у него их 32, то при обработке 32 игрока можно получить ошибку с выходом за пределы границы массива (но ты её не получишь из-за ошибки, которую ты допустил, о ней чуть ниже). Но на будущее: если плагин делается глобально для всех, а не только лично для твоего сервера, где известно количество слотов, то размер массива должен быть равен 33, ибо нумерация массива начинается с нуля, а слотов 32 (0 элемент не соответствует индексу и не обрабатывается, а ты теряешь 32 элемент массива, получая ошибку при правильной обработке (но правильной обработки у тебя нет, об этом ниже)). Также стоит поменять логику алгоритма, не присваивать переменной с самого начала ничего, потому как павн инициализирует сам, присваивая переменной фолс (в данном случае, ибо переменная булевая), далее тебе стоило бы при единичном использовании присвоить переменной тру и проверять на тру, а не на фолс. Далее. Код if(!(get_user_flags(id) & FLAG)) Отрицание функции заменяется отрицанием битности. Код if(~get_user_flags(id) & FLAG) Далее. Код for(new id = 1; id < g_maxplayers; id++) CanUse [id]= true При полной заполненности сервера игроками последний игрок не будет обработан. Потому как строгое "меньше" в условии нужно заменить на "меньше либо равно", чтобы обработать последнего игрока, индекс которого равен количеству слотов. Речь в самом начале об ошибке шла именно в этой части. Благодаря такой ошибке ты не получишь выход за пределы массива, как было сказано выше, из-за нестрогого условия, но последний игрок не будет обработан (при условии полной заполненности сервером).
Сообщение отредактировал EpisCape - Суббота, 02.06.2018, 23:52
|
Дата: Воскресенье, 03.06.2018, 00:19 | Сообщение # 4
Профи
Offline
![]()
EpisCape, странно, я вроде 33 писал. А на счет остального, спс за пояснение)
|
Дата: Воскресенье, 03.06.2018, 01:33 | Сообщение # 5
|
Дата: Воскресенье, 03.06.2018, 01:56 | Сообщение # 6
Скриптер
Эксперт
Offline
![]()
Mandar1n, сам автор плагина допустил такую же ошибку, кстати говоря, при объявлении булевой. Может, ты, взглянув на неё, увидел размер в 32 байта и при объявлении массива поставил такой же размер, вот и не заметил.
|
Дата: Воскресенье, 03.06.2018, 11:13 | Сообщение # 7
Любитель
Offline
![]()
Помогите пожалуйста найти плагин пушки с ракетами
Добавлено (03.06.2018, 11:13) |
Дата: Воскресенье, 03.06.2018, 14:25 | Сообщение # 8
Профи
Offline
![]()
EpisCape, Кстати, да) Я увидел немного выше в коде 32 и сам машинально поставил 32)
Добавлено (03.06.2018, 14:25) |
Дата: Понедельник, 11.06.2018, 18:15 | Сообщение # 9
Любитель
Offline
![]()
Здравствуйте кто-нибудь сможет помочь с плагином мне нужно чтоб пушку можно было прокачивать до 4 левела всем людям с обычным доступом
И заранее извините за то что я кинул сам плагин просто нет исходника Добавлено (11.06.2018, 18:15) |
Дата: Воскресенье, 24.06.2018, 20:06 | Сообщение # 10
![]()
ребят помогите пожайлуста!!
в общем нашёл я плагин Бесконечные патроны который можно покупать за определённую внутри игровую сумму но проблема в том что после смерти бесконечные патроны остаются.. кто шарит в скриптах помогите плиз!!! вот исходник https://yadi.sk/d/5_4HaUXZ3YLFSs
Сообщение отредактировал sklin - Воскресенье, 24.06.2018, 20:06
|
Дата: Воскресенье, 24.06.2018, 20:30 | Сообщение # 11
Профи
Offline
![]()
sklin,
Код #include <amxmodx> #include <fakemeta> #include <hamsandwich> #include <cstrike> #define PLUGIN "Unlimited Weapon Clip" #define AUTHOR "ConnorMcLeod" #define VERSION "0.0.1" #define CANT_RELOAD_BITSUM ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4)) new g_bAdmin[33] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("CurWeapon", "Event_CurWeapon", "be", "1!0"); register_event( "DeathMsg", "Hook_DeathMessage", "a" ); register_clcmd("say /buyz", "kkekc"); } public client_putinserver(id) g_bAdmin [id]= false; public Hook_DeathMessage() { new iVictim = read_data(2); g_bAdmin [iVictim]= false } public Event_CurWeapon(id) { if( !g_bAdmin [id]|| CANT_RELOAD_BITSUM & (1<<read_data(2)) || read_data(3) > 1 ) return set_pdata_int(get_pdata_cbase(id, 373), 51, 100, 4) } public kkekc(id) { if(!is_user_alive(id)) return; if(cs_get_user_money(id) < 400) return; cs_set_user_money(id, cs_get_user_money(id) - 400); g_bAdmin [id]= true; } |
Дата: Воскресенье, 24.06.2018, 20:48 | Сообщение # 12
![]()
спасибо большое)
Сообщение отредактировал sklin - Воскресенье, 24.06.2018, 20:55
|
Дата: Воскресенье, 24.06.2018, 22:56 | Сообщение # 13
Профи
Offline
![]()
sklin, спасибо в репутацию не положишь xD
|
Дата: Воскресенье, 24.06.2018, 23:24 | Сообщение # 14
|
Дата: Вторник, 26.06.2018, 20:23 | Сообщение # 15
|
| |||