Peršokti į turinį

Kuriame EVENT sistema


Funkis

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3336 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

Sveiki visi, 

 

šiandieną parodysiu kaip galima pasidaryti paprastą event sistemą;

 

Mums reikės - <ZCMD> // komandų procesoriaus arba galėsite prisitaikyti pagal savo komandų procesorių ( strcmp, dcmd ir kt. ).

 

Pradėkime nuo kintamųjų:


new event, // čia bus nustatomą ar vykstą koks nors event ar ne
vevent; // čia bus nustatomas event tipas

 

Sukuriame event'o valdymą administratoriui:

CMD:eventas(playerid)
{
	if(pDB[player][admin] == 0) return 0;

	ShowPlayerDialog(playerid, 1,DIALOG_STYLE_LIST, "EVENTO VALDYMAS","EVENTO pasirinkimas\nPaskelbi apie EVENT\nNutraukti EVENT","RINKTIS","UŽDARYTI");
	return 1;
}

Evento informacija prieinama visiems:

CMD:eventinfo(playerid)
{
	if(event == 0) return SendClientMessage(playerid,-1,"Šiuo metu joks EVENT nevyksta");
	
	new msg[128];
	format(msg,sizeof(msg),"Šiuo metu vykstantis EVENT: %s",GetEvent());
	SendClientMessage(playerid,-1,msg);
	return 1;
}

Reikalingi stock'ai:

stock GetEvent()
{
	new einfo[100];
	if(vevent == 0) einfo = "EVENT NEVYKSTA";
	if(vevent == 1) einfo = "DM";
	if(vevent == 2) einfo = "BOX";
	if(vevent == 3) einfo = "SLEPYNĖS PO LAIVĄ";
	if(vevent == 4) einfo = "SLEPYNĖS";
	return einfo;
}
 
stock pName ( playerid )
{
    new n [ MAX_PLAYER_NAME ];
GetPlayerName ( playerid, n , MAX_PLAYER_NAME );
return n;
}

 

 

DIALOG response:

	if(dialogid == 1)
	{
		switch(listitem)
		{
			case 0:
			{
				ShowPlayerDialog(playerid, 2,DIALOG_STYLE_LIST, "EVENTO PASIRINKIMAS","DM\nBOX\nSLEPYNĖS PO LAIVĄ\nSLEPYNĖS","RINKTIS","UŽDARYTI");
			}
			case 1:
			{
				if(event == 0) return SendClientMessage(playerid,-1,"Šiuo metu nėra nustatyto vykstančio EVENT");

				new msg[128];
				format(msg, sizeof(msg), "ADMINISTRATORIUS: %s paskelbė %s EVENTĄ !  ",pName(playerid), GetEvent());
				SendClientMessageToAll(-1, msg);
			}
			case 2:
			{
				if(event == 0) return SendClientMessage(playerid,-1,"Šiuo metu nėra vykstančio EVENT");

				SendClientMessage(playerid,-1,"Nutrauketė vykstantį EVENTĄ");

				new msg[128];
				format(msg, sizeof(msg), "ADMINISTRATORIUS: %s nutraukė %s EVENTĄ !  ",pName(playerid), GetEvent());
				SendClientMessageToAll(-1, msg);
				event = 0;
			}
		}
	}
	if(dialogid == 2)
	{
		switch(listitem)
		{
			case 0:
			{
				ShowPlayerDialog(playerid, 1,DIALOG_STYLE_LIST, "EVENTO VALDYMAS","EVENTO pasirinkimas\nPaskelbi apie EVENT\nNutraukti EVENT","RINKTIS","UŽDARYTI");
				SendClientMessage(playerid,-1,"Pasirinkote DM EVENTĄ");
				vevent = 1;
			}
			case 1:
			{
				ShowPlayerDialog(playerid, 1, "EVENTO VALDYMAS","EVENTO pasirinkimas\nPaskelbi apie EVENT\nNutraukti EVENT","RINKTIS","UŽDARYTI");
				SendClientMessage(playerid,-1,"Pasirinkote BOX EVENTĄ");
				vevent = 2;
			}
			case 2:
			{
				ShowPlayerDialog(playerid, 1, "EVENTO VALDYMAS","EVENTO pasirinkimas\nPaskelbi apie EVENT\nNutraukti EVENT","RINKTIS","UŽDARYTI");
				SendClientMessage(playerid,-1,"Pasirinkote SLEPYNĖS PO LAIVĄ EVENTĄ");
				vevent = 3;
			}
			case 3:
			{
				ShowPlayerDialog(playerid, 1,DIALOG_STYLE_LIST ,"EVENTO VALDYMAS","EVENTO pasirinkimas\nPaskelbi apie EVENT\nNutraukti EVENT","RINKTIS","UŽDARYTI");
				SendClientMessage(playerid,-1,"Pasirinkote SLEPYNĖS EVENTĄ");
				vevent = 4;
			}
		}
	}

