Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė

[L'M] Moneta


Riccardo

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2709 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Skriptą nusprendžiau sukurt pasibaisėjęs tema "Skriptas /moneta" tad sukūtiau savąją.

 

 

 

Šiam kodui reikės :

  • Rankų bei klaviatūros
  • Pawn
  • zcmd include

 

 

 

Pirmiausia kodo viršuje rašome

new mete[MAX_PLAYERS];

tuomet prie komandų

CMD:moneta(playerid,params[])
{
if(mete[playerid]+30 >= gettime() ) return SendClientMessage(playerid, 0xff0000aa,"Žaisti galite tik kas 30sec."); //jei prie laiko kada išmetė moneta pridėsim 30sec ir gausis daugiau, atšaukiam veiksmą
new zaidejoID,kiek;
if(sscanf(params,"ui",zaidejoID,kiek)) return SendClientMessage(playerid,-1,"{ffff00}Žaisti moneta :{ffffff} /moneta [Vardas_Pavardė] [Suma]");

if(zaidejoID == INVALID_PLAYER_ID) return SendClientMessage(playerid,0xff0000aa,"Tokio žaidėjo nėra."); //nustatom ar žaidėjas prisijungias
if(zaidejoID == playerid) return SendClientMessage(playerid,0xff0000aa,"Su savimi žaisti negalite..."); //nustatom ar neišmetė sau
new Float:pos[3];
GetPlayerPos(zaidejoID,pos[0],pos[1],pos[2]); // gaunam žaidėjo koordinates
if(!IsPlayerInRangeOfPoint(playerid, 4, pos[0],pos[1],pos[2])) return SendClientMessage(playerid,0xff0000aa,"Žaidėjas per toli nuo jūsų."); //jei per toli - atšaukiam
if(kiek < 5) return SendClientMessage(playerid,0xff0000aa,"Negalite siūlyti mažiau nei 5$"); // jei suma mažesnė nei 5% - atšaukiam

SetPVarInt(zaidejoID,"siulomon",playerid); // dialoge pasikeis iš dabartinio playerid į zaidejoID
SetPVarInt(zaidejoID,"siulokiek",kiek); // nusiųs į dialogą sumą

new msg[124],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name)); // išgaunam žaidėjo (playerid) vardą
format(msg,sizeof(msg),"{ffffff}Žaidėjas {006633}%s {ffffff}siūlo jums žaisti moneta iš {006633}%d{ffffff}$",name,kiek); //formatuojam teksta
ShowPlayerDialog(zaidejoID,7410,DIALOG_STYLE_MSGBOX,"{ffffff}Kauliukai",msg,"Sutikti","Atšaukti"); // išsiunčiam žaidėjui dialogą
SendClientMessage(playerid,0xffff00AA,"Pasiūlėte žaisti."); // išsiunčiam žaidėjui žinutę
return 1;
}

Na ir susirandate eilutę

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

ir po ja rašome

if(dialogid == 7410)
{
new zaidejoID = GetPVarInt(playerid,"siulomon");
new kiek = GetPVarInt(playerid,"siulokiek");

	if(!response) // jei nesutiko išsiunčiam žinutes
	{
	SendClientMessage(playerid, 0xff0000aa,"Atsisakėte žaisti...");
	SendClientMessage(zaidejoID, 0xff0000aa,"Žaidėjas nesutiko su jumis žaisti...");
	}
	
	if(response) //jei sutiko tesiam veiksmą
	{
	new name[MAX_PLAYER_NAME],name1[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));      // išgaunam vardus, playerid tai anksčiau buvęs playerid
	GetPlayerName(zaidejoID,name1,sizeof(name1));   // o zaidejoID tai anksčiau buvęs playerid, kitaip sakant - tas kutis siūlo
			
	new rand = random(2);
	switch(rand)
 	{
		case 0:
		{
		    new msg[124];
			format(msg,sizeof(msg),"Iškrito skaičius. Laimėjo %s %d$",name,kiek); //formatuojam
			SendClientMessage(playerid,0xffff00aa,msg); // siunčiam žinutes
			SendClientMessage(zaidejoID,0xffff00aa,msg);
			GivePlayerMoney(playerid,kiek); // pridedam ir atimam pinigus
			GivePlayerMoney(zaidejoID,-kiek);
		}
		case 1: // viskas tas pats kas pirmam, tik sukeista vietom
		{
		    new msg[124];
			format(msg,sizeof(msg),"Iškrito herbas. Laimėjo %s %d$",name1,kiek); //sukeitimai šioje vietoje (iš skaičius į herbas)
			SendClientMessage(playerid,0xffff00aa,msg);
			SendClientMessage(zaidejoID,0xffff00aa,msg);
			GivePlayerMoney(playerid,-kiek); //sukeitimai šioje vietoje (iš pliuso į minusą)
			GivePlayerMoney(zaidejoID,kiek); //ir šioje vietoje (iš minuso į pliusą)
		}
	}
	}
	mete[playerid] = gettime(); //įrašom žaidimo laiką
	
return 1;
}

@L'M

 

Naudokitės į valias, jei turit idėjų kaip koda pagreitint ar pakeist galit drąsiai rašyt.

Sėkmės.

 

http://pastebin.com/n6pUsA6E

Redaguota , nario L'M
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Taipogi buvau pamiršęs pridėt eilutę 

if(zaidejoID == playerid) return SendClientMessage(playerid,0xff0000aa,"Su savimi žaisti negalite...");

Todėl jei kopijuojat kodą iš pastebin nepamirškit įsiklyjuot šios dalies...

Redaguota , nario L'M
Nuoroda į komentarą
Dalintis per kitą puslapį

Kur tikrinimas kad turi žaidėjas tiek pinigų?

Nepastebėjau...

 

 

 

Po :

if(kiek < 5) return SendClientMessage(playerid,0xff0000aa,"Negalite siūlyti mažiau nei 5$"); // jei suma mažesnė nei 5% - atšaukiam

Įdėkit :

if(GetPlayerMoney(playerid) < kiek ) return SendClientMessage(playerid, Raudona,"Jūs neturite tiek pinigų.");
if(GetPlayerMoney(zaidejoID) < kiek ) return SendClientMessage(playerid, Raudona,"Žaidėjas neturi tiek pinigų");

Ir turėsi tikrinimą.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 4 savaičių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2709 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...