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 :)
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.
Moda atmaya başlıyorum.Allah razı olsun :helal:
Komutun olduğu kodda 2-3 yanlışlık yapmışsın.Düzelttim.Başkalarıda görür belki atayım kodu ;
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 :)
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 ;
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 6746OnPlayerCommandText 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
:)
Çok teşekkür ederim.Güzel bir anlatımın da var :) İlgimi çekti :) Tekrardan Allah razı olsun.
Para dükkanında 3 ve 4. caseyi getplayermoney yapmışsın yanlışlık olmasın ?
Orda hata olmuş :) Düzelttim. Sistem sorunsuz çalışıyor.Teşekkür ederim Frank :helal: KONU KİLİT!