|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
проверте плагин
|
|
| fukan | Дата: Понедельник, 10.12.2007, 16:05:39 | Сообщение # 1 |
 Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Не в сети
| я на днях написал маленький плагин который делает knife round посте команды say /knife но при компиле каккаято ошибка, проверте плиз на правильность кода Code #include <amxmodx> #include <amxmisc> #include <fun>
new name[18]
public plugin_init() { register_plugin("KnifeRound", "1.0", "xPaw") register_clcmd("say /knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round") register_concmd("amx_knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round") }
public cmd_knives(id) { get_user_name(id, name, 17) client_cmd(0,"spk ^"fvox/five four three two one ^"") set_task(1.0, "restart_round", 0, "1", 1) client_print(0, print_chat, "ADMIN %s: executed knife round", name) set_task(3.0, "strip_weapons") set_task(4.0, "knife_msg") return PLUGIN_CONTINUE }
public strip_weapons() { new plist_public[32], pnum_public get_players(plist_public, pnum_public) for (new i = 0; i < pnum_public; i++) { if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){ strip_user_weapons(plist_public[i]) give_item(plist_public[i], "weapon_knife") } } }
public restart_round(seconds[]) { server_cmd("sv_restartround %s", seconds)
return PLUGIN_CONTINUE }
public knife_msg() { set_hudmessage(0, 255, 100, -1.0, 0.2, 0, 6.0, 6.0) show_hudmessage(0, "--- Knife round - Knife round - Knife round ---") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_cmd(0,"speak ^"barney/letsgo^"") return PLUGIN_CONTINUE } он ругается на 21 строку, а на ней return PLUGIN_CONTINUE
Сообщение отредактировал fukan - Понедельник, 10.12.2007, 16:39:11 |
| |
|
|
| slogic | Дата: Понедельник, 10.12.2007, 16:39:01 | Сообщение # 2 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| нет там ошибок
|
| |
|
|
| fukan | Дата: Понедельник, 10.12.2007, 16:41:17 | Сообщение # 3 |
 Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Не в сети
| одна всетаки есть, вот скрин и проверь плиз на правильность кода, может чето лишнее написал
|
| |
|
|
| slogic | Дата: Понедельник, 10.12.2007, 16:42:17 | Сообщение # 4 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| еще раз говорю - ошибок нет. это не ошибка, а предупреждение, что всего-лишь кривой отступ.
|
| |
|
|
| fukan | Дата: Понедельник, 10.12.2007, 17:01:46 | Сообщение # 5 |
 Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Не в сети
| и еще когда в консоли пишеш amx_knife, он выполняет функцию но в консоли выдает Unknown command: amx_knife -------- и как зделать чтобы у всех деньги стали 0$ каккая функция отвечает за деньги на плеере Добавлено (2007-12-10, 5:01 Pm) --------------------------------------------- все с деньгами разобрался, теперь бы разобратся с Unknown command
Сообщение отредактировал fukan - Понедельник, 10.12.2007, 16:49:30 |
| |
|
|
| AlMod | Дата: Понедельник, 10.12.2007, 18:07:44 | Сообщение # 6 |
|
Сонный кодер
Группа: Админы
Сообщений: 600
Статус: Не в сети
| Я вижу ты совсем не понимаешь чо делает return PLUGIN_HANDLED и return PLUGIN_CONTINUE. ты их лепишь везде где ни попади, причем зря Щас объясню. Хэндлед ставится если тебе нужно прервать выполнение, континью - если оставить без изменений. Обычно это все ставится в хуках эвентах и юзер-командах. т.е. н-р в конце процедуры, которая у тебя отвечает за amx_knife надо нарисовать в конце return PLUGIN_HANDLED. Воообщем смотри, твой код из 1го поста с комментариями: Quote #include <amxmodx> #include <amxmisc> #include <fun> new name[18] // эту переменную надо задавать локально, там где она используется. public plugin_init() { register_plugin("KnifeRound", "1.0", "xPaw") register_clcmd("say /knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round") register_concmd("amx_knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round") } public cmd_knives(id) { get_user_name(id, name, 17) client_cmd(0,"spk ^"fvox/five four three two one ^"") set_task(1.0, "restart_round", 0, "1", 1) // Имхо, тут вообще бред написан. Учи параметры у set_task client_print(0, print_chat, "ADMIN %s: executed knife round", name) set_task(3.0, "strip_weapons") // Аналогично set_task(4.0, "knife_msg") // Аналогично return PLUGIN_CONTINUE // Заменить на return PLUGIN_HANDLED } public strip_weapons() { new plist_public[32], pnum_public get_players(plist_public, pnum_public) for (new i = 0; i < pnum_public; i++) { if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){ // Это булевы функции, писать ==1 не обязательно strip_user_weapons(plist_public[i]) give_item(plist_public[i], "weapon_knife") } } } public restart_round(seconds[]) { // Имхо, лучше передавать цифрой или единичным массивом параметров server_cmd("sv_restartround %s", seconds) return PLUGIN_CONTINUE // Это лишнее, не нужно здесь } public knife_msg() { set_hudmessage(0, 255, 100, -1.0, 0.2, 0, 6.0, 6.0) show_hudmessage(0, "--- Knife round - Knife round - Knife round ---") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_cmd(0,"speak ^"barney/letsgo^"") return PLUGIN_CONTINUE // Это лишнее, не нужно здесь }
|
| |
|
|
| fukan | Дата: Вторник, 11.12.2007, 16:11:44 | Сообщение # 7 |
 Рядовой
Группа: Пользователи
Сообщений: 8
Статус: Не в сети
| ну вот я немного проправил, и зделал как ты писал, спасибо за подробное обьяснение, а как место settask зделать ? вот как я щас зделал Code #include <amxmodx> #include <amxmisc> #include <fun> #include <cstrike>
new name[18]
public plugin_init() { register_plugin("KnifeRound", "1.0", "xPaw") register_clcmd("say /knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round") register_concmd("amx_knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round") }
public cmd_knives(id) { get_user_name(id, name, 17) log_amx("%s executes kniferound", name) client_print(0, print_chat, "ADMIN %s: executed knife round", name) server_cmd("sv_restartround 5") client_cmd(0,"spk ^"fvox/five four three two one ^"") set_task(3.0, "strip_weapons") set_task(4.0, "knife_msg") return PLUGIN_HANDLED }
public strip_weapons() { new plist_public[32], pnum_public get_players(plist_public, pnum_public) for (new i = 0; i < pnum_public; i++) { if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){ strip_user_weapons(plist_public[i]) give_item(plist_public[i], "weapon_knife") cs_set_user_money(plist_public[i], 0) } } }
public restart_round() { server_cmd("sv_restartround 1") }
public knife_msg() { set_hudmessage(0, 255, 100, -1.0, 0.2, 0, 6.0, 6.0) show_hudmessage(0, "--- Knife round - Knife round - Knife round ---") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round") client_cmd(0,"speak ^"barney/letsgo^"") }
Сообщение отредактировал fukan - Вторник, 11.12.2007, 16:16:09 |
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |