GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: TRSinan28 - 05 Temmuz 2017, 17:50:41

Başlık: /skordukkani ve /paradukkani
Gönderen: TRSinan28 - 05 Temmuz 2017, 17:50:41
Arkadaşlar gtatürkte skorla parayı ve parayla skoru takas etme sistemini buldum fakat çalışmadı.Bana /skordukkani yazınca para karşılığı skoru,/paradukkani yazınca skor karşılığı parayı takas edecek dialoglu bir sistem lazım.Yardım edeceklere şimdiden TEŞEEKÜRLER :)
Başlık: Ynt: /skordukkani ve /paradukkani
Gönderen: FrankTR - 06 Temmuz 2017, 09:57:56
Merhaba,

Modun üst kısımlarına;
#define SKORDIALOG 6745

Zcmd kullanıyormusun bilmiyorum ama bunu OnPlayerCommandText publicine;

if(!strcmp(cmdtext, "/skordukkani"))
     {
        ShowPlayerDialog(playerid, SKORDIALOG, DIALOG_STYLE_LIST "Skor Dukkani", "1000 $ > 1 Skor\n2000 $ > 2 Skor\n5000 $ > 5 Skor\n10000 $ > 10 Skor", "Onayla", "İptal");
        return 1;
     }




OnDialogResponse Publicine;
  if(dialogid == SKORDIALOG)
    {
        if(response)
        {
            switch(listitem)
            {

case 0: if(GetPlayerMoney(playerid) > 1000)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
GivePlayerMoney(playerid, -1000);
SendClientMessage(playerid, 0xFFFFFFFF, "1000$ Karşılığı 1 Skor Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda paranız bulunmamaktadır.");

case 1: if(GetPlayerMoney(playerid) > 2000)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) + 2);
GivePlayerMoney(playerid, -2000);
SendClientMessage(playerid, 0xFFFFFFFF, "2000$ Karşılığı 2 Skor Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda paranız bulunmamaktadır.");

case 2: if(GetPlayerMoney(playerid) > 5000)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) + 5);
GivePlayerMoney(playerid, -5000);
SendClientMessage(playerid, 0xFFFFFFFF, "5000$ Karşılığı 5 Skor Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda paranız bulunmamaktadır.");

case 3: if(GetPlayerMoney(playerid) > 10000)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) + 10);
GivePlayerMoney(playerid, -10000);
SendClientMessage(playerid, 0xFFFFFFFF, "10000$ Karşılığı 10 Skor Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda paranız bulunmamaktadır.");               
           
            }
        }
        return 1;
    }


..atarsan çalışacağını umuyorum. Komutu istediğin gibi skordukkani yaptım. İlk fırsatta da paradukkani versiyonunu yapıp burda paylaşacağım. Bu arada dengeyi 1000$'a 1 Skor olarak ayarladım. Beğenmediğin kısımları editlersin. Umarım işine yarar.
Başlık: Ynt: /skordukkani ve /paradukkani
Gönderen: TRSinan28 - 06 Temmuz 2017, 10:10:04
Moda atmaya başlıyorum.Allah razı olsun  :helal:
Başlık: Ynt: /skordukkani ve /paradukkani
Gönderen: TRSinan28 - 06 Temmuz 2017, 10:46:42
Komutun olduğu kodda 2-3 yanlışlık yapmışsın.Düzelttim.Başkalarıda görür belki atayım kodu ;

PAWN Kodu: Seç
if(!strcmp(cmdtext,"/skordukkani"))
     {
     ShowPlayerDialog(playerid,SKORDIALOG,DIALOG_STYLE_LIST,"Skor Dukkani", "1000 $ > 1 Skor\n2000 $ > 2 Skor\n5000 $ > 5 Skor\n10000 $ > 10 Skor", "Onayla", "İptal");
     return 1;
     }

Kod böyle olacak arkadaşlar.   YARDIMIN İÇİN ÇOK TEŞEKKÜRLER  :helal: Para dükkanınıda bekliyorum :)
Başlık: Ynt: /skordukkani ve /paradukkani
Gönderen: FrankTR - 06 Temmuz 2017, 11:04:41
Alıntı yapılan: sinan28 - 06 Temmuz 2017, 10:46:42

Komutun olduğu kodda 2-3 yanlışlık yapmışsın.Düzelttim.Başkalarıda görür belki atayım kodu ;

PAWN Kodu: Seç
if(!strcmp(cmdtext,"/skordukkani"))
     {
     ShowPlayerDialog(playerid,SKORDIALOG,DIALOG_STYLE_LIST,"Skor Dukkani", "1000 $ > 1 Skor\n2000 $ > 2 Skor\n5000 $ > 5 Skor\n10000 $ > 10 Skor", "Onayla", "İptal");
     return 1;
     }

Kod böyle olacak arkadaşlar.   YARDIMIN İÇİN ÇOK TEŞEKKÜRLER  :helal: Para dükkanınıda bekliyorum :)


Amin cümlemizden inşallah. Evet ya, şimdi onu yazıcaktım ki bulmuşsun. Virgül koymamışım orda :)
Bir de şöyle bir durum var.

case 0: if(GetPlayerMoney(playerid) > 1000)
Kısmı;
case 0: if(GetPlayerMoney(playerid) >= 1000)
Şeklinde olacak. Çünkü 1000'den büyükse diyor, eğer düz 1000$ varsa oyuncunun, komut işlemeyecekti. Mantık hatası olacağından onu büyük eşit yaptım. Bu diğer case'ler için de aynı şekilde olacak, düzeltirsin.




Neyse Paradükkanına geçelim :)

Modun üst kısımlarına;
#define PARADIALOG 6746

OnPlayerCommandText publicine;
if(!strcmp(cmdtext, "/paradukkani"))
     {
        ShowPlayerDialog(playerid, PARADIALOG, DIALOG_STYLE_LIST, "Para Dukkani", "1 Skor > 1000 $\n2 Skor > 2000 $\n5 Skor > 5000 $\n10 Skor > 10000 $", "Onayla", "İptal");
        return 1;
     }


OnDialogResponse Publicine;
  if(dialogid == PARADIALOG)
    {
        if(response)
        {
            switch(listitem)
            {

case 0: if(GetPlayerScore(playerid) >= 1)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) -1);
GivePlayerMoney(playerid, 1000);
SendClientMessage(playerid, 0xFFFFFFFF, "1 Skor Karşılığı 1000$ Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda skorunuz bulunmamaktadır!");

case 1: if(GetPlayerScore(playerid) >= 2)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) -2);
GivePlayerMoney(playerid, 2000);
SendClientMessage(playerid, 0xFFFFFFFF, "2 Skor Karşılığı 2000$ Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda skorunuz bulunmamaktadır!");

case 2: if(GetPlayerMoney(playerid) >= 5)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) -5);
GivePlayerMoney(playerid, 5000);
SendClientMessage(playerid, 0xFFFFFFFF, "5 Skor Karşılığı 5000$ Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda skorunuz bulunmamaktadır!");

case 3: if(GetPlayerMoney(playerid) >= 10)
{
SetPlayerScore(playerid, GetPlayerScore(playerid) -10);
GivePlayerMoney(playerid, 10000);
SendClientMessage(playerid, 0xFFFFFFFF, "10 Skor Karşılığı 10000$ Aldınız!");
} else SendClientMessage(playerid, 0xFFFFFFFF, "Yeterli miktarda skorunuz bulunmamaktadır!");               
           
            }
        }
        return 1;
    }


Bu şekilde yaptım. Daha sonradan istersen html kodları ile renklendirebilirsin. Umarım işine yarar.
Saygılar
:)
Başlık: Ynt: /skordukkani ve /paradukkani
Gönderen: TRSinan28 - 06 Temmuz 2017, 11:13:06
Çok teşekkür ederim.Güzel bir anlatımın da var :) İlgimi çekti :) Tekrardan Allah razı olsun.
Başlık: Ynt: /skordukkani ve /paradukkani
Gönderen: TRSinan28 - 06 Temmuz 2017, 11:26:23
Para dükkanında 3 ve 4. caseyi getplayermoney yapmışsın yanlışlık olmasın ?
Başlık: Ynt: /skordukkani ve /paradukkani
Gönderen: TRSinan28 - 06 Temmuz 2017, 11:45:26
Orda hata olmuş :) Düzelttim. Sistem sorunsuz çalışıyor.Teşekkür ederim Frank  :helal: KONU KİLİT!