Most logikus hogy ha nem kell megadni egy parancs második paraméterét akkor sscanf-nél annak alapértéke lesz, jelen esetben mínusz egy (-1). (de ezt meglehet változtatni de ez az érték megfelel a célnak)
I(-1)
EDIT:
Megnéztem a pastebin-re feltett parancsot, de nem jó a parancs felépítése nem lehet átlátni mi minek van.
Megpróbálom átláthatóbbra tenni de tesztelni nem tudom majd megteszed te, meg javítod a hibákat.
EDIT2:
Szóval nem tudom hogy megfelelõen mûködik vagy sem, csak kicsit átrendeztem átláthatóbbá, próbáld így folytatni, hátha megkönnyíti a dolgod.
CMD:c4(playerid, params[])
{
if(Belepve[playerid] != 0) SendClientMessage(playerid, HIBA, \"Be kell jelentkezned!\");
else if(JatekosInfo[playerid][Megkotozve] && JatekosInfo[playerid][Megbilincselve]) SendClientMessage(playerid, HIBA, \"Meg vagy kötözve/bilincselve!\");
else if(CsinalVmit[playerid]) SendClientMessage(playerid, HIBA, \"Már csinálsz valamit!\");
else if(JatekosInfo[playerid][borton] && JatekosInfo[playerid][AdminBorton]) SendClientMessage(playerid, HIBA, \"Börtönben?\");
else
{
new
string[256],
kocsi = GetPlayerVehicleID(playerid),
mit[50],
mennyit;
if(sscanf(params,\"s[50]D(-1)\", mit, mennyit)) return SendClientMessage(playerid, SZURKE, \"Használat: /c4 [mit] [mennyit(osszerak esetén)\");
{
GetPlayerName(playerid, nev, sizeof(nev));
//--------------
if(strcmp(mit, \"lerak\", true) == 0)
{
if(JatekosInfo[playerid][C4] == 0) SendClientMessage(playerid, HIBA, \"Nincs nálad C4!\");
else
{
if(kocsi)
{
C4Kocsiban[playerid] = kocsi;
format(string,sizeof(string),\"%s felszerel egy C4-et egy jármûbe...\",nev);
ProxDetector(20.0, playerid, string, LILA, LILA, LILA, LILA, LILA);
format(string,sizeof(string),\"%s felszerel egy C4-et egy jármûbe.(%d)\",nev,kocsi);
printf(string);
} else {
ApplyAnimation(playerid, \"BOMBER\",\"BOM_Plant_Loop\",4.0,1,0,0,1,0);
format(string,sizeof(string),\"%s lerak egy C4-et...\",nev);
ProxDetector(20.0, playerid, string, LILA, LILA, LILA, LILA, LILA);
}
tc4[playerid] = SetTimerEx(\"c4szereles\",10000,false,\"i\",playerid);
CsinalVmit[playerid] = 1;
TogglePlayerControllable(playerid,false);
}
return 1; // /c4 lerak parancs vége
}
//--------------
if(strcmp(mit, \"vesz\", true) == 0)
{
if(!IsPlayerInRangeOfPoint(playerid, 2.5, 2696.9028, -2316.6418, 3.1963)) SendClientMessage(playerid, HIBA, \"Nem vagy a kikötõnél!\");
else if(Hajo == 0) SendClientMessage(playerid, HIBA, \"A hajó nem érkezett meg a kikötõbe!\");
else if(JatekosInfo[playerid][Penz] < 350000) SendClientMessage(playerid, HIBA, \"Nincs nálad elég pénz!(350000 Ft)\");
else if((JatekosInfo[playerid][MaxTeher] - JatekosInfo[playerid][Teher]) < 1000) SendClientMessage(playerid, HIBA, \"Nem fér el nálad! (1 kg)\");
else
{
JatekosInfo[playerid][Penz] -= 350000;
JatekosInfo[playerid][Teher] += 1000;
JatekosInfo[playerid][Robbanot] ++;
SendClientMessage(playerid,SIKERES,\"Vettél egy kg C4-et!\");
GameTextForPlayer(playerid, \"~r~-350k\", 5000, 1);
format(string,sizeof(string),\"%s vett egy kg C4-et.\",nev);
AdminnakUzenet(VNARANCS,string,1);
}
return 1; // /c4 vesz parancs vége
}
//--------------
if(strcmp(mit,\"aktival\",true) == 0)
{
if(C4Lerakva[playerid] == 0) SendClientMessage(playerid, HIBA, \"Nem raktál le C4-et!\");
else
{
if(C4Kocsiban[playerid] == 0)
{
CreateExplosion(C4x[playerid], C4y[playerid], C4z[playerid], 7, 50);
C4Lerakva[playerid] = 0;
C4x[playerid] = 0.000000;
C4y[playerid] = 0.000000;
C4z[playerid] = 0.000000;
format(string,sizeof(string),\"%s felrobbantott egy C4-et.\",nev);
ProxDetector(20.0, playerid, string, LILA, LILA, LILA, LILA, LILA);
AdminnakUzenet(VNARANCS,string,1);
SendClientMessage(playerid,SIKERES,\"Sikeresen felrobbantottad a C4-et!\");
DestroyObject(C4Object[playerid]);
} else {
new Float:x, Float:y, Float:z;
GetVehiclePos(kocsi, x, y, z);
CreateExplosion(x, y, z, 7, 50);
C4Kocsiban[playerid] = 0;
C4Lerakva[playerid] = 0;
format(string,sizeof(string),\"%s felrobbantott egy C4-et.\",nev);
ProxDetector(20.0, playerid, string, LILA, LILA, LILA, LILA, LILA);
format(string,sizeof(string),\"%s felrobbantott egy C4-et.(%d)\",nev,kocsi);
AdminnakUzenet(VNARANCS,string,1);
SendClientMessage(playerid,SIKERES,\"Sikeresen felrobbantottad a C4-et!\");
}
}
return 1; // /c4 vesz parancs vége
}
//--------------
if(strcmp(mit, \"osszerak\", true) == 0)
{
if(mennyit == -1 || JatekosInfo[playerid][Robbanot] >= mennyit) SendClientMessage(playerid, HIBA, \"Nincs elég robbanótölteted!\");
else if(JatekosInfo[playerid][Radiovevo] == 0 && JatekosInfo[playerid][Ragasztosz] == 0) SendClientMessage(playerid, HIBA, \"Nincs nálad ragasztószalag/rádióvevõ!\");
else if(CsinalVmit[playerid] == 1) SendClientMessage(playerid, HIBA, \"Már csinálsz valamit!\");
else if(JatekosInfo[playerid][C4] > 0) SendClientMessage(playerid, HIBA, \"Már van nálad C4!\");
else
{
new
ido = mennyit * 5000;
TogglePlayerControllable(playerid,false);
tC4Osszerak[playerid] = SetTimerEx(\"c4osszerak\",ido,false,\"ii\",playerid,mennyit);
CsinalVmit[playerid] = 1;
SendClientMessage(playerid, NARANCS, \"Elkezdted összerakni a C4-et...\");
format(string,sizeof(string),\"%s elkezdett valamit összeragasztani...\",GetPlayerNameEx(playerid));
ProxDetector(20.0, playerid, string, LILA, LILA, LILA, LILA, LILA);
}
return 1; // /c4 osszerak parancs vége
}
}
}
return 1;
}
Ilyen fajta elrendezéssel könnyebb kiismerni mi mire való, és a módosítása is sokkal könnyebb.