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

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

Ankščiau buvau pasidaręs lygiai tapatį, bet dabar kažkur pasimaunu..

 

enum'as:

enum titem
{
	taksistas,
	Float:Start[3],
	bool:imti,
}
if(vehicleid >= taxcar[0] && vehicleid <= taxcar[7])
		{
            if(GetPlayerColor(playerid) == COLOR)
			{
				SetPlayerColor(playerid,PLAYCOL_HIDDEN);
			}

			new vairuotojas = GetDriver(vehicleid);

			if(vairuotojas == INVALID_PLAYER_ID) return 1; 
			if(playerDB[vairuotojas][specialybe]!=3 && playerDB[vairuotojas][specialybe]!=29 && playerDB[vairuotojas][specialybe]!=15 && playerDB[playerid][admin] < 4){print("netaxistas");return 1;} //Vairuotojas ne taxistas

			GetPlayerPos(playerid,taxiDB[playerid][Start][0],taxiDB[playerid][Start][1],taxiDB[playerid][Start][2]);
			taxiDB[playerid][taksistas]=vairuotojas;
			keleivis[vairuotojas]=playerid;

			new msg[220];
			format(msg,sizeof(msg),"{ffffff}Pas jus įlipo keleivis: {FFE53D}%s{ffffff}\n \nPrieš pradedant kelionę pasirinkte {FFE53D}taksometro{ffffff} būseną !",GetPlayerNameEx(playerid));
			ShowPlayerDialog(vairuotojas, 521, DIALOG_STYLE_MSGBOX,"{FFE53D}Taksometro{ffffff} valdymas",msg,"Įjungti","išjūngti");
			return 1;
		}

Ties čia viskas lyg ir gerai buvo.

 

Ties čia prasideda visas smagumas:

if(dialogid == 521)
	{
		new vehicleid = GetPlayerVehicleID(playerid);
		new vairuotojas = GetDriver(vehicleid);
		taxiDB[playerid][taksistas]=vairuotojas;
		keleivis[vairuotojas]=playerid;
		if(!response)
		{
			SendClientMessage(vairuotojas,RED,"{FFE53D}TAKSOMETRAS{ffffff}: nebuvo įjūngtas !");
			SendClientMessage(playerid,GREEN,"{FFE53D}TAKSOMETRAS{ffffff}: nebuvo įjūngtas !");
			taxiDB[keleivis[playerid]][imti]=false;
		}
		if(response)
		{
			SendClientMessage(vairuotojas,GREEN,"{FFE53D}TAKSOMETRAS{ffffff}: buvo įjūngtas !");
			SendClientMessage(playerid,GREEN,"{FFE53D}TAKSOMETRAS{ffffff}: buvo įjūngtas !");
			taxiDB[keleivis[playerid]][imti]=true;
		}
	}

paspaudus įjūngimą arba išjungimą abi žinutes gauna vairuotojas, nors vieną turėtų gauti ir žaidėjas.

 

Žaidėjui išlipus iš transporto, turėtų atsirasti dialogas:

if(GetPlayerState(playerid)==PLAYER_STATE_PASSENGER)
	{
		new taximodelis = GetVehicleModel(GetPlayerVehicleID(taxiDB[playerid][taksistas]));
		if(taxiDB[playerid][imti]) //TAXI.Skaiciuojam, tik jei pinigai yra imami
    	{
			new Float:Viet[2][3];
			GetPlayerPos(playerid,Viet[0][0],Viet[0][1],Viet[0][2]);
			Viet[1][0] = taxiDB[playerid][Start][0];
			Viet[1][1] = taxiDB[playerid][Start][1];
			Viet[1][2] = taxiDB[playerid][Start][2];
			

   			new kaina = ((floatround(floatabs(Viet[0][0]-Viet[1][0]))+floatround(floatabs(Viet[0][1]-Viet[1][1]))+floatround(floatabs(Viet[0][2]-Viet[1][2]))))/5;
			taxiDB[playerid][imti]=false;

			if(taximodelis == 420)
			{
				kaina = kaina/2;
			}
			if(taximodelis == 409)
			{
			    kaina = kaina/2;
			}
			    
			if(GetPlayerMoneyA(playerid) >= kaina)
			{
				new msg[250];
			    format(msg,sizeof(msg),"{FFE53D}TAKSOMETRAS{ffffff}: keleivis išlipo, mokestis už paslaugas: {FFE53D}%s{ffffff} LT.", konvertuoti_pinigus(kaina));
				SendClientMessage(taxiDB[playerid][taksistas],GREEN,msg);
				format(msg,sizeof(msg),"Taksistas kuris jūms suteikė paslaugą: %s\n \n 	Paslaugos kaina: %s LT\n \n 	Jei nesusimokėsite, apie tai bus {FF3333}pranešta policijai{ffffff} !", GetPlayerNameEx(taxiDB[playerid][taksistas]) ,konvertuoti_pinigus(kaina));
				ShowPlayerDialog(playerid, 520, DIALOG_STYLE_MSGBOX,"{ffffff}Atsiskaitymas {FFE53D}grynaisiais{ffffff} pinigais",msg,"Atsiskaityti","pabėgti");
			    return 1;
			}
			else
			{
			    if(playerDB[playerid][banke] >= kaina)
			    {
			        new msg[120];
					format(msg,sizeof(msg),"{FFE53D}TAKSOMETRAS{ffffff}: keleivis išlipo, mokestis už paslaugas: {FFE53D}%s{ffffff} LT.", konvertuoti_pinigus(kaina));
					SendClientMessage(taxiDB[playerid][taksistas],GREEN,msg);
					format(msg,sizeof(msg),"Taksistas kuris jūms suteikė paslaugą: %s\n \n 	Paslaugos kaina: %s LT\n \n 	Jei nesusimokėsite, apie tai bus {FF3333}pranešta policijai{ffffff} !", GetPlayerNameEx(taxiDB[playerid][taksistas]) ,konvertuoti_pinigus(kaina));
					ShowPlayerDialog(playerid, 520, DIALOG_STYLE_MSGBOX,"{ffffff}Atsiskaitymas {FFE53D}banko{ffffff} kortele",msg,"Atsiskaityti","pabėgti");
					return 1;
				}
			}
		}

Bet jis neatsirado..

 

ir galutinis kodas:

	if(dialogid == 520)
	{
		if(!response)
		{

		}
		if(response)
		{
			new Float:Viet[2][3];
			GetPlayerPos(playerid,Viet[0][0],Viet[0][1],Viet[0][2]);
			Viet[1][0] = taxiDB[playerid][Start][0];
			Viet[1][1] = taxiDB[playerid][Start][1];
			Viet[1][2] = taxiDB[playerid][Start][2];
			new kaina = ((floatround(floatabs(Viet[0][0]-Viet[1][0]))+floatround(floatabs(Viet[0][1]-Viet[1][1]))+floatround(floatabs(Viet[0][2]-Viet[1][2]))))/5;
			if(GetPlayerMoneyA(playerid) >= kaina)
			{
				new msg[148];
		        format(msg,sizeof(msg),"{FFE53D}PASLAUGA{ffffff}: {FFE53D}%s{ffffff} susimokėjo už paslaugą {FFE53D}%s{ffffff} LT.",GetPlayerNameEx(playerid),konvertuoti_pinigus(kaina));
				SendClientMessage(taxiDB[playerid][taksistas],-1,msg);
				GivePlayerMoneyA(taxiDB[playerid][taksistas],kaina);
				if(!playerDB[taxiDB[playerid][taksistas]][mdPaveztZmogu]) playerDB[taxiDB[playerid][taksistas]][mdPaveztZmogu] = true;
			    return 1;
			}
			else
			{
			    if(playerDB[playerid][banke] >= kaina)
			    {
			        new msg[148];
			        format(msg,sizeof(msg),"{FFE53D}PASLAUGA{ffffff}: {FFE53D}%s{ffffff} susimokėjo už paslaugą {FFE53D}%s{ffffff} LT.",GetPlayerNameEx(playerid),konvertuoti_pinigus(kaina));
					SendClientMessage(taxiDB[playerid][taksistas],-1,msg);
					GivePlayerMoneyA(taxiDB[playerid][taksistas],kaina);
					playerDB[playerid][banke]-=kaina;
					if(!playerDB[taxiDB[playerid][taksistas]][mdPaveztZmogu]) playerDB[taxiDB[playerid][taksistas]][mdPaveztZmogu] = true;
					return 1;
				}
				else
				{
					SendClientMessage(taxiDB[playerid][taksistas],GREEN,"{FF3333}KELEIVIS{ffffff}: kelevis neturėjo pakankamai pinigų atsiskaityti už paslaugą !");
					SendClientMessage(playerid,GREEN,"{FF3333}KLAIDA{ffffff}: neturėjote pakankamai pinigų susimokėti už paslaugas !");
					return 1;
				}
			}
		}
	}
(redaguota)
if(dialogid == 521)
	{
		new vehicleid = GetPlayerVehicleID(playerid);
		new vairuotojas = GetDriver(vehicleid);
		taxiDB[playerid][taksistas]=vairuotojas;
		keleivis[vairuotojas]=playerid;
		if(!response)
		{
			SendClientMessage(vairuotojas,RED,"{FFE53D}TAKSOMETRAS{ffffff}: nebuvo įjūngtas !");
			SendClientMessage(playerid,GREEN,"{FFE53D}TAKSOMETRAS{ffffff}: nebuvo įjūngtas !");
			taxiDB[keleivis[playerid]][imti]=false;
		}
		if(response)
		{
			SendClientMessage(vairuotojas,GREEN,"{FFE53D}TAKSOMETRAS{ffffff}: buvo įjūngtas !");
			SendClientMessage(playerid,GREEN,"{FFE53D}TAKSOMETRAS{ffffff}: buvo įjūngtas !");
			taxiDB[keleivis[playerid]][imti]=true;
		}
	}

šitam kode playerid = vairuotojas. dėl to vairuotojas ir gauna dvi žinutes, nes pas tave keleivis = playerid;

--------------------------------------------

dėl neatsirandančio dialog'o, tai galbūt taxiDB[playerid][imti] != true ? ties antruoju kodu, kaip suprantu, padaryčiau taxiDB[playerid][imti] = keleivis.

Redaguota , nario .eko
if(!response)
		{
			SendClientMessage(vairuotojas,RED,"{FFE53D}TAKSOMETRAS{ffffff}: nebuvo įjūngtas !");
			SendClientMessage(playerid,GREEN,"{FFE53D}TAKSOMETRAS{ffffff}: nebuvo įjūngtas !");
			taxiDB[keleivis[playerid]][imti]=false;
		}

Sakai kad abi žinutes gauna vairuotojas, tai žinoma juk lentelė yra rodoma vairuotojui, todėl "playerid" yra jo ID... O "vairuotojas" irgi yra vairuotojo ID. 

taxiDB[playerid][taksistas]=vairuotojas;
keleivis[vairuotojas]=playerid;

Čia ta pati situacija. Pirma eilutė: nustatai kad vairuotojas yra pats savo taksistas. Antra eilutė: nustatai kad vairuotojo keleivis yra jis pats. Tai taip išeina kad jis ir savo vairuotojas ir savo keleivis. Išvis, ten to nustatymo nereikia, juk nustatai viską įlipus į tr. priemonę. Todėl tam GUI jei nori pasiekti keleivį, tiesiog naudok "keleivis[playerid]" kurį nustatei ankščiau.

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

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