Суть данного конкурса - исправить логические ошибки в AMXX плагине для Counter-Strike 1.6. Данный плагин успешно компилируется (без ошибок и предупреждений), но должным образом не функционирует.
Что должен выполнять плагин:
1. При amx_bind "1" биндить всем зашедшим игрокам на клавишу F1 команду quit.
2. При написании игроком в консоль команды amx_showip, ему в консоль должен вывестись список имен и IP-адресов игроков, которые в данный момент на сервере. У игрока должен быть флаг доступа "a" (иммунитет).
Необходимо найти логические, синтаксические и другие ошибки в плагине. Причем структура плагина не должна меняться, к примеру, если используется цикл for, то его не нужно менять на другой цикл while или заменять функцией get_players. Но можно добавлять код, если он нужен для стабильной работы плагина. Возможны, неправильные функции, аргументы, логика, проверки и т.д. Победители определяются на основании того, кто больше всего нашел ошибок в плагине, и соответственно, кто сделал это быстрее всех.
В ответе указать код всего плагина уже с исправлениями, а в комментариях рядом указать какая была ошибка!
Плагин:
[pawn]
- #include <amxmodx>
- #define PLUGIN "Новогодний конкурс"
- #define VERSION "2.0"
- #define AUTHOR "amx-x.ru"
- #define MAX_PLAYERS 32
- new g_CvarBind
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, AUTHOR)
- register_clcmd("amx_showip", "Show_IP", _, "ADMIN_IMMUNITY")
- g_CvarBind = register_cvar("amx_bind", "1")
- }
- public client_putinserver(id)
- set_task(10.0, "Start_Bind")
- public Start_Bimd(id)
- {
- if (!get_pcvar_flags(g_CvarBind))
- client_cmd(id, "bind G1 quit")
- }
- public Show_IP(id)
- {
- new s_IP[32], s_Name[32]
- client_print(id, print_console, "IP - NAME")
- for (new i_Player = 1; i_Player < MAX_PLAYERS; i_Player++)
- {
- get_user_ip(i_Player, s_IP, charsmax(s_IP))
- get_user_name(id, s_Name, charsmax(s_Name))
- client_print(id, print_chat, "%s - %s", s_Name, s_IP)
- }
- }
Лог компиляции:
- Код: Выделить всё
Welcome to the AMX Mod X 1.76-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
Header size: 348 bytes
Code size: 808 bytes
Data size: 488 bytes
Stack/heap size: 16384 bytes; estimated max. usage=75 cells (300 bytes)
Total requirements: 18028 bytes
Done.
Призы:
[align=center]Steam-купон со скидкой 50% на игру Left 4 Dead 2*
Steam-купон со скидкой 50% на игру Nuclear Dawn*
Steam-купон со скидкой 50% на игру Blood Bowl Legendary Edition*
[/align]
1 место - выбирает один любой купон.
2 место - выбирает один любой купон из двух оставшихся.
3 место - получает оставшийся купон.
* Для получения приза необходим аккаунт в системе Steam. Приз отсылается по почте.
Активировать купон необходимо до 1 марта 2012 года.
Выкладывать ответы с кодом необходимо под тегом [hide]. Содержимое ответа будет видно только администратору и модератору. Один пользователь имеет право ответить в теме - только один раз, все повторные ответы не засчитываются. Поэтому заранее нужно максимально ответить наибольшее количество вариантов. Ответы после указанного ниже времени не засчитываются. Принять участие может любой зарегистрированный пользователь форума, кроме администраторов и модераторов.
Использовать фейк-аккаунты и клоны запрещено - бан.
Флудить запрещено, только ответы по теме. Для вопросов и обсуждения есть тема:
Вы должны зарегистрироваться, чтобы видеть ссылки.
Конкурс продлится до 20.01.2012 21:00.