Szerző Téma: Parancs hiba  (Megtekintve 1050 alkalommal)

Parancs hiba
« Dátum: 2011. október 08. - 11:51:23 »
0 Show voters
Sziasztok!
Csináltam ma egy parancsot, amivel konfigurálni lehet a speedboostot, de nem mûködik, tiszta bugos. :(
 
CMD:boost(playerid, params[])
{
new boostcfg;
if(sscanf(params, \"i\", boostcfg))
{
    SendClientMessage(playerid, COLOR_GRAD1, \"Használat: /boost [on/off/érték]\");
    return 1;
}
if(strcmp(params, \"off\", true))
{
if(speedboostonoff[playerid] == 1)
{
    speedboostonoff[playerid] = 0;
    SendClientMessage(playerid, COLOR_WHITE, \"Speedboost kikapcsolva!\");
}
else if(speedboostonoff[playerid] == 0)
{
    SendClientMessage(playerid, COLOR_RED, \"A speedboost már ki van kapcsolva!\");
}
}
else if(strcmp(params, \"on\", true))
{
if(speedboostonoff[playerid] == 0)
{
    speedboostonoff[playerid] = 1;
    SendClientMessage(playerid, COLOR_WHITE, \"Speedboost bekapcsolva!\");
}
else if(speedboostonoff[playerid] == 1)
{
    SendClientMessage(playerid, COLOR_RED, \"A speedboost már be van kapcsolva!\");
}
}
else if(strcmp(params, \"1\", true))
{
    speedboostonoff[playerid] = 1;
    SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 1.0-ra állítva!\");
}
else if(strcmp(params, \"2\", true))
{
    speedboostonoff[playerid] = 2;
    SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 2.0-ra állítva!\");
}
return 1;
}

 
Amikor
- /boost on akkor bekapcsolja (1-es érték),
- /boost off akkor kikapcsolja (0-s érték),
- /boost 1 akkor 1-es értékre rakja,
- /boost 2 akkor 2-es értékre rakja.
Ezt meg tudnátok nekem csinálni? Mert nekem nem sikerült :(
Köszönöm szépen,
Cole


Parancs hiba
« Válasz #1 Dátum: 2011. október 08. - 11:58:07 »
0 Show voters
Szerintem így mûködni fog, próbáld ki:
[pawn]CMD:boost(playerid, params[])
{
   new boostcfg;
   if(sscanf(params, \"i\", boostcfg))
   {
       SendClientMessage(playerid, COLOR_GRAD1, \"Használat: /boost [on/off/érték]\");
       return 1;
   }
   if(strcmp(boostcfg, \"off\", true))
   {
      if(speedboostonoff[playerid] == 1)
      {
          speedboostonoff[playerid] = 0;
          SendClientMessage(playerid, COLOR_WHITE, \"Speedboost kikapcsolva!\");
      }
      else if(speedboostonoff[playerid] == 0)
      {
          SendClientMessage(playerid, COLOR_RED, \"A speedboost már ki van kapcsolva!\");
      }
   }
   else if(strcmp(boostcfg, \"on\", true))
   {
      if(speedboostonoff[playerid] == 0)
      {
          speedboostonoff[playerid] = 1;
          SendClientMessage(playerid, COLOR_WHITE, \"Speedboost bekapcsolva!\");
      }
      else if(speedboostonoff[playerid] == 1)
      {
          SendClientMessage(playerid, COLOR_RED, \"A speedboost már be van kapcsolva!\");
      }
   }
   else if(strcmp(boostcfg, \"1\", true))
   {
       speedboostonoff[playerid] = 1;
       SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 1.0-ra állítva!\");
   }
   else if(strcmp(boostcfg, \"2\", true))
   {
       speedboostonoff[playerid] = 2;
       SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 2.0-ra állítva!\");
   }
   return 1;
}[/pawn]
Egyébként csak annyit csináltam hogy az strcmp(params ...   -t átírtam strcmp(boostcfg ...   -re ,  de ha nem jó akk szólj..

Parancs hiba
« Válasz #2 Dátum: 2011. október 08. - 12:00:07 »
0 Show voters
Errorozik nekem :(

Parancs hiba
« Válasz #3 Dátum: 2011. október 08. - 12:01:02 »
0 Show voters
Idézetet írta: Cole date=1318068007\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"12321\" data-ipsquote-contentclass=\"forums_Topic
Errorozik nekem :(
 
Le tudnád írni a hibaüzeneteket?
EDIT:
Asszem megtaláltam a hibát, nézd meg így:
[pawn]CMD:boost(playerid, params[])
{
   new boostcfg;
   if(sscanf(params, \"s[8]\", boostcfg))
   {
       SendClientMessage(playerid, COLOR_GRAD1, \"Használat: /boost [on/off/érték]\");
       return 1;
   }
   if(strcmp(boostcfg, \"off\", true))
   {
      if(speedboostonoff[playerid] == 1)
      {
          speedboostonoff[playerid] = 0;
          SendClientMessage(playerid, COLOR_WHITE, \"Speedboost kikapcsolva!\");
      }
      else if(speedboostonoff[playerid] == 0)
      {
          SendClientMessage(playerid, COLOR_RED, \"A speedboost már ki van kapcsolva!\");
      }
   }
   else if(strcmp(boostcfg, \"on\", true))
   {
      if(speedboostonoff[playerid] == 0)
      {
          speedboostonoff[playerid] = 1;
          SendClientMessage(playerid, COLOR_WHITE, \"Speedboost bekapcsolva!\");
      }
      else if(speedboostonoff[playerid] == 1)
      {
          SendClientMessage(playerid, COLOR_RED, \"A speedboost már be van kapcsolva!\");
      }
   }
   else if(strcmp(boostcfg, \"1\", true))
   {
       speedboostonoff[playerid] = 1;
       SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 1.0-ra állítva!\");
   }
   else if(strcmp(boostcfg, \"2\", true))
   {
       speedboostonoff[playerid] = 2;
       SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 2.0-ra állítva!\");
   }
   return 1;
}[/pawn]
« Utoljára szerkesztve: 2011. október 08. - 12:02:34 írta staubka »

Parancs hiba
« Válasz #4 Dátum: 2011. október 08. - 12:10:44 »
0 Show voters
C:\\Users\\Gebhard\\Downloads\\samp03csvr_win32\\gamemodes\\varosielet.pwn(2345) : error 035: argument type mismatch (argument 1)
C:\\Users\\Gebhard\\Downloads\\samp03csvr_win32\\gamemodes\\varosielet.pwn(2357) : error 035: argument type mismatch (argument 1)
C:\\Users\\Gebhard\\Downloads\\samp03csvr_win32\\gamemodes\\varosielet.pwn(2369) : error 035: argument type mismatch (argument 1)
C:\\Users\\Gebhard\\Downloads\\samp03csvr_win32\\gamemodes\\varosielet.pwn(2374) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
4 Errors.

 
Ezek az errorok :(
Az
[pawn]if(strcmp(...[/pawn]
-nél jelez hibát.

Parancs hiba
« Válasz #5 Dátum: 2011. október 08. - 12:13:30 »
+1 Show voters
[pawn]CMD:boost(playerid, params[])
{
   new boostcfg[16];
   if(sscanf(params, \"s[16]\", boostcfg))
   {
       SendClientMessage(playerid, COLOR_GRAD1, \"Használat: /boost [on/off/érték]\");
       return 1;
   }
   if(strcmp(boostcfg, \"off\", true, 3) == 0)
   {
      if(speedboostonoff[playerid] == 1)
      {
          speedboostonoff[playerid] = 0;
          SendClientMessage(playerid, COLOR_WHITE, \"Speedboost kikapcsolva!\");
      }
      else if(speedboostonoff[playerid] == 0)
      {
          SendClientMessage(playerid, COLOR_RED, \"A speedboost már ki van kapcsolva!\");
      }
   }
   else if(strcmp(boostcfg, \"on\", true, 2) == 0)
   {
      if(speedboostonoff[playerid] == 0)
      {
          speedboostonoff[playerid] = 1;
          SendClientMessage(playerid, COLOR_WHITE, \"Speedboost bekapcsolva!\");
      }
      else if(speedboostonoff[playerid] == 1)
      {
          SendClientMessage(playerid, COLOR_RED, \"A speedboost már be van kapcsolva!\");
      }
   }
   else if(strcmp(boostcfg, \"1\", true, 1) == 0)
   {
       speedboostonoff[playerid] = 1;
       SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 1.0-ra állítva!\");
   }
   else if(strcmp(boostcfg, \"2\", true, 1) == 0)
   {
       speedboostonoff[playerid] = 2;
       SendClientMessage(playerid, COLOR_WHITE, \"Speedboost értéke 2.0-ra állítva!\");
   }
   return 1;
}[/pawn]

Parancs hiba
« Válasz #6 Dátum: 2011. október 08. - 12:51:36 »
+1 Show voters
Megpróbáltam olyanra írni hogy a speedboost értéke lebegõpontos szám is lehet, persze lehet a többi helyen is javítani kell valamit, de próbáld megoldani.
Nem teszteltem le!
[pawn]new
Float:speedboostonoff[MAX_PLAYERS]; // keresd meg a scriptben ezt a részt és tedd elé a Float jelzõt
CMD:boost(playerid, params[])
{
if(isnull(params)) return SendClientMessage(playerid, -1, \"Használat: /boost [on/off/érték]\"); // COLOR_GRAD1
// parancs /boost off
if(strcmp(params, \"off\", true))
{
   if(speedboostonoff[playerid] == 0) return SendClientMessage(playerid, COLOR_RED, \"A speedboost már ki van kapcsolva!\");
   speedboostonoff[playerid] = 0;
   SendClientMessage(playerid, -1, \"Speedboost kikapcsolva!\"); // COLOR_WHITE
   return 1;
}
// parancs /boost on
if(strcmp(params, \"on\", true))
{
   if(speedboostonoff[playerid] == 1) return SendClientMessage(playerid, COLOR_RED, \"A speedboost már be van kapcsolva!\");
   speedboostonoff[playerid] = 1;
   SendClientMessage(playerid, -1, \"Speedboost bekapcsolva!\"); // COLOR_WHITE
   return 1;
}
// parancs /boost 1.34
if(speedboostonoff[playerid] > 0) // aktív speedboost
{
   new
      Float:value;
   value = floatstr(params);
   if(value < 1 || value > 2) return SendClientMessage(playerid, -1, \"Error speedboost 1.0 - 2.0 (example /boost 1.34)\"); // COLOR_WHITE
   speedboostonoff[playerid] = value;
   new
      str[64];
   format(str, sizeof str, \"Speedboost értéke 0.2%f-ra állítva!\", value);
   SendClientMessage(playerid, -1, str); // COLOR_WHITE
} else SendClientMessage(playerid, COLOR_RED, \"Speedboost nincs aktíválva /boost on\");
return 1;
}[/pawn]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal