|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
почему не обновляются данные в данном скрипте
|
|
| Brute | Дата: Вторник, 05.08.2008, 05:35:30 | Сообщение # 1 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| сабж... Code #include <amxmodx>
#define PLUGIN "Show Players Info for CS-Infinity.Ru" #define VERSION "1.5.0.1" #define AUTHOR "Brute"
#define MAX_BUFFER_LENGTH 2047 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_cvar("amx_show_ip", "1") register_clcmd("all","PrintAllToConsole") register_clcmd("say", "Check_Command_PlayerListTOMotd") register_clcmd("say_team", "Check_Command_PlayerListTOMotd") } public Check_Command_PlayerListTOMotd(id) { if(get_cvar_num("amx_show_ip") == 1) { new arg[32] read_argv(1, arg, 31) if(equali(arg, "/all") || equali(arg, " /all") || equali(arg, "/all ") || equali(arg, " /all ")) { set_task(1.0, "PlayerListTOMotd", id) } } else { client_print(id, print_chat, "[Brute]: This plugin is switched off") } return PLUGIN_CONTINUE }
public PlayerListTOMotd(id) { if(get_cvar_num("amx_show_ip") == 1) { new szMotdBody[MAX_BUFFER_LENGTH+1], len = 0, number = 0 len = format(szMotdBody, MAX_BUFFER_LENGTH, "<body bgcolor=#000000><font color=#FFB000><pre>") len += format(szMotdBody[len], MAX_BUFFER_LENGTH-len, "Player list^n") new name[32], authid[32], address[32], players[32], pnum;
get_players(players, pnum, "h") for(new i=0; i<pnum; i++) { new iPlayer = get_user_userid(players[i]) if(is_user_connected(iPlayer)) continue
number++ get_user_name(players[i], name, 31); get_user_authid(players[i], authid, 31); get_user_ip(players[i], address, 31); len += format(szMotdBody[len], MAX_BUFFER_LENGTH-len, "^n^n[%d]----^nname: %s^nauthid: %s^naddress: %s", number, name, authid, address); } show_motd(id, szMotdBody, "MOTD:PLAYERS INFO"); } }
public PrintAllToConsole(id) { if(get_cvar_num("amx_show_ip") == 1) { new number = 0 client_print(id, print_console, "Player list") new name[32], authid[32], address[32], players[32], pnum; get_players(players, pnum, "h") for(new i=0; i<pnum; i++) { new iPlayer = get_user_userid(players[i]) if(is_user_connected(iPlayer)) continue number++ get_user_name(players[i], name, 31) get_user_authid(players[i], authid, 31) get_user_ip(players[i], address, 31, 1)
client_print(id, print_console, "[%d]----", number) client_print(id, print_console, "name: %s", name) client_print(id, print_console, "authid: %s", authid) client_print(id, print_console, "address: %s", address) } } return PLUGIN_HANDLED } Больше всего волнует эта процедура. Code public PrintAllToConsole(id) { if(get_cvar_num("amx_show_ip") == 1) { new number = 0 client_print(id, print_console, "Player list") new name[32], authid[32], address[32], players[32], pnum; get_players(players, pnum, "h") for(new i=0; i<pnum; i++) { new iPlayer = get_user_userid(players[i]) if(is_user_connected(iPlayer)) continue number++ get_user_name(players[i], name, 31) get_user_authid(players[i], authid, 31) get_user_ip(players[i], address, 31, 1)
client_print(id, print_console, "[%d]----", number) client_print(id, print_console, "name: %s", name) client_print(id, print_console, "authid: %s", authid) client_print(id, print_console, "address: %s", address) } } return PLUGIN_HANDLED }
Сообщение отредактировал Brute - Вторник, 05.08.2008, 05:36:30 |
| |
|
|
| slogic | Дата: Вторник, 05.08.2008, 13:49:03 | Сообщение # 2 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Тут ошибка: Quote (Brute) new iPlayer = get_user_userid(players[i]) if(is_user_connected(iPlayer)) players[i] - и есть id игрока, который надо передавать во все функции amx/x.
|
| |
|
|
| Brute | Дата: Вторник, 05.08.2008, 13:55:52 | Сообщение # 3 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Quote (slogic) new iPlayer = get_user_userid(players[i]) if(is_user_connected(iPlayer)) если эту операцию не делать-то вообще по нолям будет, сам попробуй-я сам не втыкаю, что за...
|
| |
|
|
| marikcool | Дата: Вторник, 05.08.2008, 15:05:52 | Сообщение # 4 |
|
Подполковник
Группа: Пользователи
Сообщений: 139
Статус: Не в сети
| )) счас поковыряю)
Сообщение отредактировал marikcool - Вторник, 05.08.2008, 15:09:40 |
| |
|
|
| slogic | Дата: Среда, 06.08.2008, 12:59:51 | Сообщение # 5 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Ну пойдем дальше: Code if(is_user_connected(iPlayer)) continue Вопросы еще есть по своему собственному коду?
|
| |
|
|
| Brute | Дата: Среда, 06.08.2008, 13:04:39 | Сообщение # 6 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Короче я эту проверку на подключенность клиента к серверу кинул в топку. И всё работает, думаю ошибок плагин кидать не будет. Т.к. get_players(players, pnum, "h") - эта штука итак проверяет подключен ли клиент или нет.
|
| |
|
|
| slogic | Дата: Среда, 06.08.2008, 22:43:13 | Сообщение # 7 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| То условие делало вот что - если клиент подключен, то дальше НИЧЕГО НЕ ВЫПОЛНЯЛОСЬ, что и происходило всегда.
|
| |
|
|
| Brute | Дата: Четверг, 07.08.2008, 08:14:37 | Сообщение # 8 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Quote (slogic) То условие делало вот что - если клиент подключен, то дальше НИЧЕГО НЕ ВЫПОЛНЯЛОСЬ, что и происходило всегда. Очень интересно, т.е. я не хрена не понимаю , может пояснить, плз.
|
| |
|
|
| slogic | Дата: Четверг, 07.08.2008, 12:50:19 | Сообщение # 9 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Оператор continue прерывает выполнение остатка тела цикла и начинает новую итерацию (новый цикл).
|
| |
|
|
| Brute | Дата: Четверг, 07.08.2008, 13:33:42 | Сообщение # 10 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Quote (slogic) Оператор continue прерывает выполнение остатка тела цикла и начинает новую итерацию (новый цикл). тоесть цикл прервётся... И как же делать, чтобы не рвать цикл?
|
| |
|
|
| slogic | Дата: Четверг, 07.08.2008, 14:48:19 | Сообщение # 11 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Выкинуть то условие, что ты и сделал или поменять логику на обратную, чтобы остаток цикла НЕ выполнялся, если клиент НЕ подключен.
|
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |