A. Torres

Teritorijų kūrimas

Recommended Posts

Sveiki, varčiau savo kažkada rašytą GM, ir radau gan neblogų bei naudingų dalykėlių, todėl nusprendžiau parašyti savo pirmą pamoką kurios tikslas supažindinti Jus (ar bent jau tuos kurie nemoka ir nori išmokti) kaip labai paprastai rankiniu būdu galima sukurti tam tikras teritorijas kurias ateityje galima naudingai panaudoti (pvz.: saugioms zonoms, karo zonoms).

  • Visų pirma mums reikės streamer įskiepio (plugino) kurį galite atsisiūsti iš čia

Atsidarę savo modifikaciją viršuje rašome:

  • #include <streamer>
  • Toliau susikuriame define kuriuo nustatysime kiek teritorijų kursime (šiuo metu aš kursiu 3 teritorijas). Tam nustatyti naudosime MAX_ZONES define.
#define MAX_ZONES 4
  • Na, o dabar susikuriame kintamajį teritorijoms kurti. 
new zona [MAX_ZONES];
  • Dabar kuriame kintamuosius kiekvienai teritorijai atskirai bei nurodome visų 4 kampų X ir Y koordinates.
  • Pastaba: Galima kurti ir apvalias teritorijas, tačiau tam naudojama CreateDynamicRectangle funkciją.
new Float: pirma_zona [] = 
{ 
	1747.9253,	782.5849, 
	1757.2034,	782.5849, 
	1757.2034,	776.5250, 
	1747.9253,	776.5250 
};

new Float: antra_zona [] = 
{ 
	1747.9253,	776.3470, 
	1757.2034,	776.3470, 
	1757.2034,	770.1012, 
	1747.9253,	770.1012 
};

new Float: trecia_zona [] = 
{ 
	1747.9253, 	769.9217, 
	1757.2034, 	769.9217, 
	1757.2034, 	763.6898, 
	1747.9253, 	763.6898 
};
zona [ 1 ] = CreateDynamicPolygon (pirma_zona);
zona [ 2 ] = CreateDynamicPolygon (antra_zona);
zona [ 3 ] = CreateDynamicPolygon (trecia_zona);

CreateDynamicPolygon - tai funkcija su kuria sukuriameteritorijas.

  • Na ir atliekame kažkokį tai veiksmą (šiuo atveju išgauname tekstą ekrane) atėjus žaidėjui į tam tikrą teritoriją:
public OnPlayerEnterDynamicArea(playerid, areaid){
	if (areaid==zona[ 1 ]){
		GameTextForPlayer(playerid, "Tu atejai y pirma zona!", 
	}
	if (areaid==zona[ 2 ]){
		GameTextForPlayer(playerid, "Tu atejai y antra zona!", 
	}
	if (areaid==zona[ 1 ]){
		GameTextForPlayer(playerid, "Tu atejai y trecia zona!", 
	}
	return 1;
};

OnPlayerEnterDynamicArea - tai funkcija kuri patikrina ar žaidėjas atėjo į tam tikrą teritoriją.

  • Na ir paskutinis žingsnis - parodome žaidėjui tam tikrą tekstą išėjus iš tam tikros teritorijos:
public OnPlayerLeaveDynamicArea(playerid, areaid){
	if (areaid==zona[ 1 ]){
		GameTextForPlayer(playerid, "Tu palikai pirma zona!", 
	}
	if (areaid==zona[ 2 ]){
		GameTextForPlayer(playerid, "Tu palikai antra zona!", 
	}
	if (areaid==zona[ 1 ]){
		GameTextForPlayer(playerid, "Tu palikai trecia zona!", 
	}
	return 1;
};

OnPlayerLeaveDynamicArea - tai funkcija kuri patikrina ar žaidėjas išėjo iš tam tikros teritorijos.

Autorius: A. Torres

Redaguota , nario A. Torres

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį

Kam tu 3 zonas sukuri vis skirtingam kintamajam, jei gali sutalpinti viska i viena?

Float: zonos[] = {
	
	{xxx, xxx, xxx, xxx},//zona1
	{xxx, xxx, xxx, xxx},//zona2
	{xxx, xxx, xxx, xxx} //zona3
	
}
Redaguota , nario L0cal

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį
29 minutes prieš, L0cal parašė:

Kam tu 3 zonas sukuri vis skirtingam kintamajam, jei gali sutalpinti viska i viena?

Float: zonos[] = {
	
	{Z, Y, X},//zona1
	{Z, Y, X},//zona2
	{Z, Y, X} //zona3
	
}

Na dabar daryčiau taip pat, bet GM rašiau prieš porą metų tai viską realiai iš ten ir panaudojau. ir tarp Kitko Z nereikalinga.

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį
Prieš 1 valandą, A. Torres parašė:

Na dabar daryčiau taip pat, bet GM rašiau prieš porą metų tai viską realiai iš ten ir panaudojau. ir tarp Kitko Z nereikalinga.

Tai kam dedi vps tokias pamokas? 

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį
1 minute prieš, L0cal parašė:

Tai kam dedi vps tokias pamokas? 

Kokias? O kas negerai šioje pamokoje? principas vistiek išlieka tas pats. Your logic...

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį
Dabar, A. Torres parašė:

Kokias? O kas negerai šioje pamokoje? principas vistiek išlieka tas pats. Your logic...

Ka galiu pasakyti, niekas nesinaudos tavo pamoka, nes daug bereikalingo kodo.

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį
Dabar, L0cal parašė:

Ka galiu pasakyti, niekas nesinaudos tavo pamoka, nes daug bereikalingo kodo.

Palyginus su šita random pamoka principas išlieka tas pats, tačiau kodo pas mane perpus mažiau:

 

Dalintis šį pranešimą


Nuoroda iki šio pranešimo
Dalintis per kitą puslapį

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ų

×   You cannot paste images directly. Upload or insert images from URL.


  • Šiame puslapyje naršo:   0 nariai

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

  • eneba
  • eneba
  • eneba



  • SuperGames programele
  • SuperGames programele