[Savet]-Portanje vozila


Započeo LAVendeta, April 01, 2015, 16:42:37 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

O kakvom savjetu se radi:Teleportovanje vozila do igraca
Detaljan opis savjeta:Znaci kako da napravim da ako imam neko vozilo na serveru koje je na bilo kom mestu (nebitno)
I da kada igrac unese komandu do njega se stvara neko od tih vozila koja su tamo na serveru (na tom mestu)
Ali da ako je neko vozilo pomereno Iz RangeOfPoint da se ono ne racuna(to jest da ako ga je neki igrac uzeo da se to vozilo nemoze teleportovati do tebe) znaci da se samo slobodna vozila portaju.I da posle 10 minuta korisceno vozilo respawnuje se.
Komentar:Odprilike sam smislio ovo u glavi ali nzm kako da se vozilo porta do igraca a to je skoro sve ovde.Hvala
Poslednja Izmena: April 01, 2015, 16:42:55 POSLE PODNE od LAVendeta

Sad si zbunio i mene,neda mi se ponovo citat..
Uglavnom kako sam mogao skontati ovo,nije ništa tesko napraviti..
Trebas samo dobro razmisliti prvo u glavi pa onda pocet praviti.
Napravis neke varijable preko kojih ces provjeravati vozila koja su slobodna i koja su zauzeta.
Ako vozilo nije teleportovano onda stavis varijablu na 0
a ako jeste onda na 1..
Varijablu restartujes kad zelis,npr kad igrac izadje sa servera ili za 10 minuta i uz to stavis respawncar..
Nije ti to nesto komplikovano..

Ok razumem te dao si mi ideju moze i tako al kako da portam vozilo do sebe?

Napravis obicnu neku komandu i ubacis ovo u nju

new carid;

new Float:plocx,Float:plocy,Float:plocz;
GetPlayerPos(playerid, plocx, plocy, plocz);
SetVehiclePos(carid,plocx+5,plocy, plocz);
LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid));


eto 1 minuta posla xD
Poslednja Izmena: April 01, 2015, 19:21:48 POSLE PODNE od K ROSE

E hvala ti.
Al pazi napravio sam da u ta vozila mogu uci samo Vipovi al javlja mi neke greske
VipVozila(idvozila) //Ovde linija 175
	{
	for(new v = 0; v < sizeof(VipVozila); v++)
	{
	if(idvozila== VipVozila[v]) return 1;
	}
	return 0;
	}

Na ovoj Prvoj liniji javlja greske
error 012: invalid function call, not a valid address
error 017: undefined symbol "idvozila"
error 029: invalid expression, assumed zero

definiši
new idvozila;
tamo iznad linije na kojoj ti daje eror.
Poslije toga varijablu
VipVozila(idvozila)
nisi dobro napravio..
Tu trebas da provjeris ako je vip vozilo
if(VipVozila(idvozila))

mislim da tu treba provjera,jer neznam sta si pravio..

Nista i dalje isto
Evo ovo sam pravio

Prvo sam stavio gore
new VipVozila[8];

Pa sam ove provere stavio pod OngamemodeInit
new idvozila;
	if(VipVozila(idvozila))
	{
	for(new v = 0; v < sizeof(VipVozila); v++)
	{
	if(idvozila== VipVozila[v]) return 1;
	}
	return 0;
	}

i ovo isto tako
VipVozila[0] = AddStaticVehicle(522,1028.5817000,-1433.2380000,13.0986000,-272.8799000,-1,-1); //NRG-500
	VipVozila[1] = AddStaticVehicle(522,1028.5538000,-1435.6678000,13.0986000,-272.8799000,-1,-1); //NRG-500
	VipVozila[2] = AddStaticVehicle(522,1028.4214000,-1438.3499000,13.0986000,-272.8799000,-1,-1); //NRG-500
	VipVozila[3] = AddStaticVehicle(522,1028.3877000,-1440.8778000,13.0986000,-272.8799000,-1,-1); //NRG-500
	VipVozila[4] = AddStaticVehicle(522,1028.3442000,-1443.6566000,13.0986000,-272.8799000,-1,-1); //NRG-500
	VipVozila[5] = AddStaticVehicle(522,1028.3466000,-1446.3578000,13.0986000,-272.8799000,-1,-1); //NRG-500
	VipVozila[6] = AddStaticVehicle(522,1028.1294000,-1449.0714000,13.0986000,-272.8799000,-1,-1); //NRG-500

i ovo da ga izbacuje
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(VipVozila(vehicleid))
    {
    if(PlayerInfo[playerid][pVip] = 2)
	{ 
        RemovePlayerFromVehicle(playerid); 
        new Float:X, Float:Y, Float:Z; 
        GetPlayerPos(playerid, X, Y, Z); 
        SetPlayerPos(playerid, X, Y, Z);
        SendClientMessage(playerid, CRVENA, "Samo Vipovi Mogu Koristiti ova vozila!");
    }
    return 1;
}

I to je to i dalje mi javelja one Greske na istoj liniji

Jesili pravio kakav stock ili enum za ta vipvozila..
Ako jesi postavi ovdje..
Ako nisi,ako koristis preko neke varijable saljimi na pm..

Napravi te provjere u publicu i taj public stavi negdje dole gdje su ostali..
Jer kad gledam u svom modu,moje sve provjere za vozila su u publicu nesto poput ovoga

public VipVozila(carid)
{
	for(new i = 0; i < sizeof(VipVozila); i++)
	{
		if(carid == VipVozila[i])return 1;
	}
	return 0;
}


carid definišeš ovako
new carid = GetPlayerVehicleID(playerid);
Poslednja Izmena: April 01, 2015, 20:25:19 POSLE PODNE od K ROSE

public VipVozila(carid) //726
{
	for(new i = 0; i < sizeof(VipVozila); i++) //728
	{
		if(carid == VipVozila[i])return 1;
	}
	return 0;
}
//--------
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(VipVozila(vehicleid))//737
    {
    if(PlayerInfo[playerid][pVip] > 0)
	{ 
        RemovePlayerFromVehicle(playerid); 
        new Float:X, Float:Y, Float:Z; 
        GetPlayerPos(playerid, X, Y, Z); 
        SetPlayerPos(playerid, X, Y, Z);
        SendClientMessage(playerid, CRVENA, "Samo Vipovi Mogu Koristiti ova vozila!");
    }
    return 1;
}

Sada imam duplo vise gresaka sa ovim publicom
(726) : error 021: symbol already defined: "VipVozila"
n(728) : error 010: invalid function or declaration
(730) : error 010: invalid function or declaration
(732) : error 010: invalid function or declaration
(737) : error 012: invalid function call, not a valid address
(737) : warning 215: expression has no effect
(737) : error 001: expected token: ";", but found ")"
(737) : error 029: invalid expression, assumed zero
(737) : fatal error 107: too many error messages on one line
Poslednja Izmena: April 01, 2015, 20:37:04 POSLE PODNE od LAVendeta

idi na liniju (726) i izbrisi definiciju "VipVozila"
zatim idi na liniju 737 i pregledaj sta joj fali.. ovdje pokazuje da fali ;

promenio sam ono VIpVozila u Vozila i dodao forward i sredio to
Ali na Liniji
if(VipVozila(vehicleid))

javlja 4greske ali ova je odgovorna za sve error 012: invalid function call, not a valid address

Kod mene je ovako i nema problema

else if(IsVipVozila(vehicleid))

al ne mora znaciti da mu je else problem..
Možeš i ovako pokušati možda si skratio varijablu previše
if(VipVozila[vehicleid] == 0)

Nzm sta je ali opet isto izbacuje...
Probacu ispocetka kasnije.Hvala na pomoci