2011 yılında yazdığım oyuncular arasında oynanan zevkli bir zar oyunu. :)
/*
Zar atma sistemi - (Alimsah Yildirim)
Kurallar:
-----------
* Oyun 2 kişi ile oynanmaktadir.En küçük zari atan oyuncu, en büyük sayiyi atan oyuncuya para vermek zorundadir.
* Para miktari iki oyuncu arasinda kararlaştirilir.Her oyuncu sadece bir kere zar atabilirler.
iyi eglenceler :)
*/
#include <a_samp>
#define Kirmizi 0xFF0000FF
#define Yesil 0x00FF00FF
#define Mor 0x9C00D4FF
new Sayilar[][99] =
{
1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36 ,37 ,38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99
};
public OnFilterScriptInit()
{
printf("*********************************************");
printf("* Zar Oyun Sistemi: (Alimşah Yildirim)*");
printf("*********************************************");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/zar", true) == 0)
{
new OyuncuIsmi[MAX_PLAYER_NAME], // Zari atan oyuncunun ismi
Float:OyuncuX, // Oyun gereği sadece oyuncunun çevresinde bulunan oyuncular atilan zari görebilirler.
Float:OyuncuY,
Float:OyuncuZ,
alan = 10, // Alan ne kadar arttirilsa, atilan zari oyuncunun yakininda bulunan oyuncularin görmesi o kadar artar.
atilanZar[150],
sayigonder = random(sizeof(Sayilar)) // 99 sayi arasindan rastgele bir sayi seçer ve gönderir.
;
GetPlayerName(playerid, OyuncuIsmi,sizeof(OyuncuIsmi));
GetPlayerPos(playerid, OyuncuX, OyuncuY, OyuncuZ);
for(new oyuncular; oyuncular<MAX_PLAYERS; oyuncular++) // Sunucudaki tüm oyuncular için geçerli...
{
if(IsPlayerConnected(oyuncular))
{
if(IsPlayerInRangeOfPoint(oyuncular, alan, OyuncuX, OyuncuY, OyuncuZ)) // sadece oyuncunun çevresinde bulunanlar atilan zari görebilirler.
{
format(atilanZar,sizeof(atilanZar), "** %s - *[%s] Atilan Zar: %d",OyuncuIsmi, OyuncuIsmi, Sayilar[sayigonder][0]);
SendClientMessage(oyuncular, Mor, atilanZar);
}
}
}
return 1;
}
// Eğer sunucunuzda para gönderme komutu yoksa, yazdiğim komutu kullanabilirsiniz.
if(strcmp(cmdtext, "/paraver", true) == 0)
{
new OyuncuIsmi[MAX_PLAYER_NAME],
GonderilenIsim[MAX_PLAYER_NAME],
oyuncuID[128],
gonderilen_para[200],
mesaj[200],
mesaj2[200],
sayi
;
GetPlayerName(playerid, OyuncuIsmi,sizeof(OyuncuIsmi));
oyuncuID = strtok(cmdtext, sayi);
gonderilen_para = strtok(cmdtext, sayi);
new oyuncu = strval(oyuncuID),
para = strval(gonderilen_para),
_para = GetPlayerMoney(playerid)
;
if(!strlen(gonderilen_para)) return SendClientMessage(playerid, Kirmizi, "<(Kullanim)>: /paraver [Oyuncu ID] [Para Miktari]");
if(!strlen(oyuncuID)) return SendClientMessage(playerid, Kirmizi, "<(Kullanim)>: /paraver [Oyuncu ID] [Para Miktari]");
if(_para < para) return SendClientMessage(playerid, Kirmizi, "<!> Paraniz yetersiz.Cebinizde daha az para var");
if(IsPlayerConnected(oyuncu))
{
GetPlayerName(oyuncu, GonderilenIsim,sizeof(GonderilenIsim));
format(mesaj,sizeof(mesaj), "<(Bilgi)>: Oyuncu %s(ID: %d) ye %d$ para gönderdiniz.", GonderilenIsim, oyuncu, para);
SendClientMessage(playerid, Yesil, mesaj);
format(mesaj2,sizeof(mesaj2), "<(Bilgi)>: Oyuncu %s(ID: %d) size %d$ para gönderdi.", OyuncuIsmi, playerid, para);
SendClientMessage(oyuncu, Yesil, mesaj2);
GivePlayerMoney(oyuncu, para);
}
else return SendClientMessage(playerid, Kirmizi, "<!> Oyuncu bulunamadi!");
{
}
return 1;
}
return 0;
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ) && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Etkileyici bir sistem, paylaşımlarının devamını bekliyoruz.
Eline sağlık başarılar.
Eline sağlık.
Ellerine Sağlık