Szerző Téma: sscanf Kocsilehívó hiba  (Megtekintve 1341 alkalommal)

sscanf Kocsilehívó hiba
« Dátum: 2011. július 22. - 14:48:09 »
0 Show voters
Sziasztok
Csináltam egy kocsilehívót sscanf-al és zcmd-vel, de valamiért nem jó
 
CMD:mycar(playerid, params[])
{
new vid[30], Float:x, Float:y, Float:z, Float:ang, color1[4], color2[4];
if(sscanf(params, \"sss\", vid, color1, color2)) SendClientMessage(playerid, COLOR_YELLOW, \"[HASZNÁLAT]: /mycar <jármûnév> <szín1> <szín2>\");
else if(color1 > 0 && color2 > 0)
{
new vehicle;
vehicle = GetVehicleModelIDFromName(vid);
    GetPlayerPos(playerid, x, y, z);
new vehicle2 = CreateVehicle(vehicle, x, y, z, GetPlayerFacingAngle(playerid, ang), -1, -1, -1);
PutPlayerInVehicle(playerid, vehicle2, 0);
PlayerPlaySound(playerid, 1138, 0.0,0.0,0.0);
   
}
else if(color2 > 0)
{
new vehicle;
vehicle = GetVehicleModelIDFromName(vid);
    GetPlayerPos(playerid, x, y, z);
new vehicle2 = CreateVehicle(vehicle, x, y, z, GetPlayerFacingAngle(playerid, ang), color1, -1, -1);
PutPlayerInVehicle(playerid, vehicle2, 0);
PlayerPlaySound(playerid, 1138, 0.0,0.0,0.0);
}
else
{
new vehicle;
vehicle = GetVehicleModelIDFromName(vid);
    GetPlayerPos(playerid, x, y, z);
new vehicle2 = CreateVehicle(vehicle, x, y, z, GetPlayerFacingAngle(playerid, ang), color1, color2, -1);
PutPlayerInVehicle(playerid, vehicle2, 0);
PlayerPlaySound(playerid, 1138, 0.0,0.0,0.0);
}
return 1;
}

 
És ezt kapom:
C:\\Users\\dd\\Desktop\\Zinthoserver\\gamemodes\\zinthoserver2.pwn(991) : error 033: array must be indexed (variable \"color1\")
C:\\Users\\dd\\Desktop\\Zinthoserver\\gamemodes\\zinthoserver2.pwn(1001) : error 033: array must be indexed (variable \"color2\")
C:\\Users\\dd\\Desktop\\Zinthoserver\\gamemodes\\zinthoserver2.pwn(1006) : error 035: argument type mismatch (argument 6)
C:\\Users\\dd\\Desktop\\Zinthoserver\\gamemodes\\zinthoserver2.pwn(1015) : error 035: argument type mismatch (argument 6)
Pawn compiler 3.2.3664           Copyright © 1997-2006, ITB CompuPhase
5 Errors.
991 sor:
 
   else if(color1 > 0 && color2 > 0)

 
1001 sor:
 
   else if(color2 > 0)

 
1006 sor:
 
      new vehicle2 = CreateVehicle(vehicle, x, y, z, GetPlayerFacingAngle(playerid, ang), color1, -1, -1);

 
1015 sor:
 
      new vehicle2 = CreateVehicle(vehicle, x, y, z, GetPlayerFacingAngle(playerid, ang), color1, color2, -1);

 
... és kapok még jónéhány sscanf hibaüzenetet a konzolban...  :(

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
sscanf Kocsilehívó hiba
« Válasz #1 Dátum: 2011. július 22. - 14:53:00 »
0 Show voters

CMD:mycar(playerid, params[])
{
new vid[30], Float:x, Float:y, Float:z, Float:ang, color1, color2;
if(sscanf(params, \"s[20]dd\", vid, color1, color2)) SendClientMessage(playerid, COLOR_YELLOW, \"[HASZNÁLAT]: /mycar <jármûnév> <szín1> <szín2>\");

sscanf Kocsilehívó hiba
« Válasz #2 Dátum: 2011. július 22. - 15:02:23 »
0 Show voters
Kösz zero, mûködik! :D
De lenne még 2 kérdésem.
Azt hogyan tudom megcsinálni, hogy a második és a harmadik paraméter elhagyható legyen? Mert próbáltam, de nem jó.
Meg azt hogyan tudm még, hogy az elsõ paraméter helyére elfogadja a jármû id-jét is?

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
sscanf Kocsilehívó hiba
« Válasz #3 Dátum: 2011. július 22. - 15:48:03 »
0 Show voters
Az elhanyagolható paramétereket nagy betûvel jelöljük. Esetedben: DD

sscanf Kocsilehívó hiba
« Válasz #4 Dátum: 2011. július 22. - 16:06:17 »
0 Show voters
Idézetet írta: Ronii date=1311342483\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9763\" data-ipsquote-contentclass=\"forums_Topic
Az elhanyagolható paramétereket nagy betûvel jelöljük. Esetedben: DD
 
Oh, kösz ezt nem is tudtam :D
Mûködik, de ha beirom, és kapok egy ilyet a konzolban:
 
sscanf warning: No default value found

.
Ez miért van?

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
sscanf Kocsilehívó hiba
« Válasz #5 Dátum: 2011. július 22. - 16:34:06 »
0 Show voters
Igen, mert lemaradt a zárójel..  :D
 

D(-1)D(-1)

 
Így ha nem írja be a színeket, akkor véletlenszerûen add 1et.

sscanf Kocsilehívó hiba
« Válasz #6 Dátum: 2011. július 23. - 21:47:16 »
0 Show voters
Idézetet írta: Ronii date=1311345246\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9763\" data-ipsquote-contentclass=\"forums_Topic
Igen, mert lemaradt a zárójel..  :D
 

D(-1)D(-1)

 
Így ha nem írja be a színeket, akkor véletlenszerûen add 1et.
 
Mûködik :)
De még 1 kérdés.
Hogy tudom lekérni, hogy rossz jármûnevet irt-e be? pl. : sachnez

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
sscanf Kocsilehívó hiba
« Válasz #7 Dátum: 2011. július 23. - 22:10:46 »
0 Show voters
Nagyon szétvan darabolva a parancsod! Ennél 1xübben is meglehetne oldani, de most nemtudom átírni neked, mert sok a dolgom.  :angel:
De, ModelID alapján tudsz autót tiltani..
[pawn]
if ( vehicle != /* ModelID */ ) return SendClientMessage ( playerid, 0x0000FF, \"Hiba: Tiltott kocsit akartál spawnolni!\" );
{
[/pawn]

sscanf Kocsilehívó hiba
« Válasz #8 Dátum: 2011. július 24. - 08:56:52 »
0 Show voters
Idézetet írta: Ronii date=1311451846\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9763\" data-ipsquote-contentclass=\"forums_Topic
Nagyon szétvan darabolva a parancsod! Ennél 1xübben is meglehetne oldani, de most nemtudom átírni neked, mert sok a dolgom.  :angel:
De, ModelID alapján tudsz autót tiltani..
[pawn]
if ( vehicle != /* ModelID */ ) return SendClientMessage ( playerid, 0x0000FF, \"Hiba: Tiltott kocsit akartál spawnolni!\" );
{
[/pawn]
 
Tényleg sok lehetett a dolgod. :D
[pawn]
if ( vehicle == /* ModelID */ ) return SendClientMessage ( playerid, 0x0000FF, \"Hiba: Tiltott kocsit akartál spawnolni!\" );
{
[/pawn]

sscanf Kocsilehívó hiba
« Válasz #9 Dátum: 2011. július 28. - 08:32:16 »
0 Show voters
Idézetet írta: Ronii date=1311451846\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9763\" data-ipsquote-contentclass=\"forums_Topic
Nagyon szétvan darabolva a parancsod! Ennél 1xübben is meglehetne oldani, de most nemtudom átírni neked, mert sok a dolgom.  :angel:
De, ModelID alapján tudsz autót tiltani..
[pawn]
if ( vehicle != /* ModelID */ ) return SendClientMessage ( playerid, 0x0000FF, \"Hiba: Tiltott kocsit akartál spawnolni!\" );
{
[/pawn]
 
És most lenne idõd?
Jelenleg igy néz ki a parancs:
[pawn]CMD:mycar(playerid, params[])
{
new vid[30], Float:x, Float:y, Float:z, Float:ang, color1, color2, vehicle;
if(sscanf(params, \"s[20]D(-1)D(-1)\", vid, color1, color2)) SendClientMessage(playerid, COLOR_YELLOW, \"[HASZNÁLAT]: /mycar <jármûnév> <szín1> <szín2>\");
else
{
    if(!IsNumeric(vid)) vehicle = GetVehicleModelIDFromName(vid);
    else vehicle = strval(vid);
    new interior = GetPlayerInterior(playerid);
    if(interior < 0) return SendClientMessage(playerid, COLOR_RED, \"[HIBA]: Nem hívhatsz le jármûveket Interiorban!\");
         if(vehicle < 400 || vehicle > 611) return  SendClientMessage(playerid, COLOR_RED, \"[HIBA]: Rossz jármû-id!\");
   if(SpawnedCars[playerid] != 0) DestroyVehicle(SpawnedCars[playerid]);
    GetPlayerPos(playerid, x, y, z);
   SpawnedCars[playerid] = CreateVehicle(vehicle, x, y, z, 0.0, color1, color2, -1);
    SetVehicleZAngle(SpawnedCars[playerid], GetPlayerFacingAngle(playerid, ang));
   PutPlayerInVehicle(playerid, SpawnedCars[playerid], 0);
   PlayerPlaySound(playerid, 1138, 0.0,0.0,0.0);
   SendPlayerFormattedText(playerid, COLOR_WHITE, \"{\"#HEX_FEM\"}|>{\"#HEX_FEM\"} Lehívott jármû: {\"#HEX_GREEN\"}%s{\"#HEX_FEM\"} | ID: {\"#HEX_GREEN\"}%d{\"#HEX_FEM\"} <|\", VehicleNames[vehicle-400], vehicle);
}
return 1;
}
[/pawn]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal