|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
Как опознать игрока по USERID
|
|
| CLLlAgOB | Дата: Понедельник, 07.01.2008, 03:41:48 | Сообщение # 1 |
 Полковник
Группа: Скриптеры
Сообщений: 217
Статус: Не в сети
| Вот часть кода: Code register_concmd("myac_kick","kick_now",ADMIN_LEVEL_A,"[USER_ID] [REASON]") --------------------------------------------------------------- public kick_now(id,level,cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new num[10], reas[32] read_argv(1,num,9) read_argv(2, reas, 31) remove_quotes(reas) new numb=str_to_num(num) new Frags Frags = get_user_frags(id) if(Frags >= get_cvar_num("myac_fraglimit")) { server_cmd("kick #%d ^"%s^"",numb, reas) } return PLUGIN_CONTINUE } Проблема в следующем: Не работает фраглимит (myac_fraglimit "") тк команда посылаеться на сервер через ркон и он берет тут Frags = get_user_frags(id) Айди сервера тоесть 0 и считает его фраги а у сервера всегда 0 фрагов. как сделать чтобы он считал фраги игрока номер которого отсылаеться коммандой myac_kick 3223 (пример (решетка не нужна))
Сообщение отредактировал CLLlAgOB - Понедельник, 07.01.2008, 03:43:21 |
| |
|
|
| AlMod | Дата: Понедельник, 07.01.2008, 09:18:50 | Сообщение # 2 |
|
Сонный кодер
Группа: Админы
Сообщений: 600
Статус: Не в сети
| если игрок идет первым (в параметрах команды), то он определяется так: Code read_argv(1, arg, 31) new player = cmd_target(id, arg, 6)
|
| |
|
|
| CLLlAgOB | Дата: Понедельник, 07.01.2008, 15:42:43 | Сообщение # 3 |
 Полковник
Группа: Скриптеры
Сообщений: 217
Статус: Не в сети
| Дело все в том что античит myac отсылает myac_kick 4 reason - В таком виде(Номер айди без решетки!) И если ставить : Code read_argv(1, arg, 31) new player = cmd_target(id, arg, 6) То он попросту пишет что не находит игрока стаким айди / именем я так понял нужно ковярять include? Или можно както обработать комманду добавив к ней решетку как я это сделал тут: Code server_cmd("kick #%d ^"%s^"",numb, reas) Да разговаривал с разработчиком античита он упераеться и говорит что легко обработать полученое число и подставить решетку если нужно.
|
| |
|
|
| slogic | Дата: Понедельник, 07.01.2008, 22:18:05 | Сообщение # 4 |
|
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (CLLlAgOB) То он попросту пишет что не находит игрока стаким айди / именем я так понял нужно ковярять include? угу, ничего старшного нет. мне же пришлось сделать свой cmd_target в плагине Bot Marker, чтобы по #ip искал.
|
| |
|
|
| CLLlAgOB | Дата: Среда, 09.01.2008, 08:20:03 | Сообщение # 5 |
 Полковник
Группа: Скриптеры
Сообщений: 217
Статус: Не в сети
| Ну подскажите что нужно конкретно менять чтобы он только принимал user id и без решетки я так понял ковырять нужно amxmisc.incДобавлено (2008-01-09, 7:34 Am) --------------------------------------------- Спасибо вот сделал без решетки понимает только user id Code //----------------------------------------------------------------------------- /* Flags: * 1 - obey immunity * 2 - allow yourself * 4 - must be alive * 8 - can't be bot */ stock cmd_target_id(id,const arg[],flags = 1) // extended cmd_target() to support ip { new player = find_player("bl", arg); if(player) { if (player != find_player("blj",arg)) { #if defined AMXMOD_BCOMPAT console_print(id, SIMPLE_T("There are more clients matching to your argument")); #else console_print(id,"%L",id,"MORE_CL_MATCHT"); #endif return 0; } } // NOTE: there is implicit search by authid! else if((player = find_player("c", arg)) == 0 && arg[0]) { player = find_player("k", str_to_num(arg[0])); // search by userid } if (!player) { #if defined AMXMOD_BCOMPAT console_print(id, SIMPLE_T("Client with that name, userid not found")); #else //console_print(id,"%L",id,"CL_NOT_FOUND"); console_print(id,"Client with that name, userid not found"); #endif return 0; } if(flags & 1) { if ((get_user_flags(player)&ADMIN_IMMUNITY) && ((flags&2)?(id!=player):true) ) { new imname[32]; get_user_name(player,imname,31); #if defined AMXMOD_BCOMPAT console_print(id, SIMPLE_T("Client ^"%s^" has immunity"), imname); #else console_print(id,"%L",id,"CLIENT_IMM",imname); #endif return 0; } } if(flags & 4) { if (!is_user_alive(player)) { new imname[32]; get_user_name(player,imname,31); #if defined AMXMOD_BCOMPAT console_print(id, SIMPLE_T("That action can't be performed on dead client ^"%s^""), imname); #else console_print(id,"%L",id,"CANT_PERF_DEAD",imname); #endif return 0; } } if(flags & 8) { if (is_user_bot(player)) { new imname[32]; get_user_name(player,imname,31); #if defined AMXMOD_BCOMPAT console_print(id, SIMPLE_T("That action can't be performed on bot ^"%s^""), imname); #else console_print(id,"%L",id,"CANT_PERF_BOT",imname); #endif return 0; } } return player; } //----------------------------------------------------------------------------- Добавлено (2008-01-09, 8:20 Am) --------------------------------------------- Да спасибо вам все я рад что я нашел Этот портал )
|
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |