PDA

Просмотр полной версии : [Вопрос] Вылет сервера после несуществующей команды.



DoN_SancheS
15.01.2017, 18:52
Друзья, на сервере всё отлично работает, но хватит мне написать несуществующую команду например /makehelper 7
и сервер тут же вылетает, и есть еще кое что, если просто написать /makehelper нечего не случится но если после /makehelper написать хоть одну букву или цифру то сразу сервер отключается.

[17:47:27] [debug] Server crashed while executing new.amx
[17:47:27] [debug] AMX backtrace:
[17:47:27] [debug] #0 native DC_CMD () from dc_cmd.so
[17:47:27] [debug] #1 0000c5d8 in public OnPlayerCommandText (playerid=0, cmdtext[]=@00146418 "/MAKEHELPER L") at C:\Users\Karen\Desktop\SERERON\pawno\include\dc_cmd.inc:28
[17:47:27] [debug] Native backtrace:
[17:47:27] [debug] #0 f7460ca0 in _Z13GetStackTraceRSt6vectorI10StackFrameSaIS0_EEPv () from plugins/crashdetect.so
[17:47:27] [debug] #1 f7459d22 in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[17:47:27] [debug] #2 f745a314 in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[17:47:27] [debug] #3 f745c964 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[17:47:27] [debug] #4 f74605cd in ?? () from plugins/crashdetect.so
[17:47:27] [debug] #5 f774c420 in ?? ()
[17:47:27] [debug] #6 f77483ee in ?? () from plugins/dc_cmd.so
[17:47:27] [debug] #7 080950b4 in ?? () from ./samp03svr
[17:47:27] [debug] #8 f745b7b3 in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
[17:47:27] [debug] #9 00146418 in ?? () from `hq÷fq÷\Z3 \Z3 ]\3 \Z3 Ò\3 \^3 4ãq÷

qwezert
15.01.2017, 22:59
Друзья, на сервере всё отлично работает, но хватит мне написать несуществующую команду например /makehelper 7
и сервер тут же вылетает, и есть еще кое что, если просто написать /makehelper нечего не случится но если после /makehelper написать хоть одну букву или цифру то сразу сервер отключается.

[17:47:27] [debug] Server crashed while executing new.amx
[17:47:27] [debug] AMX backtrace:
[17:47:27] [debug] #0 native DC_CMD () from dc_cmd.so
[17:47:27] [debug] #1 0000c5d8 in public OnPlayerCommandText (playerid=0, cmdtext[]=@00146418 "/MAKEHELPER L") at C:\Users\Karen\Desktop\SERERON\pawno\include\dc_cmd.inc:28
[17:47:27] [debug] Native backtrace:
[17:47:27] [debug] #0 f7460ca0 in _Z13GetStackTraceRSt6vectorI10StackFrameSaIS0_EEPv () from plugins/crashdetect.so
[17:47:27] [debug] #1 f7459d22 in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[17:47:27] [debug] #2 f745a314 in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[17:47:27] [debug] #3 f745c964 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[17:47:27] [debug] #4 f74605cd in ?? () from plugins/crashdetect.so
[17:47:27] [debug] #5 f774c420 in ?? ()
[17:47:27] [debug] #6 f77483ee in ?? () from plugins/dc_cmd.so
[17:47:27] [debug] #7 080950b4 in ?? () from ./samp03svr
[17:47:27] [debug] #8 f745b7b3 in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
[17:47:27] [debug] #9 00146418 in ?? () from `hq÷fq÷\Z3 \Z3 ]\3 \Z3 Ò\3 \^3 4ãq÷

Наверно потому что нужно делать проверку на разрешенные символы для ввода в конкретной команде?
самая распространенная - if(sscanf())

DoN_SancheS
16.01.2017, 14:32
Наверно потому что нужно делать проверку на разрешенные символы для ввода в конкретной команде?
самая распространенная - if(sscanf())

ну например где? как? (прости просто ты уже наверное понял что я пока мало знаю в pawn)

qwezert
16.01.2017, 17:41
ну например где? как? (прости просто ты уже наверное понял что я пока мало знаю в pawn)

К примеру как это реализовано у меня
Каманда выдачи админки

CMD:setadmin(playerid,params[] )
{
new targetid,level;
if(IsAdmin(playerid) < 5 ) return 1;
if(sscanf(params,"ud",targetid,level)) return SCM(playerid,0,"Введите /setadmin [id] [lvl]"); // Вот тут ты проверяешь данные которые //вводит игрок после самой команды /setadmin через пробел. Если он ввел данные неверного формата(к примеру вместо цифр - буквы)
//ему придет сообщение о том что он неверно ввел данные
......
return 1;
}

DoN_SancheS
17.01.2017, 15:53
К примеру как это реализовано у меня
Каманда выдачи админки

CMD:setadmin(playerid,params[] )
{
new targetid,level;
if(IsAdmin(playerid) < 5 ) return 1;
if(sscanf(params,"ud",targetid,level)) return SCM(playerid,0,"Введите /setadmin [id] [lvl]"); // Вот тут ты проверяешь данные которые //вводит игрок после самой команды /setadmin через пробел. Если он ввел данные неверного формата(к примеру вместо цифр - буквы)
//ему придет сообщение о том что он неверно ввел данные
......
return 1;
}

Ясно, спасибо

- - - Добавлено - - -


К примеру как это реализовано у меня
Каманда выдачи админки

CMD:setadmin(playerid,params[] )
{
new targetid,level;
if(IsAdmin(playerid) < 5 ) return 1;
if(sscanf(params,"ud",targetid,level)) return SCM(playerid,0,"Введите /setadmin [id] [lvl]"); // Вот тут ты проверяешь данные которые //вводит игрок после самой команды /setadmin через пробел. Если он ввел данные неверного формата(к примеру вместо цифр - буквы)
//ему придет сообщение о том что он неверно ввел данные
......
return 1;
}

Но у меня везде есть if(sscanf,
Проблема не в этом, и кажется ты не понял меня, я говорю вылет после любой не существующей команды + если есть пробел например /awdwafwafwad 78 (будет вылет) но вот если просто написать /awdwafwafwad то ни че не будет, но спасибо за помощь

qwezert
17.01.2017, 15:58
Ясно, спасибо

- - - Добавлено - - -



Но у меня везде есть if(sscanf,
Проблема не в этом, и кажется ты не понял меня, я говорю вылет после любой не существующей команды + если есть пробел например /awdwafwafwad 78 (будет вылет) но вот если просто написать /awdwafwafwad то ни че не будет, но спасибо за помощь

код паблика OnPlayerCommandText скинь.

DoN_SancheS
17.01.2017, 20:33
код паблика OnPlayerCommandText скинь.


publics OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(success == -1)
{
return OnPlayerCommandText(playerid, cmdtext);
}
return 1;
}

А ещё

publics OnPlayerCommandText(playerid, cmdtext[])
{
return true;
}

Seviel
17.01.2017, 21:04
publics OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if(success == -1)
{
return SendClientMessage(playerid, -1, "Такой команды нет");
}
return 1;
}
Попробуй так

DoN_SancheS
18.01.2017, 19:51
Попробуй так

Не помог, но спасибо, рейтинг всё равно подниму. (вам обеим)

vovandolg
20.01.2017, 21:57
Почему нельзя просто скинуть код?
Почему нельзя написать версию плагинов движка кмд и sscanf который комбинируется там?

DoN_SancheS
22.01.2017, 14:15
Почему нельзя просто скинуть код?
Почему нельзя написать версию плагинов движка кмд и sscanf который комбинируется там?

версии плагинов все последние (sscanf streamer crashdetect) но только dc_cmd 1.0 version,
И про какой код ты друг?

vovandolg
22.01.2017, 14:32
Ну во первых обнови dc_cmd до последней версии, тут на форуме в разделе разработок поищи,
во вторых попробуй так:


public OnPlayerCommandText(playerid, cmdtext[])
{
return false;
}

DoN_SancheS
22.01.2017, 20:39
Ну во первых обнови dc_cmd до последней версии, тут на форуме в разделе разработок поищи,
во вторых попробуй так:


public OnPlayerCommandText(playerid, cmdtext[])
{
return false;
}


Спасибо, а dc_cmd обновить не могу, мод не допускает появляются warning-и и Error-и, да может это от меня но я менял версии dc_cmd на разных модах было ок.

Long-
22.01.2017, 21:10
Спасибо, а dc_cmd обновить не могу, мод не допускает появляются warning-и и Error-и, да может это от меня но я менял версии dc_cmd на разных модах было ок.

Ну если ты хочешь вылетов - пожалуйста, не обновляй.
Если не хочешь, обнови инклуд и плагин до последний версии, warnings исправь.

DoN_SancheS
23.01.2017, 20:53
Ну если ты хочешь вылетов - пожалуйста, не обновляй.
Если не хочешь, обнови инклуд и плагин до последний версии, warnings исправь.

Ох ну какой же ты умный, чтобы обновить их с 1.0 версии на последнюю нужно потом менять макросы что и приводит к варнингам, я их написал тут но ни кто не обращал на это внимание, а ты тут такой умный будто бы я знаю как убрать врнинги но тупо не убираю.

DeimoS
23.01.2017, 21:05
Ну так разберись как их убрать и убери.
С чего ты взял, что у нас есть желание исправлять варнинги в твоём коде, когда ты сам ни капли усилий не приложил к их исправлению?

DoN_SancheS
23.01.2017, 22:20
Ну так разберись как их убрать и убери.
С чего ты взял, что у нас есть желание исправлять варнинги в твоём коде, когда ты сам ни капли усилий не приложил к их исправлению?

Ну вот ты сейчас опять не понял меня, я не говорю что кто то должен исправить их, я говорю что если бы сумел их исправить то исправил бы уже давно, зачем мне попросить кого то дать мне решение на то что я сам уже умею?

- - - Добавлено - - -


Ну во первых обнови dc_cmd до последней версии, тут на форуме в разделе разработок поищи,
во вторых попробуй так:


public OnPlayerCommandText(playerid, cmdtext[])
{
return false;
}


Друг спасибо тебе, ты всегда уделяешь мне внимание и всегда пытаешься помочь,
Но мне не повезло с этим багом, и твой способ тоже не помог.

vovandolg
24.01.2017, 07:18
Возьми пустой grandlarenc открой впиши туда инклуд с dc_cmd и подключи все эти кишки с логами, потом проверь будут ли ошибки, сам удивишься что дело в твоем моде, может просто ты какой то аналоговый движок или скрипт не отключил который с движками кмд связан, вот и ругается на всю эту кривую картину.

DoN_SancheS
24.01.2017, 14:58
Возьми пустой grandlarenc открой впиши туда инклуд с dc_cmd и подключи все эти кишки с логами, потом проверь будут ли ошибки, сам удивишься что дело в твоем моде, может просто ты какой то аналоговый движок или скрипт не отключил который с движками кмд связан, вот и ругается на всю эту кривую картину.

Друг я знаю что дело в моём моде, но не как не могу найти где именно проблема, Тебе огромное спасибо.

- - - Добавлено - - -

Тему можете закрыть, я так понял что ни у кого не было такой ошибки что и означает что дело именно в моём моде что и означает что ни кто тут не сможет мне помочь

vovandolg
24.01.2017, 18:48
Если бы ты выложил свою кучу ошибок в раздел ошибок тебе бы не кто не выписал штраф.
Кто то свободный бы и помог бы может.