Jump to content
  • 0

Comanda /aaa2 nu teleporteaza toti playerii


AlexStorm

Question

Problema intalnita (descriere): Salut, doresc sa fac comanda /aaa2 care te duce pe aeroport. Totul este ok, masina se duce corect in virtual 1337 doar ca pe playerii care stau pe masina ii duce, dar nu corect. Probabil ii duce in 0 dar nu inteleg de ce, in script pare totul corect.
Ero(area / rile) / warning-(ul / urile): Nu am erori.
Liniile de cod / sursa / script-ul(obligatoriu):

CMD:aaa2(playerid,params[])
{
	if(playerVariables[playerid][pAdminLevel] >= 1)
	{
   		if(IsPlayerInAnyVehicle(playerid))
		{
		    foreach(Player, i)
			{
				if(GetPlayerSurfingVehicleID(i) && IsPlayerInAnyVehicle(i))
			   	{
			   	    new tmpcar = GetPlayerVehicleID(i);
					SetVehiclePos(tmpcar, 1477.1122,1713.9915,10.8125);
					LinkVehicleToInterior(tmpcar,0);
					SetVehicleVirtualWorld(tmpcar, 1337);
					SetPlayerVirtualWorld(i, 1337);
					SetPlayerInterior(i, 0);
				}
			}
  		}
		else
		{
			SetPlayerPos(playerid, 1477.1122,1713.9915,10.8125);
			SetPlayerVirtualWorld(playerid, 1337);
			SetPlayerInterior(playerid, 0);
		}
	    SCM(playerid,COLOR_WHITE,"Welcome to LV airport (in virtual world).");
	}
	else return SendClientMessage(playerid, COLOR_WHITE,AdminOnly);
	return 1;
}


Imagini / Video (optional): -
Ati incercat sa rezolvati singur?: Normal, dar nu ii dau de cap.. am inlocuit cu foreach .. dar nimic :|

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 1
  • 0
24 minutes ago, WiDuAlK.SaMp said:

i - reprezinta numaratoarea playerilor ON.

tu ai:

SetPlayerPos(playerid, 1477.1122,1713.9915,10.8125);
			SetPlayerVirtualWorld(playerid, 1337);
			SetPlayerInterior(playerid, 0);

mai precis playerid

tu trebuie sa inlocuiesti playerid cu i pentru a se executa la toti playerii

Scuze, dar nu inteleg.. ce trebuie totusi sa fac? :( 

Am inteles ca trebuie sa inlocuiesc playerid cu I .. dar acolo arata ca daca nu este in masina sa il tepoerteze doar pe el.. deci nu pe toti playerii :-?

Edited by AlexStorm
Link to comment
Share on other sites

  • 0
  • 0

 

10 minutes ago, WiDuAlK.SaMp said:

:| Ai acolo
 la comanda , in partea a 2-a a comenzii SetPlayerPos(playerid...

inlocuieste playerid cu i in comanda

Am facut ce mi-ai spus.

Arata asa:

CMD:aaa2(playerid,params[])
{
	if(playerVariables[playerid][pAdminLevel] >= 1)
	{
	    foreach(Player, i)
		{
	   		if(IsPlayerInAnyVehicle(playerid))
			{
				if(GetPlayerSurfingVehicleID(i) && IsPlayerInAnyVehicle(i))
			   	{
			   	    new tmpcar = GetPlayerVehicleID(i);
					SetVehiclePos(tmpcar, 1477.1122,1713.9915,10.8125);
					LinkVehicleToInterior(tmpcar,0);
					SetVehicleVirtualWorld(tmpcar, 1337);
					SetPlayerVirtualWorld(i, 1337);
					SetPlayerInterior(i, 0);
				}
	  		}
			else
			{
				SetPlayerPos(i, 1477.1122,1713.9915,10.8125);
				SetPlayerVirtualWorld(i, 1337);
				SetPlayerInterior(i, 0);
			}
		    SCM(playerid,COLOR_WHITE,"Welcome to LV airport (in virtual world).");
		}
	}
	else return SendClientMessage(playerid, COLOR_WHITE,AdminOnly);
	return 1;
}

Problema este ca pe cei care stau pe masina mea nu ii duce in acelasi virtual. Ii duce pe aeroport dar nu in 1337 pe masina mea.

+ Ca daca fac cum ai spus tu, trage toti playerii de pe server. Eu vreau sa traga doar pe cei din masina si cei care stau pe masina.. folosindu-ma de functia aia cu surf.

Edited by AlexStorm
Link to comment
Share on other sites

  • 0
  • 0
2 minutes ago, WiDuAlK.SaMp said:

ce?

Mno, nu intelegi ce zic.

Iti explic mai detaliat:

Deci, doresc sa fac comanda /aaa2 care ma teleporteaza pe mine si pe playerii din masina (si cei de pe masina) pe aeroport.

Problema este ca ma teleporteaza pe mine si pe cei din masina, dar pe cei care stau pe masina (deasupra ei) nu ii teleporteaza in acelasi virtualworld. Probabil pe ei ii baga in virtualworld = 0 pe mine si pe cei din masina in 1337.

Eu doresc sa ii teleporteze si pe ei in acelasi virtualworld iar din comanda postata nu functioneaza cum vreau,.

Link to comment
Share on other sites

  • 0

Adaugi asta la stock-uri:

stock IsPlayerInRangeOfVehicle(playerid, vehicleid, Float:Range)
{
    new Float:Pos[3];
	GetVehiclePos(vehicleid, Pos[0], Pos[1], Pos[2]);
	return IsPlayerInRangeOfPoint(playerid, Range, Pos[0], Pos[1], Pos[2]);
}

Apoi te folosesti de conditia 'IsPlayerInRangeOfVehicle' in locul verificarii daca e sofer/in masina/pe masina/ sub capota/ in portbagaj, functia ii ia pe toti din jurul vehiculului pe o distanta care tu o setezi. Nu va mai complicati aiurea.

Link to comment
Share on other sites

  • 0

Pos[0] = Float x = stanga(+) / dreapta (-)

Pos[1] = Float y = fata(+) / spate (-)

Pos[2] = Float z = sus(+) / jos (-)

Daca vrei doar pe cei de pe masina lasi Pos[0] si Pos[1] neschimbate, modifici doar Pos[2].

Nu mai fa pe desteptul si zi mersi ca te ajutam.

Edited by Alberto.
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.