PDA

Просмотр полной версии : [Вопрос] По поводу DC_CMD



nikvlad
13.05.2017, 23:08
Как вызвать команду из мода с 2+ параметрами???

Пробую так - вырубает сервер:


new param_str[128];
format(param_str, sizeof(param_str), "%d %s",pbNumbers[GetPVarInt(playerid,"phonebook")] , inputtext);
printf("%s",param_str);
cmd::sms(playerid, param_str);

DeimoS
13.05.2017, 23:15
В консоль что выводит, если вот так сделать

new param_str[128];
format(param_str, sizeof(param_str), "%d %s",pbNumbers[GetPVarInt(playerid,"phonebook")] , inputtext);
printf("|%s|",param_str);
cmd::sms(playerid, param_str);

Alpano
13.05.2017, 23:28
На будущее, вместо конструкции:

printf("%s",param_str);
можно писать:

print(param_str);

nikvlad
14.05.2017, 10:32
В консоль что выводит, если вот так сделать

new param_str[128];
format(param_str, sizeof(param_str), "%d %s",pbNumbers[GetPVarInt(playerid,"phonebook")] , inputtext);
printf("|%s|",param_str);
cmd::sms(playerid, param_str);




|980979 Тест СМС|



980979 - номер, он верный.
"Тест СМС" - то, что я ввел в диалоговое окно, также верно вывело.

DeimoS
14.05.2017, 12:38
crashdetect подключён? Если да, то скинь логи, а если нет, то подключи, введи команду и скинь логи

nikvlad
14.05.2017, 13:50
crashdetect подключён? Если да, то скинь логи, а если нет, то подключи, введи команду и скинь логи

Вот логи:

