GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: curvemaster - 2011. október 08. - 11:51:23

Cím: Parancs hiba
Írta: curvemaster - 2011. október 08. - 11:51:23
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

Cím: Parancs hiba
Írta: staubka - 2011. október 08. - 11:58:07
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..
Cím: Parancs hiba
Írta: curvemaster - 2011. október 08. - 12:00:07
Errorozik nekem :(
Cím: Parancs hiba
Írta: staubka - 2011. október 08. - 12:01:02
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]
Cím: Parancs hiba
Írta: curvemaster - 2011. október 08. - 12:10:44
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.
Cím: Parancs hiba
Írta: staubka - 2011. október 08. - 12:13:30
[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]
Cím: Parancs hiba
Írta: Zsolesszka - 2011. október 08. - 12:51:36
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]