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

[PAMOKA] Žvejybos sistema.


Arnyz.

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4287 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,sugalvojau sukurti žvejybos sistemos pamoką. Pradedam.

Atsidarot /gamemode/GRP.pwn ir prie visų define rašot

#define Masalas 15
#define IrankiuKaina 99

Dabar prie visų forward'ų

forward ArGeraVieta(playerid);
forward ZvejLaikas(playerid);
forward SendRPMessage(playerid, Float:radius, color, string[]);
forward NustojamZvejoti(playerid);

Prie visų new rašot

new Zuvis[MAX_PLAYERS];
new JauZvejojo[MAX_PLAYERS];
new Meskere[MAX_PLAYERS];
new Sliekai[MAX_PLAYERS];
new Svoris[MAX_PLAYERS];
new ArZvejoja[MAX_PLAYERS];

Na dabar sukuriam pačias komandas

spauskite ctrl+f ir rašykite /pagalba" ir po ta komanda rašot:

if(!strcmp(cmdtext, "/zvejoti", true,8))
{
new name[MAX_PLAYER_NAME];
if(Meskere[playerid] == 1)
{
    if(Sliekai[playerid] > 0)
    {
        if(ArGeraVieta(playerid))
        {
			if(JauZvejojo[playerid] == 0 && ArZvejoja[playerid] == 0)
			{
				if(Zuvis[playerid] >= 15)
				{
				    SendClientMessage(playerid,COLOR_RED,"Turi perdaug Žuvų,varyk jas parduot.");
				    SendClientMessage(playerid,COLOR_RED,"Žuvis gali parduoti ten ir ten.");
					JauZvejojo[playerid] = 1;
					SetPlayerCheckpoint(playerid, 2766.6602,-2575.1614,3.0000,3.0);
					SetTimerEx("NustojamZvejoti", 1000*60*10, 0, "i",playerid);
				}
				else
				{
					new random2 = randomEx(4000,14000);
					ArZvejoja[playerid] = 1;
					SetTimerEx("ZvejLaikas", random2, 0, "i",playerid);
					GetPlayerName(playerid,name,sizeof(name));
					format(string,sizeof(string),"{ffffff}%s {00cc00}užmetė meškerę{00ff00}!",name);
					SendRPMessage(playerid, 20.0, COLOR_PURPLE, string);
					GameTextForPlayer(playerid, "~w~Zvejoji...",random2,3);
					TogglePlayerControllable(playerid, false);
				}
			}
			else
			{
			    SendClientMessage(playerid, COLOR_GREY, "Kur tu skubi? Palauk truputį.");
			    return 1;
			}
		}
		else
		{
		    SendClientMessage(playerid, COLOR_GREY, "Tu nesi žvejoji vietoje.");
		    return 1;
		}
	}
	else
	{
		SendClientMessage(playerid, COLOR_GREY, "Jūs neturite masalo,nusipirkite jį žvejo krautuvėlėje.");
	}
}
else
{
	SendClientMessage(playerid, COLOR_GREY, "Neturite meškerės,nusipirkite ją žvejo krautuvėlėje.");
}
return 1;
}

Po /zvejoti komanda,dedam dar viena komandą /parduotizuvis,su ja galėsite parduot žuvis.

if(!strcmp(cmdtext, "/parduotizuvis", true,7))
{

if(Zuvis[playerid] >= 1)
{
    if(IsPlayerInRangeOfPoint(playerid, 3.0,2766.6602,-2575.1614,3.0000))
    {
        Zuvis[playerid] = 0;
		format(string,sizeof(string),"Pardavėte visas savo žuvis už: $%d.", Svoris[playerid]);
		SendClientMessage(playerid, COLOR_YELLOW, string);
		GivePlayerMoney(playerid, Svoris[playerid]);
		Svoris[playerid] = 0;
	}
	else
	{
		SendClientMessage(playerid, COLOR_GREY, "Čia žuvies negali parduoti. Nueikite į raudoną kvadratėlį pažymetą mini mapp'e.");
		SetPlayerCheckpoint(playerid, 2766.6602,-2575.1614,3.0000,3.0);
	}
}
else
{
    SendClientMessage(playerid, COLOR_GREY, "Ką tu bandai apgaut? Pirmą pagauk bent vieną žuvį!!");
    return 1;
}
return 1;
}

Tas visas kordinates pasikeisit į savo.

Dabar pačiame gamemodo gale dedat:

public NustojamZvejoti(playerid)
{
JauZvejojo[playerid] = 0;
SendClientMessage(playerid, COLOR_GREEN, "Jau vel gali zvejoti!");
return 1;
}

Nu ir virš prieš tai dėto kodo dėkit:

public ArGeraVieta(playerid)
{
if(IsPlayerConnected(playerid))
{
    if(IsPlayerInRangeOfPoint(playerid,1.0,-2996.7766,456.7261,4.9141) || IsPlayerInRangeOfPoint(playerid,1.0,-2996.7759,460.2433,4.9141))
	{
	    return 1;
	}
	else if(IsPlayerInRangeOfPoint(playerid,1.0,-2996.7791,463.3145,4.9141) || IsPlayerInRangeOfPoint(playerid,1.0,-2996.7791,467.0038,4.9141))
	{
	    return 1;
	}
	else if(IsPlayerInRangeOfPoint(playerid,1.0,-2996.7773,470.8242,4.9141) || IsPlayerInRangeOfPoint(playerid,1.0,-2996.7778,473.7605,4.9141))
	{
	    return 1;
	}
	else if(IsPlayerInRangeOfPoint(playerid,1.0,-2996.7578,477.0453,4.9141) || IsPlayerInRangeOfPoint(playerid,1.0,-2996.7788,480.1068,4.9141))
	{
	    return 1;
	}
	else if(IsPlayerInRangeOfPoint(playerid,1.0,-2996.7788,482.7871,4.9141) || IsPlayerInRangeOfPoint(playerid,1.0,-2996.7788,484.9794,4.9141))
	{
	    return 1;
	}
	else if(IsPlayerInWater(playerid))
	{
		return 1;
	}
}
return 0;
}
public ZvejLaikas(playerid)
{
new string[128];
if(IsPlayerConnected(playerid))
{
    new rand = randomEx(1,11);
    new weight = randomEx(50,180);
    new money = randomEx(20, 80);
    if(rand == 1)
    {
        SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Ant kabliuko pakibo supuvę batai,kuriuos iškart išmetei{ffffff}.");
        Sliekai[playerid] -= 1;
        ArZvejoja[playerid] = 0;
        TogglePlayerControllable(playerid,true);
		return 1;
	}
	else if(rand == 2)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Ohoho koks laimikis,ištraukiai 2kg lašišą{ff0000}!");
	    Zuvis[playerid] += 1;
	    Sliekai[playerid] -= 1;
	    ArZvejoja[playerid] = 0;
		Svoris[playerid] += weight;
		TogglePlayerControllable(playerid,true);
		return 1;
	}
	else if(rand == 3)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Ištraukiai karosiuką{ffffff}!");
	    Zuvis[playerid] += 1;
	    ArZvejoja[playerid] = 0;
	    Sliekai[playerid] -= 1;
		Svoris[playerid] += weight;
		TogglePlayerControllable(playerid,true);
		return 1;
	}
	else if(rand == 4)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Ištraukiai nemažą raidę{ffffff}! {ff0000}Vos nepabėgo{ffffff}...");
	    Zuvis[playerid] += 1;
	    Sliekai[playerid] -= 1;
	    ArZvejoja[playerid] = 0;
		Svoris[playerid] += weight;
		TogglePlayerControllable(playerid,true);
		return 1;
	}
	else if(rand == 5)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Gerai{ffffff},{ff0000}kad užsidėjai du kabliukus{ffffff},{ff0000}nes ištraukiai 2lydekas{ffffff}!");
	    Zuvis[playerid] += 1;
	    Sliekai[playerid] -= 1;
	    ArZvejoja[playerid] = 0;
		Svoris[playerid] += weight;
		TogglePlayerControllable(playerid,true);
		return 1;
	}
	else if(rand == 6)
	{
	    format(string,sizeof(string),"{ffffff}* {ff0000}Ištraukiai seną piniginę{ffffff},{ff0000}kurioje buvo {ffffff}$%d{ff0000} litai{ffffff},{ff0000}jie atitenka tau{ffffff}!", money);
	    SendClientMessage(playerid,COLOR_GREENYELLOW,string);
	    GivePlayerMoney(playerid, money);
	    Sliekai[playerid] -= 1;
	    TogglePlayerControllable(playerid,true);
	    ArZvejoja[playerid] = 0;
		return 1;
	}
	else if(rand == 7)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Oba koks unguriukas užkibo{ffffff}!");
	    Zuvis[playerid] += 1;
	    TogglePlayerControllable(playerid,true);
	    Sliekai[playerid] -= 1;
	    ArZvejoja[playerid] = 0;
		Svoris[playerid] += weight;
		return 1;
	}
	else if(rand == 8)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Ištraukiai neblogo dydžio ešerį{ffffff}!");
	    Zuvis[playerid] += 1;
	    Sliekai[playerid] -= 1;
	    TogglePlayerControllable(playerid,true);
	    ArZvejoja[playerid] = 0;
		Svoris[playerid] += weight;
		return 1;
	}
	else if(rand == 9)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Užjaučiu{ffffff},{ff0000}nukrito prie pat kranto{ffffff}...");
	    Zuvis[playerid] += 1;
	    TogglePlayerControllable(playerid,true);
	    Sliekai[playerid] -= 1;
	    ArZvejoja[playerid] = 0;
		Svoris[playerid] += weight;
		return 1;
	}
	else if(rand == 10)
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Gaila,bet nieko nepagavai{ffffff}.");
	    Sliekai[playerid] -= 1;
	    TogglePlayerControllable(playerid,true);
	    ArZvejoja[playerid] = 0;
	    return 1;
	}
	else
	{
	    SendClientMessage(playerid,COLOR_GREENYELLOW,"{ffffff}* {ff0000}Slieka nuėdė{ffffff},{ff0000}bet neužkibo,užmesk meškerę iš naujo{ffffff}!");
	    ArZvejoja[playerid] = 0;
	    TogglePlayerControllable(playerid,true);
	    return 1;
	}
}
return 0;
}



public SendRPMessage(playerid, Float:radius, color, string[])
{
if(IsPlayerConnected(playerid))
{
    for(new i=0;i	    {
        new Float:x,Float:y,Float:z;
        GetPlayerPos(playerid,x,y,z);
        	if(IsPlayerInRangeOfPoint(i, radius, x,y,z))
        	{
        	    SendClientMessage(i,color,string);
        	    return 1;
		}
	}
}
return 0;
}

stock randomEx(minnum = cellmin, maxnum = cellmax) return random(maxnum - minnum + 1) + minnum;

stock IsPlayerInWater(playerid)
{
new Float:x,Float:y,Float:pz;
GetPlayerPos(playerid,x,y,pz);
if (
	(IsPlayerInArea(playerid, 2032.1371, 1841.2656, 1703.1653, 1467.1099) && pz <= 9.0484) //lv piratenschiff
 	|| (IsPlayerInArea(playerid, 2109.0725, 2065.8232, 1962.5355, 10.8547) && pz <= 10.0792) //lv visage
 	|| (IsPlayerInArea(playerid, -492.5810, -1424.7122, 2836.8284, 2001.8235) && pz <= 41.06) //lv staucamm
 	|| (IsPlayerInArea(playerid, -2675.1492, -2762.1792, -413.3973, -514.3894) && pz <= 4.24) //sf südwesten kleiner teich
 	|| (IsPlayerInArea(playerid, -453.9256, -825.7167, -1869.9600, -2072.8215) && pz <= 5.72) //sf gammel teich
 	|| (IsPlayerInArea(playerid, 1281.0251, 1202.2368, -2346.7451, -2414.4492) && pz <= 9.3145) //ls neben dem airport
 	|| (IsPlayerInArea(playerid, 2012.6154, 1928.9028, -1178.6207, -1221.4043) && pz <= 18.45) //ls mitte teich
 	|| (IsPlayerInArea(playerid, 2326.4858, 2295.7471, -1400.2797, -1431.1266) && pz <= 22.615) //ls weiter südöstlich
 	|| (IsPlayerInArea(playerid, 2550.0454, 2513.7588, 1583.3751, 1553.0753) && pz <= 9.4171) //lv pool östlich
 	|| (IsPlayerInArea(playerid, 1102.3634, 1087.3705, -663.1653, -682.5446) && pz <= 112.45) //ls pool nordwestlich
 	|| (IsPlayerInArea(playerid, 1287.7906, 1270.4369, -801.3882, -810.0527) && pz <= 87.123) //pool bei maddog's haus oben
 	|| (pz < 1.5)
)
{
	return 1;
}
return 0;
}
stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}

Dabar kuriam parduotuvę,kurioje žaidėjai turės pirkti meškerę ir masalą.

Atsidarom /gamemode/pickups.txt

Po

enum pdata{

rašo

zvejyba,

Tada prie visų kitų pickupų rašykit

 pickups[0][zvejyba]=CreatePickupA(1274 ,2,2115.6094,-44.5161,1.7180); //žvejyba.

Pickupą sukūrėm,dabar darom,kad jis ką nors darytų.

Atsidarom /gamemode/***.pwn ir

Po

public OnPlayerPickUpPickup

calbacku rašykit:

if(pickupid == pickups[0][zvejyba])

{

new string[128];

format(string,128,"Meðkerë $%d\nSliekai $%d",IrankiuKaina,Masalas);

ShowPlayerDialog(playerid, 14565, DIALOG_STYLE_LIST, "Zvejojimo Prekes", string,"Pirkti","Iseiti");

return 1;

}

Tada keliaujam į

public OnDialogResponse

calbacką,ir po juo rašom:

	if(dialogid == 14565)
{
    if(listitem == 0)
    {
        if(GetPlayerMoney(playerid) >= IrankiuKaina)
		{
			SendClientMessage(playerid, COLOR_YELLOW, "Nusipirkai meškerę,bet be sliekų nepažvejosi.");
	        Meskere[playerid] = 1;
	        GivePlayerMoney(playerid, -IrankiuKaina);
		}
		else
		{
			SendClientMessage(playerid, COLOR_GREY, "Neturite pakankamai pinigų.");
		}
	}
	if(listitem == 1)
	{
	    new string[128];
	    format(string,sizeof(string),"Įveskite sliekų kiekį.\n$%d už vieną slieką.",Masalas);
	    ShowPlayerDialog(playerid, 14566, DIALOG_STYLE_INPUT, "Masalas",string,"Pirkti","Iseiti");
	}
}
if(dialogid == 14566 && response)
{
		new price = Masalas;
	new string[128];
	new masalai = strval(inputtext);
 		if(masalai > 0)
 		{
		new kaina1 = price*masalai;
		if(GetPlayerMoney(playerid) >= kaina1)
		{
			GivePlayerMoney(playerid, -kaina1);
			format(string,sizeof(string),"Nusipirkai %d sliekus už $%d", masalai, kaina1);
			SendClientMessage(playerid, COLOR_GREEN, string);
			Sliekai[playerid] += masalai;
			return 1;
		}
		else
		{
		    SendClientMessage(playerid, COLOR_GREY, "Netiri tam tiek pinigų.");
		}
	}
	else
	{
	    SendClientMessage(playerid, COLOR_GREY, "Neteisingai įvestas skaičius.");
	}
}

PAMOKĄ KŪRIAU AŠ. Jeigu bus kokių errorų rašykit,bandysiu padėt. Padėjau +rep. :)

  • Teigiamai 3
  • Neigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

O kaip pvz zvejoi tave sušaldo ir kaip pagauni zuvi padryk kad nemestu tu gali ir vėl zvejoti ir parduoti zuvis kad galėtu uzlipus ant pickups ir dėl daugiau paaiskinimu kad kiti suprastu :)

+REP DUOSIU KAI GALĖSIU

-- Papildyta --

Ir kaip cia sukurti j zona zvejojimo jei pzv as noriu kitur dėti zvejojimo vietas

Nuoroda į komentarą
Dalintis per kitą puslapį

Dad nieko nedadėjai tas pats kaip ir vakar

O ką tu nori,kad dadėčiau? :D

Nu kad kaip pagauni zuvi nemestu to gali zvejoti vėl

Parodyk kaip reikia pasidaryti nauja zvejojimo zona

Kai pagauni zuvu pilna ismestu parduok jas ten ir ten

Parduoti zuvis kad galėtu užlipi ant pickups ir ismeta ar norite parduoti zuvis Taip/Ne jei taip gauni uz zuvis Lt jei ne Negauni nieko

Nuoroda į komentarą
Dalintis per kitą puslapį

Dad nieko nedadėjai tas pats kaip ir vakar

O ką tu nori,kad dadėčiau? :D

Nu kad kaip pagauni zuvi nemestu to gali zvejoti vėl

Parodyk kaip reikia pasidaryti nauja zvejojimo zona

Kai pagauni zuvu pilna ismestu parduok jas ten ir ten

Parduoti zuvis kad galėtu užlipi ant pickups ir ismeta ar norite parduoti zuvis Taip/Ne jei taip gauni uz zuvis Lt jei ne Negauni nieko

1.Kai pagauni žuvį to nemeta..

2.Kam ji tau jeigu ji jau padaryta,kad žvejot gali visur ten kur vanduo?

3.Išmeta..

4.Tą pats pasidaryk,nenorėk visko ant lėkštutės.

5.Karoče,tu pirma įsidėk tą žvejybos sistemą,ištestink,ir tada rašyk čia,nes puse ko čia prašai jau yra padaryta.

Nuoroda į komentarą
Dalintis per kitą puslapį

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

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai



×
×
  • Sukurti naują...