[14:49:14] |980979 Тест СМС|
[14:49:14] [debug] Server crashed while executing newrp.amx
[14:49:14] [debug] AMX backtrace:
[14:49:14] [debug] #0 native strfind () from samp-server.exe
[14:49:14] [debug] #1 0022b24c in ?? (3427532) from newrp.amx
[14:49:14] [debug] #2 00254eac in public cmd_sms (0, 3427532) from newrp.amx
[14:49:14] [debug] #3 0017f9b8 in public OnDialogResponse (0, 7, 1, -1, 3414452) from newrp.amx
[14:49:14] [debug] Native backtrace:
[14:49:14] [debug] #0 77064f1d in ?? () from C:\Windows\syswow64\USER32.dll
[14:49:14] [debug] #1 004061b4 in ?? () from samp-server.exe
[14:49:14] [debug] Registers:
[14:49:14] [debug] EAX: 000ef7f3 EBX: 00000001 ECX: 00000001 EDX: 000ef7f4
[14:49:14] [debug] ESI: 000ef7f3 EDI: 04b112dc EBP: 00000000 ESP: 0018f3a0
[14:49:14] [debug] EIP: 004061b4 EFLAGS: 00010206
[14:49:14] [debug] Stack:
[14:49:14] [debug] ESP+00000000: 000ef7f3 004064fe 00000001 04b112dc
[14:49:14] [debug] ESP+00000020: 04ad4b7c 00000003 00000000 0018f514
[14:49:14] [debug] ESP+00000040: 04b11318 00000009 004010b6 0220ff68
[14:49:14] [debug] ESP+00000060: 00000017 0018f588 04b112dc e26fde35
[14:49:14] [debug] ESP+00000080: 0220ff68 00000000 00344ca8 0022b24c
[14:49:14] [debug] ESP+000000a0: 7782032a 00717068 0018f49e 00000000
[14:49:14] [debug] ESP+000000c0: 7781e1b2 77820378 77567b81 00720e50
[14:49:14] [debug] ESP+000000e0: 0018f548 7781e38c 00000000 00717068
[14:49:14] [debug] ESP+00000100: 6c616944 6552676f 6e6f7073 02006573
[14:49:14] [debug] ESP+00000120: 00000000 5ba0985c 0018f4e4 5b9d954f
[14:49:14] [debug] ESP+00000140: 0018f588 00000000 0220ff68 0476f478
[14:49:14] [debug] ESP+00000160: 0266d9f0 e26fde35 0018f8cc 5b9fb8d5
[14:49:14] [debug] ESP+00000180: 0018f588 04b112dc 0018f580 5b9e4078
[14:49:14] [debug] ESP+000001a0: 00000022 00000022 027d7220 00288420
[14:49:14] [debug] ESP+000001c0: 0454422c 003419d8 003459b0 047cc64c
[14:49:14] [debug] ESP+000001e0: 0018f5e4 5b9da767 00308530 0018f668
[14:49:14] [debug] ESP+00000200: 00000009 00000002 0100007f 000ee22e
[14:49:14] [debug] ESP+00000220: 00000001 00000000 00000000 00000022
[14:49:14] [debug] ESP+00000240: 0018f5f4 0018f5f4 5b9dd65a 0018f668
[14:49:14] [debug] ESP+00000260: 0018f668 00000022 00000000 0220ff68
[14:49:14] [debug] ESP+00000280: 0018f668 00000022 0220ff68 00000000
[14:49:14] [debug] ESP+000002a0: 0220ff68 ffffffff 0220ff68 0018f684
[14:49:14] [debug] ESP+000002c0: 0018f8c1 0220ff68 00000000 04b0e000
[14:49:14] [debug] ESP+000002e0: ffffffff 003419b4 0018fb54 00455620
[14:49:14] [debug] ESP+00000300: 54c50007 00000000 00000078 00000078
[14:49:14] [debug] ESP+00000320: 7782032a 00717068 0018f71e 00000000
[14:49:14] [debug] ESP+00000340: 7781e1b2 77820378 77567801 007216e1
[14:49:14] [debug] ESP+00000360: 0018f7c8 00000001 00000000 00717068
[14:49:14] [debug] ESP+00000380: 6c627550 61436369 00326c6c 0018f604
[14:49:14] [debug] ESP+000003a0: 0018fa01 0220ff68 00000000 5ba0985c
[14:49:14] [debug] ESP+000003c0: 00000000 0018fa0c 5b9fba5d ffffffff
[14:49:14] [debug] ESP+000003e0: 0018f784 00000000 0018f7a8 5b9e3159
[14:49:14] [debug] Loaded modules:
[14:49:14] [debug] 00400000 - 00519000 samp-server.exe
[14:49:14] [debug] 777f0000 - 77970000 ntdll.dll
[14:49:14] [debug] 76820000 - 76930000 kernel32.dll
[14:49:14] [debug] 75f60000 - 75fa7000 KERNELBASE.dll
[14:49:14] [debug] 75310000 - 75f5a000 SHELL32.dll
[14:49:14] [debug] 76570000 - 7661c000 msvcrt.dll
[14:49:14] [debug] 76f30000 - 76f87000 SHLWAPI.dll
[14:49:14] [debug] 77140000 - 771d0000 GDI32.dll
[14:49:14] [debug] 77040000 - 77140000 USER32.dll
[14:49:14] [debug] 76330000 - 763d0000 ADVAPI32.dll
[14:49:14] [debug] 76f10000 - 76f29000 sechost.dll
[14:49:14] [debug] 76010000 - 76100000 RPCRT4.dll
[14:49:14] [debug] 75210000 - 75270000 SspiCli.dll
[14:49:14] [debug] 75200000 - 7520c000 CRYPTBASE.dll
[14:49:14] [debug] 76660000 - 7666a000 LPK.dll
[14:49:14] [debug] 76940000 - 769dd000 USP10.dll
[14:49:14] [debug] 74840000 - 74847000 WSOCK32.dll
[14:49:14] [debug] 76620000 - 76655000 WS2_32.dll
[14:49:14] [debug] 766b0000 - 766b6000 NSI.dll
[14:49:14] [debug] 65c70000 - 65ca2000 WINMM.dll
[14:49:14] [debug] 75fb0000 - 76010000 IMM32.DLL
[14:49:14] [debug] 76490000 - 7655c000 MSCTF.dll
[14:49:14] [debug] 5b9c0000 - 5ba10000 crashdetect.dll
[14:49:14] [debug] 66880000 - 668e9000 MSVCP100.dll
[14:49:14] [debug] 666b0000 - 6676f000 MSVCR100.dll
[14:49:14] [debug] 54c50000 - 54caa000 streamer.dll
[14:49:14] [debug] 65030000 - 6509d000 MSVCP140.dll
[14:49:14] [debug] 65130000 - 65145000 VCRUNTIME140.dll
[14:49:14] [debug] 667c0000 - 667c4000 api-ms-win-crt-runtime-l1-1-0.dll
[14:49:14] [debug] 60b30000 - 60c0c000 ucrtbase.DLL
[14:49:14] [debug] 65cb0000 - 65cb3000 api-ms-win-core-timezone-l1-1-0.dll
[14:49:14] [debug] 65120000 - 65123000 api-ms-win-core-file-l2-1-0.dll
[14:49:14] [debug] 65020000 - 65023000 api-ms-win-core-localization-l1-2-0.dll
[14:49:14] [debug] 70df0000 - 70df3000 api-ms-win-core-synch-l1-2-0.dll
[14:49:14] [debug] 60b20000 - 60b23000 api-ms-win-core-processthreads-l1-1-1.dll
[14:49:14] [debug] 60b10000 - 60b13000 api-ms-win-core-file-l1-2-0.dll
[14:49:14] [debug] 60b00000 - 60b04000 api-ms-win-crt-string-l1-1-0.dll
[14:49:14] [debug] 60af0000 - 60af3000 api-ms-win-crt-heap-l1-1-0.dll
[14:49:14] [debug] 60ae0000 - 60ae4000 api-ms-win-crt-stdio-l1-1-0.dll
[14:49:14] [debug] 60ad0000 - 60ad4000 api-ms-win-crt-convert-l1-1-0.dll
[14:49:14] [debug] 60ac0000 - 60ac3000 api-ms-win-crt-locale-l1-1-0.dll
[14:49:14] [debug] 60ab0000 - 60ab5000 api-ms-win-crt-math-l1-1-0.dll
[14:49:14] [debug] 60aa0000 - 60aa5000 api-ms-win-crt-multibyte-l1-1-0.dll
[14:49:14] [debug] 60a90000 - 60a93000 api-ms-win-crt-time-l1-1-0.dll
[14:49:14] [debug] 60a80000 - 60a83000 api-ms-win-crt-filesystem-l1-1-0.dll
[14:49:14] [debug] 60a70000 - 60a73000 api-ms-win-crt-environment-l1-1-0.dll
[14:49:14] [debug] 60a60000 - 60a63000 api-ms-win-crt-utility-l1-1-0.dll
[14:49:14] [debug] 10000000 - 1000d000 sscanf.dll
[14:49:14] [debug] 504d0000 - 50501000 regex.dll
[14:49:14] [debug] 70d40000 - 70de3000 MSVCR90.dll
[14:49:14] [debug] 6b5a0000 - 6b62e000 MSVCP90.dll
[14:49:14] [debug] 72cc0000 - 72cd0000 sql.dll
[14:49:14] [debug] 028e0000 - 02d81000 libmysql.dll
[14:49:14] [debug] 71020000 - 71028000 Secur32.dll
[14:49:14] [debug] 6b4e0000 - 6b505000 LIBPQ.dll
[14:49:14] [debug] 50480000 - 504c5000 SSLEAY32.dll
[14:49:14] [debug] 77ee0000 - 78000000 LIBEAY32.dll
[14:49:14] [debug] 6a300000 - 6a32b000 libintl.dll
[14:49:14] [debug] 76100000 - 76145000 WLDAP32.dll
[14:49:14] [debug] 503f0000 - 50475000 MSVCP110.dll
[14:49:14] [debug] 0fd20000 - 0fdf6000 MSVCR110.dll
[14:49:14] [debug] 70a10000 - 70a20000 NLAapi.dll
[14:49:14] [debug] 70a00000 - 70a10000 napinsp.dll
[14:49:14] [debug] 709e0000 - 709f2000 pnrpnsp.dll
[14:49:14] [debug] 70a60000 - 70a9c000 mswsock.dll
[14:49:14] [debug] 74610000 - 74654000 DNSAPI.dll
[14:49:14] [debug] 709d0000 - 709d8000 winrnr.dll
[14:49:14] [debug] 70af0000 - 70af6000 rasadhlp.dll
[14:49:14] [debug] 00350000 - 00357000 dc_cmd.dll
[14:49:14] [debug] 5bbc0000 - 5bbe1000 RNM.dll
[14:49:14] [debug] 709c0000 - 709c5000 wshtcpip.dll
[14:49:14] [debug] 74350000 - 7436c000 IPHLPAPI.DLL
[14:49:14] [debug] 74340000 - 74347000 WINNSI.DLL
[14:49:14] [debug] 70ab0000 - 70ae8000 fwpuclnt.dll

ziggi
14.05.2017, 14:27
Проблема явно не в вызове cmd_sms, проблема в вызове strfind. Покажи код cmd_sms.

nikvlad
14.05.2017, 15:09
Проблема явно не в вызове cmd_sms, проблема в вызове strfind. Покажи код cmd_sms.


CMD:sms(playerid, params[])
{
if(!pData[playerid][pPhone]) return SendClientMessage(playerid,CGRAY,"У вас нет телефона, вы можете купить его в 24/7");
if(!pTemp[playerid][pTPhone]) return SendClientMessage(playerid,CGRAY,"Сначала нужно включить телефон");
if(pData[playerid][pMut]) return SendClientMessage(playerid,CGRAY,"У Вас бан чата");
if(pData[playerid][pJail]) return SendClientMessage(playerid, CGRAY, "Вы в тюрьме.");
if(pData[playerid][pPhoneMoney] < 5) return SendClientMessage(playerid, CGRAY, "На счету недостаточно средств");
if(sscanf(params, "ds[128]",params[0],params[1])) return SendClientMessage(playerid,CGRAY,"Используйте: /sms [номер телефона] [текст]");
if(IsIpFound(params[0]) || CheckString(params[0])) return PlayerGetsChatBan(playerid, params[0]);
if(params[0] < 5) return SendClientMessage(playerid,CGRAY,"Номер введён неверно");
if(IsIpFound(params[1]) || CheckString(params[1]))
{
PlayerGetsChatBan(playerid, params[1]);
return false;
}
new id = -1;
if(params[0] <= 3)
{
if(IsPlayerConnected(params[0])) id = params[0];
}
else
{
if(!params[0]) return SendClientMessage(playerid,CGRAY,"Игрока с этим номером нет на сервере");
for(new i;i<MAX_PLAYERS;i++)
{
if(!IsPlayerConnected(i)) continue;
if(pData[i][pPhone] == params[0]) {id = i; break;}
}
}
if(id == playerid) return SendClientMessage(playerid,CGRAY,"Вы ввели свой номер");
if(id == -1) return SendClientMessage(playerid,CGRAY,"Игрока с этим номером нет на сервере");
if(!pData[id][pPhone]) return SendClientMessage(playerid,CGRAY,"У игрока нет телефона");
if(!pTemp[id][pTPhone]) return SendClientMessage(playerid,CGRAY,"У игрока выключен телефон");
if(pData[id][pJail]) return SendClientMessage(playerid, CGRAY, "Игрок в тюрьме.");
new mes[128];
format(mes,sizeof(mes),"SMS | %s | Получатель: %s (тел. %d)",params[1],pData[id][pNickname],pData[id][pPhone]);
SendClientMessage(playerid,0x7DB2FFFF,mes);
format(mes,sizeof(mes),"SMS | %s | Отправитель: %s (тел. %d)",params[1],pData[playerid][pNickname],pData[playerid][pPhone]);
SendClientMessage(id,0x7DB2FFFF,mes);
SetPlayerChatBubble(playerid, "Отправил смс-сообщение", CPINK, 10.0, 3000);
pData[playerid][pPhoneMoney] -= 5;
UpdatePlayerData(playerid,"phonemoney",pData[playerid][pPhoneMoney]);
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
PlayerPlaySound(id,1054,0.0,0.0,0.0);
for(new i=0;i<MAX_PLAYERS;i++)
{
if (!IsPlayerConnected(i)) continue;
if(BigEarSms[i] != 0)
{
format(mes, sizeof(mes), "» Входящее к %s[%d]: %s. Отправитель: %s[%d].",pData[id][pNickname],id,params[1],pData[playerid][pNickname],playerid);
SendClientMessage(i, COLOR_YELLOW, mes);
}
}
return 1;
}

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

Пофиксил. Всем спасибо. Можно закрыть.

DeimoS
14.05.2017, 16:32
Так сообщи же всем в чём была твоя проблема. Вдруг у кого такая же будет и он на твою тему наткнётся, а решения нет

nikvlad
14.05.2017, 20:58
Так сообщи же всем в чём была твоя проблема. Вдруг у кого такая же будет и он на твою тему наткнётся, а решения нет

У меня, как видите, 2 проверки на наличие спама.

if(IsIpFound(params[0]) || CheckString(params[0])) return PlayerGetsChatBan(playerid, params[0]);
if(params[0] < 5) return SendClientMessage(playerid,CGRAY,"Номер введён неверно");
if(IsIpFound(params[1]) || CheckString(params[1]))
{
PlayerGetsChatBan(playerid, params[1]);
return false;
}

Причем, первая неверная, т.к. проверяет params[0], а туда я записываю ID игрока, поэтому и ругался strfind в этой функции.


Всем спасибо.

Теперь точно можно закрыть)