Szerző Téma: Fegyver  (Megtekintve 1032 alkalommal)

Fegyver
« Dátum: 2016. január 25. - 15:33:33 »
0 Show voters
Sziasztok.
Olyan problémám van, ha veszek fegyvert pl. egy shotgunt nem veszi le a pénzt.
A fegyvert, a töltényeket megkapom , de az előtte lévő fegyverekhez is kapok ugyanannyi töltényt..
Miért van ez?
 
   if(strcmp(cmd, \"/fegyvervesz\", true) == 0)
    {
        if(IsPlayerConnected(playerid))
    {
        tmp = strtok(cmdtext, idx);
      if(!strlen(tmp))
      {
         SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /fegyvervesz [id] [töltény]\");
         SendClientMessage(playerid, COLOR_GRAD2, \"Fegyver árakat és az ID-t a falon találod.\");
         return 1;
      }
      new fegyverid = strval(tmp);
      tmp = strtok(cmdtext, idx);
      new tolteny = strval(tmp);
      if(fegyverid < 2 || fegyverid > 9) { SendClientMessage(playerid, COLOR_GRAD2, \"A fegyver ID-nek 2 és 9 között kell lennie.\"); return 1; }
      if(tolteny < 1 || tolteny > 500) { SendClientMessage(playerid, COLOR_GRAD2, \"A töltényszámnak 1 és 500 között kell lennie!\"); return 1; }
      if(!PlayerToPoint(30.0, playerid, 290.1126,-109.3564,1001.5156)){ SendClientMessage(playerid, COLOR_GRAD2, \"Nem vagy fegyverboltba.\"); return 1; }
      {
       if(PlayerInfo[playerid][fegyver2] == 1) //------------- Baseball ütő
       {
          if(PlayerInfo[playerid][Penz] < tolteny*3000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny2] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*3000;
         format(stringx,sizeof(stringx), \"Vettél még pár baseball ütőt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
       }
       else if(PlayerInfo[playerid][fegyver2] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*3000)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
           PlayerInfo[playerid][fegyver2] = 1;
           PlayerInfo[playerid][tolteny2] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*3000)+0;
                   SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         format(stringx,sizeof(stringx), \"Vettél még pár baseball ütőt %dft-ért.[/elővesz az elővételhez.]\",Penz);
            SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
      }
        if(PlayerInfo[playerid][fegyver3] == 1) //------------- Kés
       {
         if(PlayerInfo[playerid][Penz] < tolteny*1500) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny3] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*1500;
         format(stringx,sizeof(stringx), \"Vettél még pár kést %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
       }
       else if(PlayerInfo[playerid][fegyver3] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*1500)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
           PlayerInfo[playerid][fegyver3] = 1;
           PlayerInfo[playerid][tolteny3] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*1500)+0;
           format(stringx,sizeof(stringx), \"Vettél egy kést %dft-ért.[/elővesz az elővételhez.]\",Penz);
           SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
             }
             if(PlayerInfo[playerid][fegyver4] == 1) //------------- 9MM
       {
                   if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny4] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*300;
         format(stringx,sizeof(stringx), \"Vettél 9mm töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
       }
       else if(PlayerInfo[playerid][fegyver4] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*300)+20000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
           PlayerInfo[playerid][fegyver4] = 1;
           PlayerInfo[playerid][tolteny4] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*300)+20000;
           format(stringx,sizeof(stringx), \"Vettél 9mm-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
           SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
      }
             if(PlayerInfo[playerid][fegyver5] == 1) //------------- Desert Eagle
       {
                   if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny5] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*300;
         format(stringx,sizeof(stringx), \"Vettél Desert Eagle töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
       }
       else if(PlayerInfo[playerid][fegyver5] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*300)+23000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver5] = 1;
           PlayerInfo[playerid][tolteny5] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*300)+23000;
           format(stringx,sizeof(stringx), \"Vettél Desert Eagle-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
      }
      if(PlayerInfo[playerid][fegyver9] == 1) //------------- Shotgun
       {
                   if(PlayerInfo[playerid][Penz] < tolteny*350) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny9] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*350;
         format(stringx,sizeof(stringx), \"Vettél Shotgun töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
       }
       else if(PlayerInfo[playerid][fegyver9] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*350)+32000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver9] = 1;
           PlayerInfo[playerid][tolteny9] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*350)+32000;
           format(stringx,sizeof(stringx), \"Vettél Shotgunt %dft-ért.[/elővesz az elővételhez.]\",Penz);
                 SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
      }
             if(PlayerInfo[playerid][fegyver6] == 1) //------------- MP5
       {
               if(PlayerInfo[playerid][Penz] < tolteny*380) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny6] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*380;
         format(stringx,sizeof(stringx), \"Vettél MP5 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
       }
       else if(PlayerInfo[playerid][fegyver6] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*380)+40000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver6] = 1;
           PlayerInfo[playerid][tolteny6] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*380)+40000;
                 format(stringx,sizeof(stringx), \"Vettél MP5-öt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
      }
        if(PlayerInfo[playerid][fegyver7] == 1) //------------- AK47
       {
                   if(PlayerInfo[playerid][Penz] < tolteny*400) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny7] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*400;
         format(stringx,sizeof(stringx), \"Vettél AK47 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
       }
       else if(PlayerInfo[playerid][fegyver7] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*400)+50000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver7] = 1;
           PlayerInfo[playerid][tolteny7] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*400)+50000;
           format(stringx,sizeof(stringx), \"Vettél AK47-et %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
      }
      }
}
return 1;
}

Fegyver
« Válasz #1 Dátum: 2016. január 30. - 22:32:05 »
0 Show voters
Szia!
A pénzt ugyan elveszi ugyan, de csak a játékos változójánál történik változás.
Lásd:
 
PlayerInfo[playerid][Penz] -= érték;

 
Gondolom, a jobb fölső sarokban lévő pénz ezért nem változik.
Ezért az érték adás után használd a GivePlayerMoney() függvényt.
Lásd:
 
GivePlayerMoney(playerid, -érték);

 
Ez természetesen csak egy megoldás a sok közül.
Azt sajnos ebből a kódból nem tudom neked megállapítani, hogy miért csinálja azt, hogy:
\"A fegyvert, a töltényeket megkapom , de az előtte lévő fegyverekhez is kapok ugyanannyi töltényt..\"
-A töltényX -et felhasználod ezen kereteken kívül máshol? Ha igen kérlek másold be nekünk, hogy segíthessünk.

Fegyver
« Válasz #2 Dátum: 2016. január 31. - 13:11:36 »
+1 Show voters
M[K]_Sh1ft_\" post=\"568001\" timestamp=\"1454189525\"]
Szia!
A pénzt ugyan elveszi ugyan, de csak a játékos változójánál történik változás.
Lásd:
 
PlayerInfo[playerid][Penz] -= érték;

 
Gondolom, a jobb fölső sarokban lévő pénz ezért nem változik.
Ezért az érték adás után használd a GivePlayerMoney() függvényt.
Lásd:
 
GivePlayerMoney(playerid, -érték);

 
Ez természetesen csak egy megoldás a sok közül.
Azt sajnos ebből a kódból nem tudom neked megállapítani, hogy miért csinálja azt, hogy:
\"A fegyvert, a töltényeket megkapom , de az előtte lévő fegyverekhez is kapok ugyanannyi töltényt..\"
-A töltényX -et felhasználod ezen kereteken kívül máshol? Ha igen kérlek másold be nekünk, hogy segíthessünk.
 
[/quote]
ez hülyeség... nem picit...
1. kérdésem:
new fegyverid = strval(tmp);  van egy ilyened amivel bekéred a fegyver ID-t
new tolteny = strval(tmp); ezzel meg a töltényt
akkor a fegyverid miért nem szerepel sehol utána a parancsban?
Nem ez a baj véletlen?
az meg hogy megkapod az összes fegyvert, returnokat használj vagy switchet és nem fogod megkapni.. 

Fegyver
« Válasz #3 Dátum: 2016. február 23. - 17:56:37 »
0 Show voters
Mindegyik után raktam returnt és ugy se jó..
Nem veszi le a pénzt, csak a baseball ütőt kapom meg...

Fegyver
« Válasz #4 Dátum: 2016. március 01. - 20:01:21 »
0 Show voters
Nos, ahogy mondtad a fegyverid volt az egyik probléma, felhasználtam , mostmár megkapom azt a fegyvert amit szeretnék, és annyi töltényt amennyit kérek.
Egy probléma. A pénzt még mindig nem vonja le.. se azt ha nincs fegyverem es akkor veszek se akkor ha van es csak toltenyt veszek..
 
   if(strcmp(cmd, \"/fegyvervesz\", true) == 0)
    {
        if(IsPlayerConnected(playerid))
    {
        tmp = strtok(cmdtext, idx);
      if(!strlen(tmp))
      {
         SendClientMessage(playerid, COLOR_GRAD2, \"Használat: /fegyvervesz [id] [töltény]\");
         SendClientMessage(playerid, COLOR_GRAD2, \"Fegyver árakat és az ID-t atáblán találod.\");
         return 1;
      }
      new fegyverid = strval(tmp);
      tmp = strtok(cmdtext, idx);
      new tolteny = strval(tmp);
      if(fegyverid < 2 || fegyverid > 9) { SendClientMessage(playerid, COLOR_GRAD2, \"A fegyver ID-nek 2 és 9 között kell lennie.\"); return 1; }
      if(tolteny < 1 || tolteny > 500) { SendClientMessage(playerid, COLOR_GRAD2, \"A töltényszámnak 1 és 500 között kell lennie!\"); return 1; }
      if(!PlayerToPoint(30.0, playerid, 290.1126,-109.3564,1001.5156)){ SendClientMessage(playerid, COLOR_GRAD2, \"Nem vagy fegyverboltba.\"); return 1; }
      {
   if(fegyverid==2)
   {
       if(PlayerInfo[playerid][fegyver2] == 1) //------------- Baseball ütő
       {
         format(stringx,sizeof(stringx), \"Már van egy ütőd..\");
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
       }
       else if(PlayerInfo[playerid][fegyver2] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*3000)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
           PlayerInfo[playerid][fegyver2] = 1;
           PlayerInfo[playerid][tolteny2] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*3000)+0;
                   SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         format(stringx,sizeof(stringx), \"Vettél még pár baseball ütőt %dft-ért.[/elővesz az elővételhez.]\",Penz);
            SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
            return 1;
      }
   }
   if(fegyverid==3)
   {
        if(PlayerInfo[playerid][fegyver3] == 1) //------------- Kés
       {
         format(stringx,sizeof(stringx), \"Már van egy késed..\");
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
       }
       else if(PlayerInfo[playerid][fegyver3] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*1500)+0) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
           PlayerInfo[playerid][fegyver3] = 1;
           PlayerInfo[playerid][tolteny3] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*1500)+0;
           format(stringx,sizeof(stringx), \"Vettél egy kést %dft-ért.[/elővesz az elővételhez.]\",Penz);
           SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
           return 1;
             }
       }
   if(fegyverid==4)
   {
             if(PlayerInfo[playerid][fegyver4] == 1) //------------- 9MM
       {
                   if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny4] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*300;
         format(stringx,sizeof(stringx), \"Vettél 9mm töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
       }
       else if(PlayerInfo[playerid][fegyver4] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*300)+20000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed.\");
           PlayerInfo[playerid][fegyver4] = 1;
           PlayerInfo[playerid][tolteny4] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*300)+20000;
           format(stringx,sizeof(stringx), \"Vettél 9mm-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
           SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
      }
   }
   if(fegyverid==5)
   {
             if(PlayerInfo[playerid][fegyver5] == 1) //------------- Desert Eagle
       {
         if(PlayerInfo[playerid][Penz] < tolteny*300) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny5] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*300;
         format(stringx,sizeof(stringx), \"Vettél Desert Eagle töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
       }
       else if(PlayerInfo[playerid][fegyver5] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*300)+23000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver5] = 1;
           PlayerInfo[playerid][tolteny5] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*300)+23000;
           format(stringx,sizeof(stringx), \"Vettél Desert Eagle-t %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
      }
   }
   if(fegyverid==9)
   {
      if(PlayerInfo[playerid][fegyver9] == 1) //------------- Shotgun
       {
                   if(PlayerInfo[playerid][Penz] < tolteny*350) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny9] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*350;
         format(stringx,sizeof(stringx), \"Vettél Shotgun töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
       }
       else if(PlayerInfo[playerid][fegyver9] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*350)+32000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver9] = 1;
           PlayerInfo[playerid][tolteny9] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*350)+32000;
           format(stringx,sizeof(stringx), \"Vettél Shotgunt %dft-ért.[/elővesz az elővételhez.]\",Penz);
                 SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
           return 1;
      }
   }
   if(fegyverid==6)
   {
             if(PlayerInfo[playerid][fegyver6] == 1) //------------- MP5
       {
               if(PlayerInfo[playerid][Penz] < tolteny*380) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny6] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*380;
         format(stringx,sizeof(stringx), \"Vettél MP5 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
       }
       else if(PlayerInfo[playerid][fegyver6] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*380)+40000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver6] = 1;
           PlayerInfo[playerid][tolteny6] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*380)+40000;
                 format(stringx,sizeof(stringx), \"Vettél MP5-öt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
      }
   }
   if(fegyverid==7)
   {
        if(PlayerInfo[playerid][fegyver7] == 1) //------------- AK47
       {
                   if(PlayerInfo[playerid][Penz] < tolteny*400) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
          PlayerInfo[playerid][tolteny7] += tolteny;
          PlayerInfo[playerid][Penz] -= tolteny*400;
         format(stringx,sizeof(stringx), \"Vettél AK47 töltényt %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
       }
       else if(PlayerInfo[playerid][fegyver7] == 0)
       {
           if(PlayerInfo[playerid][Penz] < (tolteny*400)+50000) return SendClientMessage(playerid,-1,\"Nincs elég pénzed ennyi töltényre..\");
           PlayerInfo[playerid][fegyver7] = 1;
           PlayerInfo[playerid][tolteny7] += tolteny;
           PlayerInfo[playerid][Penz] -= (tolteny*400)+50000;
           format(stringx,sizeof(stringx), \"Vettél AK47-et %dft-ért.[/elővesz az elővételhez.]\",Penz);
         SendClientMessage(playerid, COLOR_LIGHTRED, stringx);
         return 1;
      }
   }
      }
}
return 1;
}
« Utoljára szerkesztve: 2016. március 01. - 20:08:49 írta Devil112 »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal