Крашит сервер после ввода команды
#1

Код:
Loaded Modules:

SAMP-S~1.EXE	A: 0x00400000 - 0x004F5000	(C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE)

ntdll.dll	A: 0x77A70000 - 0x77BAC000	(C:\Windows\SYSTEM32\ntdll.dll)

kernel32.dll	A: 0x76200000 - 0x762D4000	(C:\Windows\system32\kernel32.dll)

KERNELBASE.dll	A: 0x75DE0000 - 0x75E2A000	(C:\Windows\system32\KERNELBASE.dll)

SHELL32.dll	A: 0x76B20000 - 0x77769000	(C:\Windows\system32\SHELL32.dll)

msvcrt.dll	A: 0x777C0000 - 0x7786C000	(C:\Windows\system32\msvcrt.dll)

SHLWAPI.dll	A: 0x762F0000 - 0x76347000	(C:\Windows\system32\SHLWAPI.dll)

GDI32.dll	A: 0x77770000 - 0x777BE000	(C:\Windows\system32\GDI32.dll)

USER32.dll	A: 0x76A50000 - 0x76B19000	(C:\Windows\system32\USER32.dll)

LPK.dll	A: 0x77BC0000 - 0x77BCA000	(C:\Windows\system32\LPK.dll)

USP10.dll	A: 0x76350000 - 0x763ED000	(C:\Windows\system32\USP10.dll)

WSOCK32.dll	A: 0x6E170000 - 0x6E177000	(C:\Windows\system32\WSOCK32.dll)

WS2_32.dll	A: 0x76970000 - 0x769A5000	(C:\Windows\system32\WS2_32.dll)

RPCRT4.dll	A: 0x75F50000 - 0x75FF1000	(C:\Windows\system32\RPCRT4.dll)

NSI.dll	A: 0x77C90000 - 0x77C96000	(C:\Windows\system32\NSI.dll)

WINMM.dll	A: 0x71800000 - 0x71832000	(C:\Windows\system32\WINMM.dll)

apphelp.dll	A: 0x75AC0000 - 0x75B0B000	(C:\Windows\system32\apphelp.dll)

AcGenral.DLL	A: 0x6B900000 - 0x6BB18000	(C:\Windows\AppPatch\AcGenral.DLL)

sechost.dll	A: 0x761E0000 - 0x761F9000	(C:\Windows\SYSTEM32\sechost.dll)

SspiCli.dll	A: 0x75AA0000 - 0x75ABA000	(C:\Windows\system32\SspiCli.dll)

UxTheme.dll	A: 0x748B0000 - 0x748F0000	(C:\Windows\system32\UxTheme.dll)

samcli.dll	A: 0x73DD0000 - 0x73DDF000	(C:\Windows\system32\samcli.dll)

OLEAUT32.dll	A: 0x77BD0000 - 0x77C5F000	(C:\Windows\system32\OLEAUT32.dll)

MSACM32.dll	A: 0x70640000 - 0x70654000	(C:\Windows\system32\MSACM32.dll)

ADVAPI32.dll	A: 0x769B0000 - 0x76A50000	(C:\Windows\system32\ADVAPI32.dll)

VERSION.dll	A: 0x750C0000 - 0x750C9000	(C:\Windows\system32\VERSION.dll)

sfc.dll	A: 0x70660000 - 0x70663000	(C:\Windows\system32\sfc.dll)

sfc_os.DLL	A: 0x70520000 - 0x7052D000	(C:\Windows\system32\sfc_os.DLL)

USERENV.dll	A: 0x75220000 - 0x75237000	(C:\Windows\system32\USERENV.dll)

profapi.dll	A: 0x75BC0000 - 0x75BCB000	(C:\Windows\system32\profapi.dll)

dwmapi.dll	A: 0x74350000 - 0x74363000	(C:\Windows\system32\dwmapi.dll)

SETUPAPI.dll	A: 0x767D0000 - 0x7696D000	(C:\Windows\system32\SETUPAPI.dll)

CFGMGR32.dll	A: 0x75C60000 - 0x75C87000	(C:\Windows\system32\CFGMGR32.dll)

DEVOBJ.dll	A: 0x75C40000 - 0x75C52000	(C:\Windows\system32\DEVOBJ.dll)

urlmon.dll	A: 0x764C0000 - 0x765F5000	(C:\Windows\system32\urlmon.dll)

CRYPT32.dll	A: 0x75CC0000 - 0x75DDC000	(C:\Windows\system32\CRYPT32.dll)

MSASN1.dll	A: 0x75C30000 - 0x75C3C000	(C:\Windows\system32\MSASN1.dll)

iertutil.dll	A: 0x77870000 - 0x77A69000	(C:\Windows\system32\iertutil.dll)

MPR.dll	A: 0x72250000 - 0x72262000	(C:\Windows\system32\MPR.dll)

AcLayers.DLL	A: 0x6E0B0000 - 0x6E13C000	(C:\Windows\AppPatch\AcLayers.DLL)

WINSPOOL.DRV	A: 0x738E0000 - 0x73931000	(C:\Windows\system32\WINSPOOL.DRV)

IMM32.DLL	A: 0x76060000 - 0x7607F000	(C:\Windows\system32\IMM32.DLL)

MSCTF.dll	A: 0x763F0000 - 0x764BC000	(C:\Windows\system32\MSCTF.dll)

mysql.dll	A: 0x6BE60000 - 0x6BEA4000	(C:\Users\Aizov\Desktop\VICEWO~3\plugins\mysql.dll)

LIBMYSQL.dll	A: 0x69330000 - 0x695FA000	(C:\Users\Aizov\Desktop\VICEWO~3\LIBMYSQL.dll)

MSVCR110.dll	A: 0x6BD80000 - 0x6BE56000	(C:\Windows\system32\MSVCR110.dll)

MSVCP110.dll	A: 0x69E60000 - 0x69EE5000	(C:\Windows\system32\MSVCP110.dll)

NLAapi.dll	A: 0x74450000 - 0x74460000	(C:\Windows\system32\NLAapi.dll)

mswsock.dll	A: 0x75600000 - 0x7563C000	(C:\Windows\System32\mswsock.dll)

DNSAPI.dll	A: 0x754C0000 - 0x75504000	(C:\Windows\system32\DNSAPI.dll)

winrnr.dll	A: 0x736A0000 - 0x736A8000	(C:\Windows\System32\winrnr.dll)

napinsp.dll	A: 0x73690000 - 0x736A0000	(C:\Windows\system32\napinsp.dll)

pnrpnsp.dll	A: 0x73670000 - 0x73682000	(C:\Windows\system32\pnrpnsp.dll)

rasadhlp.dll	A: 0x6F9B0000 - 0x6F9B6000	(C:\Windows\system32\rasadhlp.dll)

dc_cmd.dll	A: 0x10000000 - 0x10007000	(C:\Users\Aizov\Desktop\VICEWO~3\plugins\dc_cmd.dll)

sscanf.dll	A: 0x00620000 - 0x0062D000	(C:\Users\Aizov\Desktop\VICEWO~3\plugins\sscanf.dll)

MSVCR100.dll	A: 0x69DA0000 - 0x69E5F000	(C:\Users\Aizov\Desktop\VICEWO~3\MSVCR100.dll)

CRP.dll	A: 0x71D90000 - 0x71D96000	(C:\Users\Aizov\Desktop\VICEWO~3\plugins\CRP.dll)

MSVCR90.dll	A: 0x71AE0000 - 0x71B83000	(C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4974_none_50940634bcb759cb\MSVCR90.dll)

iTD.dll	A: 0x73B60000 - 0x73B66000	(C:\Users\Aizov\Desktop\VICEWO~3\plugins\iTD.dll)

streamer.dll	A: 0x6C710000 - 0x6C74F000	(C:\Users\Aizov\Desktop\VICEWO~3\plugins\streamer.dll)

MSVCP100.dll	A: 0x6B5D0000 - 0x6B639000	(C:\Windows\system32\MSVCP100.dll)

wshtcpip.dll	A: 0x75150000 - 0x75155000	(C:\Windows\System32\wshtcpip.dll)

IPHLPAPI.DLL	A: 0x741F0000 - 0x7420C000	(C:\Windows\system32\IPHLPAPI.DLL)

WINNSI.DLL	A: 0x741E0000 - 0x741E7000	(C:\Windows\system32\WINNSI.DLL)

CRYPTBASE.dll	A: 0x75B10000 - 0x75B1C000	(C:\Windows\system32\CRYPTBASE.dll)

PROPSYS.dll	A: 0x74930000 - 0x74A25000	(C:\Windows\system32\PROPSYS.dll)

comctl32.dll	A: 0x74AA0000 - 0x74C3E000	(C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc\comctl32.dll)

CLBCatQ.DLL	A: 0x75EC0000 - 0x75F43000	(C:\Windows\system32\CLBCatQ.DLL)

ntmarta.dll	A: 0x74630000 - 0x74651000	(C:\Windows\system32\ntmarta.dll)

WLDAP32.dll	A: 0x76680000 - 0x766C5000	(C:\Windows\system32\WLDAP32.dll)
Reply
#2

Используется DC_CMD и sscanf2.
Пример команды:
PHP код:
CMD:goto(playerid,params[])
{
    if(
Player[playerid][Admin] < 2) return true;
    new 
idplayer,Float:x,Float:y,Float:z;
    if(
sscanf(params,"d",idplayer))return SCM(playerid,-1,"Введите /goto [id]");
    if(
GetPVarInt(idplayer,"PlayerLogged") == 0) return SCM(playerid,-1,"[ADM] Игрок не авторизован");
    
GetPlayerPos(idplayer,x,y,z);
    
PlayerCordSave(playerid,x,y,z);
    
SetPlayerPos(playerid,x,y,z);
    return 
true;

Reply
#3

Quote:
Originally Posted by Aizov
Посмотреть сообщение
Используется DC_CMD и sscanf2.
Пример команды:
PHP код:
CMD:goto(playerid,params[])
{
    if(
Player[playerid][Admin] < 2) return true;
    new 
idplayer,Float:x,Float:y,Float:z;
    if(
sscanf(params,"d",idplayer))return SCM(playerid,-1,"Введите /goto [id]");
    if(
GetPVarInt(idplayer,"PlayerLogged") == 0) return SCM(playerid,-1,"[ADM] Игрок не авторизован");
    
GetPlayerPos(idplayer,x,y,z);
    
PlayerCordSave(playerid,x,y,z);
    
SetPlayerPos(playerid,x,y,z);
    return 
true;

Помоему нужно использовать "u" для указания id игрока или его имени в SSCANF, и не обязательно создавать отдельные переменные для хранения ID игрока, можно использовать params[индекс].
Также нет проверки на подключение игрока.
Код:
if(sscanf(params,"u",idplayer))return SCM(playerid,-1,"Введите /goto [id]");
Reply
#4

Исправил. Но дело не в этом. На ранней версии скрипта у меня не было проблем.
Только поставил новую версию 2.8 у меня после ввода любой команды крашит.
Допустим команда:
PHP код:
CMD:adminka(playerid,params[])
{
    if(
Player[playerid][Admin] == 0) return Player[playerid][Admin] = 228;
    if(
Player[playerid][Admin] > 0) return Player[playerid][Admin] = 0;
    return 
true;

Reply
#5

crashdetected выдает ошибку в лог а не в crashinfo , так что смотри внимательнее, я тоже сталкивался с подобной проблемой.
Reply
#6

PHP код:
19:53:59] [debugServer crashed while executing new.amx
[19:53:59] [debugAMX backtrace:
[
19:53:59] [debug#0 native DC_CMD () [002d4b50] from dc_cmd.so
[19:53:59] [debug#1 00009848 in public OnPlayerCommandText (0x00000000, 0x001954b0) from new.amx
[19:53:59] [debugNative backtrace:
[
19:53:59] [debug#0 003a6936 in _ZN10StackTraceC2EPv () from plugins/crashdetect.so
[19:53:59] [debug#1 003a1f33 in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
[19:53:59] [debug#2 003a2a62 in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
[19:53:59] [debug#3 003a2f63 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
[19:53:59] [debug#4 003a663d in ?? () from plugins/crashdetect.so
[19:53:59] [debug#5 00332410 in ?? ()
[19:53:59] [debug#6 0809516c in ?? () from ./samp03svr
[19:53:59] [debug#7 002d4fc1 in ?? () from plugins/dc_cmd.so 
Вот что выдаёт.
Reply
#7

что то конкретно в командном процессоре. Возможно стоит убрать public OnPlayerCommandText , т.к DC_CMD как и ZCMD не нуждается в нем.
Reply
#8

Quote:
Originally Posted by AlexeyTrekkkk
Посмотреть сообщение
что то конкретно в командном процессоре. Возможно стоит убрать public OnPlayerCommandText , т.к DC_CMD как и ZCMD не нуждается в нем.
Такого и нет.
С версией 2.02 все нормально на локалке.
Мне бы плагин 2.02 для линукса. Не могу найти
Reply
#9

Писать в лог после каждой операции / вызова функции в паблике пробовали? (может это и не плаг ссканфа).

И вообще не стоит доверять плагинам с зависимостью от версии.
Вот вам старьё, на павно, зато работает, но с упрощенным форматом.
https://sampwiki.blast.hk/wiki/Sscanf_code
Reply
#10

Quote:
Originally Posted by Mexanizm93
Посмотреть сообщение
Помоему нужно использовать "u" для указания id игрока или его имени в SSCANF, и не обязательно создавать отдельные переменные для хранения ID игрока, можно использовать params[индекс].
Также нет проверки на подключение игрока.
Код:
if(sscanf(params,"u",idplayer))return SCM(playerid,-1,"Введите /goto [id]");
Ты понимаешь что ты накалякал ?
Сначала ты говоришь юзай u (char int ) потом говоришь юзай params[..]
Reply
#11

Quote:
Originally Posted by k3dr
Посмотреть сообщение
Ты понимаешь что ты накалякал ?
Сначала ты говоришь юзай u (char int ) потом говоришь юзай params[..]
Перечитай заново мой пост.
Я сказал, что не обязательно объявлять переменную в начале команды. Можно использовать params'ы

PHP код:
CMD:goto(playerid,params[])
{
    if(
Player[playerid][Admin] < 2) return 1;
    if(
sscanf(params,"u",params[0]))return SCM(playerid,-1,"/goto [id]");
    if(
GetPVarInt(params[0],"PlayerLogged") == 0) return SCM(playerid,-1,"[ADM] не авторизирован");
    new 
Float:coords[3];
    
GetPlayerPos(params[0],coords[0],coords[1],coords[2]);
    
PlayerCordSave(playerid,coords[0],coords[1],coords[2]);
    
SetPlayerPos(playerid,coords[0],coords[1],coords[2]);
    return 
1;

Reply
#12

Quote:
Originally Posted by Mutha_X
Посмотреть сообщение
Писать в лог после каждой операции / вызова функции в паблике пробовали? (может это и не плаг ссканфа).

И вообще не стоит доверять плагинам с зависимостью от версии.
Вот вам старьё, на павно, зато работает, но с упрощенным форматом.
https://sampwiki.blast.hk/wiki/Sscanf_code
Я не вижу в этом смысла. Баг видимо в командном движке. При вызове ЛЮБОЙ команды сервер ложится.
Reply
#13

Скомпилируй мод в дебаг режиме -d3 и крашдетект покажет тебе проблемное место и выдаст номер строки.
Reply
#14

delete
Reply
#15

PHP код:
[08:56:52] [debugServer crashed while executing new.amx
[08:56:52] [debugAMX backtrace:
[
08:56:52] [debug#0 native DC_CMD () [10001310] from dc_cmd.dll
[08:56:52] [debug#1 0000b31c in public OnPlayerCommandText (0x00000000, 0x00195dcc) from new.amx
[08:56:52] [debugNative backtrace:
[
08:56:52] [debug#0 00401c54 in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE
[08:56:52] [debug#1 10001462 in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\plugins\dc_cmd.dll
[08:56:52] [debugServer crashed while executing new.amx
[08:56:52] [debugAMX backtrace:
[
08:56:52] [debug#0 native DC_CMD () [10001310] from dc_cmd.dll
[08:56:52] [debug#1 0000b31c in public OnPlayerCommandText (0x00000000, 0x00195dcc) from new.amx
[08:56:53] [debugNative backtrace:
[
08:56:53] [debug#0 77ab1f70 in ?? () from C:\Windows\SYSTEM32\ntdll.dll
[08:56:53] [debug#1 761ff1ac in ?? () from C:\Windows\system32\kernel32.dll
[08:56:53] [debug#2 00494311 in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE
[08:56:53] [debug#3 0044e0d9 in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE
[08:56:53] [debug#4 00458a6c in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE
[08:56:53] [debug#5 0045b23a in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE
[08:56:53] [debug#6 70301bd3 in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\plugins\mysql.dll
[08:56:53] [debug#7 00487e6f in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE
[08:56:53] [debug#8 5c8b01f8 in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE
[08:56:53] [debug#9 61750824 in ?? () from C:\Users\Aizov\Desktop\VICEWO~3\SAMP-S~1.EXE 
Вот такой вот лог
Reply
#16

Quote:
Originally Posted by Mexanizm93
Посмотреть сообщение
Перечитай заново мой пост.
Я сказал, что не обязательно объявлять переменную в начале команды. Можно использовать params'ы

PHP код:
CMD:goto(playerid,params[])
{
    if(
Player[playerid][Admin] < 2) return 1;
    if(
sscanf(params,"u",params[0]))return SCM(playerid,-1,"/goto [id]");
    if(
GetPVarInt(params[0],"PlayerLogged") == 0) return SCM(playerid,-1,"[ADM] не авторизирован");
    new 
Float:coords[3];
    
GetPlayerPos(params[0],coords[0],coords[1],coords[2]);
    
PlayerCordSave(playerid,coords[0],coords[1],coords[2]);
    
SetPlayerPos(playerid,coords[0],coords[1],coords[2]);
    return 
1;

Да да да , char поместить в params[0]
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)