Szerző Téma: /varr Parancs Probléma  (Megtekintve 2008 alkalommal)

/varr Parancs Probléma
« Dátum: 2014. január 30. - 13:01:00 »
0 Show voters
Üdvözlök Mindenkit!
Hoztam egy parancsot amivel igen csak meggyûlt a bajom sajnos nem bírok rájönni mi okozza a hibát. Ez egy /varr parancs. Próbáltam keresgélni a google-n de, sehol nem találtam megoldást rá. Nos elmondom a problémám. Szeretnék egy pár skin-t tiltani a /varr parancs alatt hogy, ne mûködjön mikor magamon használom a /varr parancsot de mikor más játékoson használom a parancsot akkor se mûködjön. Tehát ne engedje meg hogy az adott skin id-t megvarrja egyáltalán! Sajnos ez az egyetlen egy parancs aminél eddig elakadtam és tanácstalan is vagyok. Mellesleg még egy problémám van egy if parancsot hogy lehett több sorba folytatni. Aki eltudná magyarázni egy példával megköszönném! Elõre elnézést ha rossz helyre nyitottam a témát régen fórumoztam már!
 
   if(strcmp(cmd, \"/varr\", true) == 0)
{
    tmp = strtok(cmdtext, idx);
       giveplayerid = ReturnUser(tmp);
       tmp = strtok(cmdtext, idx);
new skine = strval(tmp);
//tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
   SendClientMessage(playerid,COLOR_LIGHTBLUE, \"BloueWard RPG: /varr [JátékosID/NévRészlet] [skinID]\");
   return 1;
}
        if(GetDistanceBetweenPlayers(playerid, giveplayerid) < 5)
       {
            if(PlayerInfo[playerid][pJob] == 24)
            {
            if(PlayerInfo[playerid][Penz] >= 25000)
              {
           if(skine != 211 || skine != 217 || skine != 29 || skine != 293 || skine != 285 || skine != 267 || skine != 266 || skine != 265 || skine != 280 || skine != 281 || skine != 282 || skine != 228 || skine != 59 || skine != 186 || skine != 165 || skine != 294 || skine != 147 || skine != 187 || skine != 163 || skine != 171 || skine != 117 || skine != 118 || skine != 121)
         {
            PlayerInfo[giveplayerid][Civilruha2] = skine;
            PlayerInfo[playerid][Penz] -= 25000;
            SafeGivePlayerMoney(playerid, -25000);
            SetPlayerSkin(giveplayerid, skine);
            PlayerInfo[playerid][XP] += 100;
            SendClientMessage(playerid,COLOR_WHITE, \"Sikeres megvarrtad a ruhát! 25.000FT volt az anyagköltség! Kaptál 100XP-t!\");
            SendClientMessage(giveplayerid,COLOR_WHITE, \"Sikeresen varrtak neked egy új ruhát.\");
            new nev[32];
            new nev2[32];
            GetPlayerName(playerid, nev, sizeof(nev));
            GetPlayerName(giveplayerid, nev2, sizeof(nev2));
            new h,mi,s,y,m,d;
            getdate(y,m,d);
            gettime(h,mi,s);
            format(stringx,sizeof(stringx), \"[%d/%d/%d][%d:%d:%d][Ruha] %s varrt egy ruhát %s. SkinID: %d\",y,m,d,h,mi,s,nev,rag(nev2,2),skine);
            LoOoG(stringx);
            format(string, sizeof(string), \"* %s megvarrta a ruhát %s.\", nev, rag(nev2,2));
            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
            return 1;
          } else  SendClientMessage(playerid,COLOR_GRAD2, \"Ezt nem varrhatod!\");
      } else SendClientMessage(playerid,COLOR_GRAD2, \"Nincs elég pénzed az alapanyagra! (25.000Ft)\");
   } else SendClientMessage(playerid,COLOR_GRAD2,\"Nem vagy szabó!\");
        }
else
{
   SendClientMessage(playerid, COLOR_GRAD2,\"Nincs a közeledben az illetõ!\");
}
return 1;
}

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
/varr Parancs Probléma
« Válasz #1 Dátum: 2014. január 30. - 13:08:12 »
+1 Show voters
Az if nem parancs. De szerintem ez kell neked:
 
if(skine != 19 && skine != 93) // Amennyiben a skine nem 19, és nem is 93
{
    // Ide jön a ruha megvarrása
}

 
Amit te használtál, az az OR, azaz a VAGY ( || ), de neked az AND, azaz az ÉS kell ( && ).

/varr Parancs Probléma
« Válasz #2 Dátum: 2014. január 30. - 13:43:54 »
0 Show voters
Igaz az if tényleg nem parancs csak elírtam köszönöm a helyesbítést. Viszont általába mindig keverni szoktam az && és az || jeleket  és amúgy több sorba egy if sort mégis hogy, lehett folytatni ha, szabad kérdezni?
mert nekem olyan hosszú a listám hogy egy sorba nem fér ki esetleg ezt egy példába be tudnád mutatni kérlek szépen?
« Utoljára szerkesztve: 2014. január 30. - 14:13:39 írta Chris_Antonio »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
/varr Parancs Probléma
« Válasz #3 Dátum: 2014. január 30. - 14:14:27 »
+1 Show voters
Ha az a problémád, hogy túl hosszú a sor, válassz rövidebb változókat. Na meg valahogy sort is lehet törni, de most hirtelen nem tudom hogyan. :(
Vagy oszd két részre:
 
if(valami == 0) // Ha ezeknek megfelel, akkor...
{
    if(valami == 9) // ...megnézi, hogy ezeknek is meg felel e, és ha igen, akkor...
    {
        // ...ez történik.
    }
}
« Utoljára szerkesztve: 2014. január 30. - 14:44:07 írta Dfoglalo »

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
/varr Parancs Probléma
« Válasz #4 Dátum: 2014. január 30. - 14:19:26 »
0 Show voters
Így próbáld meg:
 
...
if(skine != 211 && skine != 217 && skine != 29 && skine != 293 && skine != 285 && skine != 267 && skine != 266 && skine != 265 && skine != 280 && skine != 281 && skine != 282 && skine != 228 && skine != 59 && skine != 186 && skine != 165 && skine != 294 && skine != 147 && skine != 187 && skine != 163 && skine != 171 && skine != 117 && skine != 118 && skine != 121)
{
...
}
...

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
/varr Parancs Probléma
« Válasz #5 Dátum: 2014. január 30. - 14:43:45 »
0 Show voters
Idézetet írta: Gun22 date=1391087966\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46156\" data-ipsquote-contentclass=\"forums_Topic
Így próbáld meg:
 
...
if(skine != 211 && skine != 217 && skine != 29 && skine != 293 && skine != 285 && skine != 267 && skine != 266 && skine != 265 && skine != 280 && skine != 281 && skine != 282 && skine != 228 && skine != 59 && skine != 186 && skine != 165 && skine != 294 && skine != 147 && skine != 187 && skine != 163 && skine != 171 && skine != 117 && skine != 118 && skine != 121)
{
...
}
...

 

Nem ez a problémája, mint kiderült. Amúgy meg ugyanezt írtam le neki én is... Legközelebb figyelj rá, hogy ne írj olyat, amelyet már más leírt neki!
 

Az if nem parancs. De szerintem ez kell neked:
 
if(skine != 19 && skine != 93) // Amennyiben a skine nem 19, és nem is 93
{
    // Ide jön a ruha megvarrása
}

 
Amit te használtál, az az OR, azaz a VAGY ( || ), de neked az AND, azaz az ÉS kell ( && ).
 
[/quote]

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/varr Parancs Probléma
« Válasz #6 Dátum: 2014. január 30. - 14:46:05 »
0 Show voters
skine != 211 || skine != 217

 
HA skine NEM 211 VAGY NEM 217
a VAGY-nál az elsõ IGAZ feltételnél lefut a kód...
beírja a 211-et a játékos:
211 != 211 ez FALSE mivel 211 = 211-el ugye
aztán jön a következõ...
211 != 217 ez TRUE mivel 217 nem = 211-el szóval megtudja varrni a ruhát!
vagy beírod egyesével
 
v != 1 && v!= 2 && v!= 2  && v!= 3 && v!= 4 && v!= 5

 
vagy berakod 1 tömbbe és ciklussal (akár saját függvényben) végig mész az ID-kon és leellenõrzöd...
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

/varr Parancs Probléma
« Válasz #7 Dátum: 2014. január 30. - 15:19:31 »
0 Show voters
Az elsõ részét értettem de, a ciklus és tömb példa alatt nem tudom mire gondolsz bemutatnád kérlek?:) elõre is nagyon köszönöm.

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/varr Parancs Probléma
« Válasz #8 Dátum: 2014. január 31. - 08:01:24 »
+1 Show voters
new BlockedSkins[10] = {0,1,2,3,4,5,6,7,8,9};
stock IsSkinBlocked(skinid)
{
    for(new i = 0; i < sizeof(BlockedSkins); i++)
    {
        if(skinid == BlockedSkins) { return true; }
    }
    return false;
}

 

if(IsSkinBlocked(skinid)) { return SendClientMessage(playerid,COLOR,\"Ezt nem varrhatod!\"); }
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

/varr Parancs Probléma
« Válasz #9 Dátum: 2014. január 31. - 12:39:28 »
0 Show voters
Most Viszont minden skinre azt írja amikor leütöm a parancsot hogy, \"Ezt nem varrhatod!\". Aki tudna segíteni elõre is köszönöm!
Kódrészletek:
 
   if(strcmp(cmd, \"/varr\", true) == 0)
{
    tmp = strtok(cmdtext, idx);
       giveplayerid = ReturnUser(tmp);
       tmp = strtok(cmdtext, idx);
new skine = strval(tmp);
new skinid;
//tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
   SendClientMessage(playerid,COLOR_LIGHTBLUE, \"BloueWard RPG: /varr [JátékosID/NévRészlet] [skinID]\");
   return 1;
}
        if(GetDistanceBetweenPlayers(playerid, giveplayerid) < 5)
       {
            if(PlayerInfo[playerid][pJob] == 24)
            {
            if(PlayerInfo[playerid][Penz] >= 25000)
              {
         if(BlokkoltSkinek(skinid))
         {
            PlayerInfo[giveplayerid][Civilruha2] = skine;
            PlayerInfo[playerid][Penz] -= 25000;
            SafeGivePlayerMoney(playerid, -25000);
            SetPlayerSkin(giveplayerid, skine);
            PlayerInfo[playerid][XP] += 100;
            SendClientMessage(playerid,COLOR_WHITE, \"Sikeres megvarrtad a ruhát! 25.000FT volt az anyagköltség! Kaptál 100XP-t!\");
            SendClientMessage(giveplayerid,COLOR_WHITE, \"Sikeresen varrtak neked egy új ruhát.\");
            new nev[32];
            new nev2[32];
            GetPlayerName(playerid, nev, sizeof(nev));
            GetPlayerName(giveplayerid, nev2, sizeof(nev2));
            new h,mi,s,y,m,d;
            getdate(y,m,d);
            gettime(h,mi,s);
            format(stringx,sizeof(stringx), \"[%d/%d/%d][%d:%d:%d][Ruha] %s varrt egy ruhát %s. SkinID: %d\",y,m,d,h,mi,s,nev,rag(nev2,2),skine);
            LoOoG(stringx);
            format(string, sizeof(string), \"* %s megvarrta a ruhát %s.\", nev, rag(nev2,2));
            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
         } else SendClientMessage(playerid,COLOR_GRAD2, \"Ezt nem varrhatod!\");
      } else SendClientMessage(playerid,COLOR_GRAD2, \"Nincs elég pénzed az alapanyagra! (25.000Ft)\");
   } else SendClientMessage(playerid,COLOR_GRAD2,\"Nem vagy szabó!\");
        }
else
{
   SendClientMessage(playerid, COLOR_GRAD2,\"Nincs a közeledben az illetõ!\");
}
return 1;
}

 

stock BlokkoltSkinek(skinid)
{
for(new i = 0; i < sizeof(TiltottSkinek); i++)
{
    if(skinid == TiltottSkinek)
{
   return true;
}
}
return false;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/varr Parancs Probléma
« Válasz #10 Dátum: 2014. február 01. - 23:34:37 »
+1 Show voters
if(BlokkoltSkinek(skinid))

 
helyett:
 
if(!BlokkoltSkinek(skinid))

 
mert most csak \"blokkolt skint\" tudsz varrni!
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

/varr Parancs Probléma
« Válasz #11 Dátum: 2014. február 02. - 12:44:20 »
0 Show voters
Most viszont tudok minden skinid-t varrni még a tiltottakat is.
Kódrészlet:
 
   if(strcmp(cmd, \"/varr\", true) == 0)
{
    tmp = strtok(cmdtext, idx);
       giveplayerid = ReturnUser(tmp);
       tmp = strtok(cmdtext, idx);
new skine = strval(tmp);
new skinid;
//tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
   SendClientMessage(playerid,COLOR_LIGHTBLUE, \"BloueWard RPG: /varr [JátékosID/NévRészlet] [skinID]\");
   return 1;
}
        if(GetDistanceBetweenPlayers(playerid, giveplayerid) < 5)
       {
            if(PlayerInfo[playerid][pJob] == 24)
            {
            if(PlayerInfo[playerid][Penz] >= 25000)
              {
         if(!BlokkoltSkinek(skinid))
         {
            PlayerInfo[giveplayerid][Civilruha2] = skine;
            PlayerInfo[playerid][Penz] -= 25000;
            SafeGivePlayerMoney(playerid, -25000);
            SetPlayerSkin(giveplayerid, skine);
            PlayerInfo[playerid][XP] += 100;
            SendClientMessage(playerid,COLOR_WHITE, \"Sikeres megvarrtad a ruhát! 25.000FT volt az anyagköltség! Kaptál 100XP-t!\");
            SendClientMessage(giveplayerid,COLOR_WHITE, \"Sikeresen varrtak neked egy új ruhát.\");
            new nev[32];
            new nev2[32];
            GetPlayerName(playerid, nev, sizeof(nev));
            GetPlayerName(giveplayerid, nev2, sizeof(nev2));
            new h,mi,s,y,m,d;
            getdate(y,m,d);
            gettime(h,mi,s);
            format(stringx,sizeof(stringx), \"[%d/%d/%d][%d:%d:%d][Ruha] %s varrt egy ruhát %s. SkinID: %d\",y,m,d,h,mi,s,nev,rag(nev2,2),skine);
            LoOoG(stringx);
            format(string, sizeof(string), \"* %s megvarrta a ruhát %s.\", nev, rag(nev2,2));
            ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
         } else SendClientMessage(playerid,COLOR_GRAD2, \"Ezt nem varrhatod!\");
      } else SendClientMessage(playerid,COLOR_GRAD2, \"Nincs elég pénzed az alapanyagra! (25.000Ft)\");
   } else SendClientMessage(playerid,COLOR_GRAD2,\"Nem vagy szabó!\");
        }
else
{
   SendClientMessage(playerid, COLOR_GRAD2,\"Nincs a közeledben az illetõ!\");
}
return 1;
}

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
/varr Parancs Probléma
« Válasz #12 Dátum: 2014. február 02. - 14:28:00 »
0 Show voters
TiltottSkinek tömböt másold be
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

/varr Parancs Probléma
« Válasz #13 Dátum: 2014. február 02. - 14:30:35 »
0 Show voters
new TiltottSkinek[57] =   { 211, 217, 29 ,293, 285, 267, 266, 265, 280, 281, 282, 228, 59, 186, 165, 294, 147, 187, 163, 171, 117 ,118, 112, 122, 123, 294, 224, 169, 241, 242, 247, 100, 181, 248, 122, 123, 294, 224, 241, 247, 181, 248, 194, 172, 91, 169, 298, 105, 269, 271, 270, 171, 124, 126, 120, 113, 242 };

 

stock BlokkoltSkinek(skinid)
{
for(new i = 0; i < sizeof(TiltottSkinek); i++)
{
    if(skinid == TiltottSkinek)
{
   return true;
}
}
return false;
}

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
/varr Parancs Probléma
« Válasz #14 Dátum: 2014. február 02. - 14:35:27 »
0 Show voters
Nem lenne egyszerûbb simán if-et, és ést használni...?

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal