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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: RaySurenos - 2014. március 07. - 15:35:07

Cím: [Dialog] Egyszerû WeaponLekérõ (pénz szükséges)
Írta: RaySurenos - 2014. március 07. - 15:35:07
Helló.
Egyszerû Dialogos WeaponLekérõ.
Számít hogy a játékosnak mennyi pénze van, ha nincs pénze akkor nem tud fegyvert vásárolni.
Team DeathMatch szerverre van tervezve, szóval nincs megadva hogy hol kell lenni-e a játékosnak hogy használni tudja parancsot stb.
Nem teszteltem, szóval lehet hogy nem mûködik.
Készítõ: Ray
Színkódok:
#define vpiros 0xFF6347AA
#define vkek 0x33CCFFAA
#define vzöld 0x9ACD32AA

 
A mód elejére:
#define bolt 100

 
Maga a Dialog:
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        if(dialogid == bolt)
        {
            if(response)
            {
      if(listitem == 0)
                {
         if(GetPlayerMoney(playerid) >= 1500) // megnézzük mennyi pénze van a játékosnak.
         {
            GivePlayerWeapon(playerid,31,150); // megadja a fegyvert hogyha van elegendõ pénze a játékosnak.
            SendClientMessage(playerid, vzöld, \"Megvetted 1500$-ért az alábbi fegyvert: M4! | TölténySzám: +150db\"); // ha megvette a fegyvert akkor a szöveg.
            GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1500); // levonja a pénzt.
         }
         else
         {
            new formatpenz[128];
            new szukseges = GetPlayerMoney(playerid)-1500 // Megnézi mennyi szükséges még hogy megvegye a fegyvert. Kivonja a játékosnak a pénzébõl a fegyver árát. (Pl. a játékosnak van 500$-ja, abból kivonva a fegyver árát 1000$-t kapunk.
            format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges); // formázzuk a formatpenzt
            SendClientMessage(playerid, vpiros, formatpenz); // elküldjük a játékosnak a msgt
         }
                }
                if(listitem == 1)
                {
         if(GetPlayerMoney(playerid) >= 1000)
         {
            GivePlayerWeapon(playerid,30,150);
            SendClientMessage(playerid, vzöld, \"Megvetted 1000$-ért az alábbi fegyvert: Ak47! | TölténySzám: +150db\");
            GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1000);
         }
         else
         {
            new formatpenz[128];
            new szukseges = GetPlayerMoney(playerid)-1500
            format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
            SendClientMessage(playerid, vpiros, formatpenz);
         }
                }
      if(listitem == 2)
      {
         if(GetPlayerMoney(playerid) >= 800)
         {
            GivePlayerWeapon(playerid,29,150);
            SendClientMessage(playerid, vzöld, \"Megvetted 800$-ért az alábbi fegyvert: Mp5! | TölténySzám: +150db\");
            GivePlayerMoney(playerid, GetPlayerMoney(playerid)-800);
         }
         else
         {
            new formatpenz[128];
            new szukseges = GetPlayerMoney(playerid)-1500
            format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
            SendClientMessage(playerid, vpiros, formatpenz);
         }
      }
      if(listitem == 3)
      {
         if(GetPlayerMoney(playerid) >= 800)
         {
            GivePlayerWeapon(playerid,33,30);
            SendClientMessage(playerid, vzöld, \"Megvetted 800$-ért az alábbi fegyvert: Rifle! | TölténySzám: +30db\");
            GivePlayerMoney(playerid, GetPlayerMoney(playerid)-800);
         }
         else
         {
            new formatpenz[128];
            new szukseges = GetPlayerMoney(playerid)-1500
            format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
            SendClientMessage(playerid, vpiros, formatpenz);
         }
      }
      if(listitem == 4)
      {
         if(GetPlayerMoney(playerid) >= 1200)
         {
            GivePlayerWeapon(playerid,34,30);
            SendClientMessage(playerid, vzöld, \"Megvetted 1200$-ért az alábbi fegyvert: Sniper! | TölténySzám: +30db\");
            GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1200);
         }
         else
         {
            new formatpenz[128];
            new szukseges = GetPlayerMoney(playerid)-1500
            format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
            SendClientMessage(playerid, vpiros, formatpenz);
         }
      }
      if(listitem == 5)
      {
         if(GetPlayerMoney(playerid) >= 1000)
         {
            GivePlayerWeapon(playerid,27,50);
            SendClientMessage(playerid, vzöld, \"Megvetted 1000$-ért az alábbi fegyvert: Combat! | TölténySzám: +50db\");
            GivePlayerMoney(playerid, GetPlayerMoney(playerid)-1000);
         }
         else
         {
            new formatpenz[128];
            new szukseges = GetPlayerMoney(playerid)-1500
            format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
            SendClientMessage(playerid, vpiros, formatpenz);
         }
      }
      if(listitem == 6)
      {
         if(GetPlayerMoney(playerid) >= 750)
         {
            GivePlayerWeapon(playerid,25,60);
            SendClientMessage(playerid, vzöld, \"Megvetted 750$-ért az alábbi fegyvert: Shotgun! | TölténySzám: +60db\");
            GivePlayerMoney(playerid, GetPlayerMoney(playerid)-750);
         }
         else
         {
            new formatpenz[128];
            new szukseges = GetPlayerMoney(playerid)-1500
            format(formatpenz, sizeof(formatpenz), \"Nincs elég pénzed! Szükséges még: %d$!\", szukseges);
            SendClientMessage(playerid, vpiros, formatpenz);
         }
      }
   }
}
return 1;
}

 
A parancs, amivel elõhozza a dialogot a játékosnak:
 
   CMD:shop(playerid, params[])
{
 ShowPlayerDialog(playerid, bolt, DIALOG_STYLE_LIST, \"{8B4513}Shop - Bolt\", \"M4\\n\\
 Ak47\\n\\
 Mp5\\n\\
 Rifle\\n\\
 Sniper\\n\\
 Combat\\n\\
 Shotgun\", \"Megvesz\", \"Mégse\");
 return 1;
}

 
Igen meglehetett volna rövidebben is írni, de direkt így csináltam, mert szerintem így átláthatóbb. (Amire gondolok: else, stb)
Cím: [Dialog] Egyszerû WeaponLekérõ (pénz szükséges)
Írta: gyuri98 - 2014. március 09. - 13:15:14
Szia nem rossz ha kezdõ vagy.
Adok neked 1 + -t
Cím: [Dialog] Egyszerû WeaponLekérõ (pénz szükséges)
Írta: RaySurenos - 2014. március 09. - 14:21:07
Van benne egy hiba, elrontottam.
 new szukseges = GetPlayerMoney(playerid)-1500
Mindenhol 1500-at von le, \"-1500\" helyére a fegyver árát kell írni, csak én elfelejtettem.  >:D
Cím: [Dialog] Egyszerû WeaponLekérõ (pénz szükséges)
Írta: [(The_Pro_Kari)] - 2014. március 09. - 17:01:06
Mivel kezdõ vagy így nem rossz csak így tovább! :D