EVENT dalyvavimo komanda:

CMD:dalyvauti(playerid)
{
	if(event == 0) return SendClientMessage(playerid,-1,"Šiuo metu joks EVENT nevyksta");

	if(vevent == 1)
	{
		// jūsų kodas jei vyksta DM eventas
		return 1;
	}
	if(vevent == 2)
	{
		// jūsų kodas jei vyksta BOX eventas
		return 1;
	}
	if(vevent == 3)
	{
		// jūsų kodas jei vyksta SLEPYNĖS PO LAIVĄ eventas
		return 1;
	}
	if(vevent == 4)
	{
		// jūsų kodas jei vyksta SLĖPYNĖS eventas
		return 1;
	}
	return 1;
}

Rade klaidų praneškite, nes net nekompiliavau. SĖKMĖS.

Redaguota , nario Funkis
Nuoroda į komentarą
Dalintis per kitą puslapį

Keletas pastabų:

  1. Čia ne pamoka, o script'o gabalai, galėjai bent kiek labiau išskirstyt.
  2. Didžioji dalis tai susikurti ir patys, bet vis tiek, šaunu, kad netingi.
  3. Puse kodų nepataikei į kodų tagus...
  4. Optimizacija = 0.
  5. Kodas netvarkingas ir sukurtas tikrai neapgalvojus, viską galima padaryti daug paprasčiau ir trumpiau, tai tik laiko gaišimas.
Nuoroda į komentarą
Dalintis per kitą puslapį

 

Keletas pastabų:

  1. Čia ne pamoka, o script'o gabalai, galėjai bent kiek labiau išskirstyt.
  2. Didžioji dalis tai susikurti ir patys, bet vis tiek, šaunu, kad netingi.
  3. Puse kodų nepataikei į kodų tagus...
  4. Optimizacija = 0.
  5. Kodas netvarkingas ir sukurtas tikrai neapgalvojus, viską galima padaryti daug paprasčiau ir trumpiau, tai tik laiko gaišimas.

 

kaip kam patogiau taip ir daro. Kiekvienas skripteris išpyzdavos kito skritperio darbą, nes jis daro kitaip nei kitas, tad į tai, kad tau kažkas nepatiko ar kam nors dar dėl kodo tvarkingumo turėtu būti nusispjauti, kaip nori taip rašo.

Nuoroda į komentarą
Dalintis per kitą puslapį

kaip kam patogiau taip ir daro. Kiekvienas skripteris išpyzdavos kito skritperio darbą, nes jis daro kitaip nei kitas, tad į tai, kad tau kažkas nepatiko ar kam nors dar dėl kodo tvarkingumo turėtu būti nusispjauti, kaip nori taip rašo.

Tau, spameri, reikėtu skirti "išpizdavojimą" nuo kritikos.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 10 mėnesių...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3336 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ą...