Szerző Téma: /tankol több helyen  (Megtekintve 1367 alkalommal)

/tankol több helyen
« Dátum: 2014. július 31. - 18:17:04 »
0 Show voters
Sziasztok.Defensive módba akadt egy kis gondom.Mégpedig az ,hogy a Tankol parancsot csak 1 helyen tudom használni.Próbálgattam,de nem sikerült megoldanom hogy több helyen is mûködjön,azaz több IsPlayerOnRangeOfPoint-on mûködjön.
[pawn]CMD:tankol(playerid, params[])
{
new Liter, Mibol, S[128], uzemanyag[50];
new VehID = GetClosestCar(playerid);
new Float: vX, Float: vY, Float: vZ;
GetVehiclePos(VehID, vY, vX, vZ);
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, PIROS, \"Jármûbõl nem tankolhatsz!\");
if(!IsPlayerInRangeOfPoint(playerid, 5.5, vY, vX, vZ)) return SendClientMessage(playerid, PIROS, \"Nincs a közeledben jármû!\");
if(!IsPlayerInRangeOfPoint(playerid, 20.0, 2202.3044,2474.2871,10.8203)||IsPlayerInRangeOfPoint(playerid,20.0,2113.5823,920.4284,10.8203)
||IsPlayerInRangeOfPoint(playerid,20.0,1597.0541,2199.2380,10.8203)||IsPlayerInRangeOfPoint(playerid,20.0,2639.2878,1106.8866,10.8203) ) return SendClientMessage(playerid, PIROS, \"Itt nem tankolhatsz!\");
if(sscanf(params, \"dd\", Mibol, Liter)) return SendClientMessage(playerid, PIROS, \"Használat: /tankol < Benzin($5/liter) - 1 | Gázolaj($5/liter) - 2 > < Mennyit >\");
if(vInfo[VehID][bEINDITVA] == true) return SendClientMessage(playerid, PIROS, \"Elõbb állítsd le a motort!\");
if(vInfo[VehID][uZEMANYAGTIPUS] == 0) return SendClientMessage(playerid, PIROS, \"Ebbe a jármûbe nem tudsz tankolni.\");
if(Mibol < 1 || Mibol > 2) return SendClientMessage(playerid, PIROS, \"Érvénytelen üzemanyagfajta.\");
if(Liter == 0) return SendClientMessage(playerid, PIROS, \"Nem tankolhatsz 0 Litert!\");
if(vInfo[VehID][uZEMANYAG] + Liter > vInfo[VehID][MAXUZEMANYAG]) return SendClientMessage(playerid, PIROS, \"Nem fér bele ennyi üzemanyag!\");
if(vInfo[VehID][uZEMANYAGTIPUS] != vInfo[VehID][uZEMANYAGTIPUSVAN]) return SendClientMessage(playerid, PIROS, \"Amíg rossz üzemanyag van a kocsiban nem tankolhatsz!\");
if(Mibol == 1 && Liter > Benzin) return SendClientMessage(playerid, PIROS, \"Sajnos nincsen ennyi benzin a kúton!\");
if(Mibol == 2 && Liter > Diesel) return SendClientMessage(playerid, PIROS, \"Sajnos nincsen ennyi gázolaj a kúton!\");
vInfo[VehID][uZEMANYAG] += Liter;
vInfo[VehID][uZEMANYAGTIPUSVAN] = Mibol;
switch(vInfo[VehID][uZEMANYAGTIPUSVAN])
{
   case BENZIN: { uzemanyag = \"benzint\"; }
   case DIESEL: { uzemanyag = \"gázolajat\"; }
}
switch(Mibol)
{
   case 1:
   {
      Benzin -= Liter;
      pInfo[playerid][pMoney] -= 5*Liter;
      kInfo[VarosKassza] += 5*Liter;
      KasszaMent();
      format(S, sizeof(S), \"[iNFO]Tankoltál %d litert $%d értékben.\", Liter, 5*Liter);
      SendClientMessage(playerid, VILAGOSKEK, S);
      if(VehID < 200)
      {
                pInfo[playerid][pMoney] += 5*Liter;
                SendClientMessage(playerid, VILAGOSSZURKE, \"Munka jármûved tankolását céged állta!\");
      }
   }
   case 2:
   {
      Diesel -= Liter;
      pInfo[playerid][pMoney] -= 5*Liter;
      kInfo[VarosKassza] += 5*Liter;
      KasszaMent();
      format(S, sizeof(S), \"[iNFO]Tankoltál %d litert $%d értékben.\", Liter, 5*Liter);
      SendClientMessage(playerid, PIROS, S);
      if(VehID < 200)
      {
                pInfo[playerid][pMoney] += 5*Liter;
                SendClientMessage(playerid, VILAGOSSZURKE, \"Munka jármûved tankolását céged állta!\");
      }
   }
}
UzemanyagMent();
return 1;
}
[/pawn]
Elõre is köszönöm a segítséget!

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
/tankol több helyen
« Válasz #1 Dátum: 2014. július 31. - 18:39:49 »
0 Show voters
if(!IsPlayerInRangeOfPoint(playerid, 20.0, 2202.3044,2474.2871,10.8203) && !IsPlayerInRangeOfPoint(playerid,20.0,2113.5823,920.4284,10.8203)
&& !IsPlayerInRangeOfPoint(playerid,20.0,1597.0541,2199.2380,10.8203) && !IsPlayerInRangeOfPoint(playerid,20.0,2639.2878,1106.8866,10.8203)) return SendClientMessage(playerid, PIROS, \"Itt nem tankolhatsz!\");

Nem elérhető Szasza

  • 388
    • Profil megtekintése
/tankol több helyen
« Válasz #2 Dátum: 2014. július 31. - 19:21:49 »
0 Show voters
A && operátor azt jelenti hogy és ... tehát most az összes pozíción kellene lenned azért hogy tankolhass... a helyes operátor ide a || (vagy).

/tankol több helyen
« Válasz #3 Dátum: 2014. július 31. - 19:33:02 »
0 Show voters
A gond az hogy csak a legelso pontot erzekeli,es csak ott enged tankolni....

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
/tankol több helyen
« Válasz #4 Dátum: 2014. július 31. - 20:10:37 »
0 Show voters
Idézetet írta: Szasza date=1406827309\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49775\" data-ipsquote-contentclass=\"forums_Topic
A && operátor azt jelenti hogy és ... tehát most az összes pozíción kellene lenned azért hogy tankolhass... a helyes operátor ide a || (vagy).
 
De mivel tagadom az IPIROP-t, ezért kell && operátor.
Ha NEM itt: 2202.3044,2474.2871,10.8203 és(&&) NEM itt: 2113.5823,920.4284,10.820 van, akkor visszatér egy üzenettel.
Ha ott van, akkor pedig lefut a parancs.

/tankol több helyen
« Válasz #5 Dátum: 2014. augusztus 02. - 08:36:44 »
0 Show voters
Tessék, kaptál elég helyet.
[pawn]CMD:tankol(playerid, params[])
{
        new Liter, Mibol, S[128], uzemanyag[50];
        new VehID = GetClosestCar(playerid);
        new Float: vX, Float: vY, Float: vZ;
        GetVehiclePos(VehID, vY, vX, vZ);
        if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, PIROS, \"Jármûbõl nem tankolhatsz!\");
        if(!IsPlayerInRangeOfPoint(playerid, 5.5, vY, vX, vZ)) return SendClientMessage(playerid, PIROS, \"Nincs a közeledben jármû!\");
     if(IsPlayerInRangeOfPoint(playerid, 15.0, 251.4139,159.9121,1.6400) || IsPlayerInRangeOfPoint(playerid, 15.0, 251.4139,159.9121,1.6400)|| IsPlayerInRangeOfPoint(playerid, 5, -933.5542,2648.7329,42.2537)|| IsPlayerInRangeOfPoint(playerid, 5, -930.1384,2651.8123,42.2850)|| IsPlayerInRangeOfPoint(playerid, 5, -926.9375,2655.1233,42.1842)||
IsPlayerInRangeOfPoint(playerid, 5, -924.1251,2657.6746,42.0119)|| IsPlayerInRangeOfPoint(playerid, 5, -922.0391,2659.8318,41.9039)|| IsPlayerInRangeOfPoint(playerid, 5, -920.0023,2661.9390,42.0853)|| IsPlayerInRangeOfPoint(playerid, 5, -917.6809,2664.3411,42.2920))
{
        if(sscanf(params, \"dd\", Mibol, Liter)) return SendClientMessage(playerid, PIROS, \"Használat: /tankol < Benzin($5/liter) - 1 | Gázolaj($5/liter) - 2 > < Mennyit >\");
        if(vInfo[VehID][bEINDITVA] == true) return SendClientMessage(playerid, PIROS, \"Elõbb állítsd le a motort!\");
        if(vInfo[VehID][uZEMANYAGTIPUS] == 0) return SendClientMessage(playerid, PIROS, \"Ebbe a jármûbe nem tudsz tankolni.\");
        if(Mibol < 1 || Mibol > 2) return SendClientMessage(playerid, PIROS, \"Érvénytelen üzemanyagfajta.\");
        if(Liter == 0) return SendClientMessage(playerid, PIROS, \"Nem tankolhatsz 0 Litert!\");
        if(vInfo[VehID][uZEMANYAG] + Liter > vInfo[VehID][MAXUZEMANYAG]) return SendClientMessage(playerid, PIROS, \"Nem fér bele ennyi üzemanyag!\");
        if(vInfo[VehID][uZEMANYAGTIPUS] != vInfo[VehID][uZEMANYAGTIPUSVAN]) return SendClientMessage(playerid, PIROS, \"Amíg rossz üzemanyag van a kocsiban nem tankolhatsz!\");
        if(Mibol == 1 && Liter > Benzin) return SendClientMessage(playerid, PIROS, \"Sajnos nincsen ennyi benzin a kúton!\");
        if(Mibol == 2 && Liter > Diesel) return SendClientMessage(playerid, PIROS, \"Sajnos nincsen ennyi gázolaj a kúton!\");
        vInfo[VehID][uZEMANYAG] += Liter;
        vInfo[VehID][uZEMANYAGTIPUSVAN] = Mibol;
        }
        switch(vInfo[VehID][uZEMANYAGTIPUSVAN])
        {
                case BENZIN: { uzemanyag = \"benzint\"; }
                case DIESEL: { uzemanyag = \"gázolajat\"; }
        }
        switch(Mibol)
        {
                case 1:
                {
                        Benzin -= Liter;
                        pInfo[playerid][pMoney] -= 5*Liter;
                        kInfo[VarosKassza] += 5*Liter;
                        KasszaMent();
                        format(S, sizeof(S), \"[iNFO]Tankoltál %d litert $%d értékben.\", Liter, 5*Liter);
                        SendClientMessage(playerid, VILAGOSKEK, S);
                        if(VehID < 200)
                        {
                pInfo[playerid][pMoney] += 5*Liter;
                SendClientMessage(playerid, VILAGOSSZURKE, \"Munka jármûved tankolását céged állta!\");
                        }
                }
                case 2:
                {
                        Diesel -= Liter;
                        pInfo[playerid][pMoney] -= 5*Liter;
                        kInfo[VarosKassza] += 5*Liter;
                        KasszaMent();
                        format(S, sizeof(S), \"[iNFO]Tankoltál %d litert $%d értékben.\", Liter, 5*Liter);
                        SendClientMessage(playerid, PIROS, S);
                        if(VehID < 200)
                        {
                pInfo[playerid][pMoney] += 5*Liter;
                SendClientMessage(playerid, VILAGOSSZURKE, \"Munka jármûved tankolását céged állta!\");
                        }
                }
        }
    UzemanyagMent();
        return 1;
        }[/pawn]

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
/tankol több helyen
« Válasz #6 Dátum: 2014. augusztus 02. - 10:04:31 »
0 Show voters
Ryan_Adam, a tiéd is hibás, mivel csak eddig a sorig ellenõrzi, hogy benzinkúton van:
 
vInfo[VehID][uZEMANYAGTIPUSVAN] = Mibol;

/tankol több helyen
« Válasz #7 Dátum: 2014. augusztus 03. - 12:48:04 »
0 Show voters
Igazad van, nem is tudom miért oda tettem :S
Javítva:
[pawn]CMD:tankol(playerid, params[])
{
        new Liter, Mibol, S[128], uzemanyag[50];
        new VehID = GetClosestCar(playerid);
        new Float: vX, Float: vY, Float: vZ;
        GetVehiclePos(VehID, vY, vX, vZ);
        if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, PIROS, \"Jármûbõl nem tankolhatsz!\");
        if(!IsPlayerInRangeOfPoint(playerid, 5.5, vY, vX, vZ)) return SendClientMessage(playerid, PIROS, \"Nincs a közeledben jármû!\");
     if(IsPlayerInRangeOfPoint(playerid, 15.0, 251.4139,159.9121,1.6400) || IsPlayerInRangeOfPoint(playerid, 15.0, 251.4139,159.9121,1.6400)|| IsPlayerInRangeOfPoint(playerid, 5, -933.5542,2648.7329,42.2537)|| IsPlayerInRangeOfPoint(playerid, 5, -930.1384,2651.8123,42.2850)|| IsPlayerInRangeOfPoint(playerid, 5, -926.9375,2655.1233,42.1842)||
        IsPlayerInRangeOfPoint(playerid, 5, -924.1251,2657.6746,42.0119)|| IsPlayerInRangeOfPoint(playerid, 5, -922.0391,2659.8318,41.9039)|| IsPlayerInRangeOfPoint(playerid, 5, -920.0023,2661.9390,42.0853)|| IsPlayerInRangeOfPoint(playerid, 5, -917.6809,2664.3411,42.2920))
        {
        if(sscanf(params, \"dd\", Mibol, Liter)) return SendClientMessage(playerid, PIROS, \"Használat: /tankol < Benzin($5/liter) - 1 | Gázolaj($5/liter) - 2 > < Mennyit >\");
        if(vInfo[VehID][bEINDITVA] == true) return SendClientMessage(playerid, PIROS, \"Elõbb állítsd le a motort!\");
        if(vInfo[VehID][uZEMANYAGTIPUS] == 0) return SendClientMessage(playerid, PIROS, \"Ebbe a jármûbe nem tudsz tankolni.\");
        if(Mibol < 1 || Mibol > 2) return SendClientMessage(playerid, PIROS, \"Érvénytelen üzemanyagfajta.\");
        if(Liter == 0) return SendClientMessage(playerid, PIROS, \"Nem tankolhatsz 0 Litert!\");
        if(vInfo[VehID][uZEMANYAG] + Liter > vInfo[VehID][MAXUZEMANYAG]) return SendClientMessage(playerid, PIROS, \"Nem fér bele ennyi üzemanyag!\");
        if(vInfo[VehID][uZEMANYAGTIPUS] != vInfo[VehID][uZEMANYAGTIPUSVAN]) return SendClientMessage(playerid, PIROS, \"Amíg rossz üzemanyag van a kocsiban nem tankolhatsz!\");
        if(Mibol == 1 && Liter > Benzin) return SendClientMessage(playerid, PIROS, \"Sajnos nincsen ennyi benzin a kúton!\");
        if(Mibol == 2 && Liter > Diesel) return SendClientMessage(playerid, PIROS, \"Sajnos nincsen ennyi gázolaj a kúton!\");
        vInfo[VehID][uZEMANYAG] += Liter;
        vInfo[VehID][uZEMANYAGTIPUSVAN] = Mibol;
        switch(vInfo[VehID][uZEMANYAGTIPUSVAN])
        {
                case BENZIN: { uzemanyag = \"benzint\"; }
                case DIESEL: { uzemanyag = \"gázolajat\"; }
        }
        switch(Mibol)
        {
                case 1:
                {
                        Benzin -= Liter;
                        pInfo[playerid][pMoney] -= 5*Liter;
                        kInfo[VarosKassza] += 5*Liter;
                        KasszaMent();
                        format(S, sizeof(S), \"[iNFO]Tankoltál %d litert $%d értékben.\", Liter, 5*Liter);
                        SendClientMessage(playerid, VILAGOSKEK, S);
                        if(VehID < 200)
                        {
                pInfo[playerid][pMoney] += 5*Liter;
                SendClientMessage(playerid, VILAGOSSZURKE, \"Munka jármûved tankolását céged állta!\");
                        }
                }
                case 2:
                {
                        Diesel -= Liter;
                        pInfo[playerid][pMoney] -= 5*Liter;
                        kInfo[VarosKassza] += 5*Liter;
                        KasszaMent();
                        format(S, sizeof(S), \"[iNFO]Tankoltál %d litert $%d értékben.\", Liter, 5*Liter);
                        SendClientMessage(playerid, PIROS, S);
                        if(VehID < 200)
                        {
                pInfo[playerid][pMoney] += 5*Liter;
                SendClientMessage(playerid, VILAGOSSZURKE, \"Munka jármûved tankolását céged állta!\");
                        }
                }
        }
}       
    UzemanyagMent();
        return 1;
        }[/pawn]

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
/tankol több helyen
« Válasz #8 Dátum: 2014. augusztus 12. - 19:19:04 »
0 Show voters
[mod]Ha megoldódott a téma, kérlek zárd![/mod]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal