Skocz do zawartości
Skylt

komenda

Rekomendowane odpowiedzi

Witam ! Posiadam komendę na tworzenie auta (Skypt na kupowanie aut) ale gdy tworzę auto jest zamknięte. Powinno być otwarte i dawać freeza gdy ktoś wejdzie ...

Kod na komendę:
 

	if (strcmp(cmd, "/vkupnowe", true) ==0 )
	{
	if(!IsPlayerAdmin(playerid)){return 1;}
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new vehiclemodel = strval(tmp);
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new color1 = strval(tmp);
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new color2 = strval(tmp);
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new price = strval(tmp);
	new Float:px,Float:py,Float:pz,Float:pa;
	GetPlayerPos(playerid,px,py,pz);
	GetPlayerFacingAngle(playerid,pa);
	created++;
	VehicleSystem[created][model]=vehiclemodel;
	VehicleSystem[created][x]=px;
	VehicleSystem[created][y]=py;
	VehicleSystem[created][z]=pz;
	VehicleSystem[created][a]=pa;
	VehicleSystem[created][Farbe1]=color1;
	VehicleSystem[created][Farbe2]=color2;
	VehicleSystem[created][preis]=price;
	VehicleSystem[created][owned]=0;
	VehicleSystem[created][cLock]=1;
	strmid(VehicleSystem[created][owner],"dealercar",0,128,128);
	new ccar = CreateVehicle(VehicleSystem[created][model],VehicleSystem[created][x],VehicleSystem[created][y],VehicleSystem[created][z],VehicleSystem[created][a],VehicleSystem[created][Farbe1],VehicleSystem[created][Farbe2],600000);
	IDIS[ccar]=created;
	SaveTool();
	return 1;
	}

A tutaj  OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

 

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new personalcar = (dini_Int(PFile(playerid),"CarID"));
    for(new i=0; i < MAX_PLAYERS; i++)
 	{
	if(GetCreatorID(vehicleid)!=0)
	{
 	if (personalcar == vehicleid)
 	{
 	SetVehicleParamsForPlayer(vehicleid,i,0,0);
 	}
 	else
 	{
	if (VehicleSystem[vehicleid][cLock]==0)
	{
	SetVehicleParamsForPlayer(vehicleid,i,0,1);
	}
	else if (VehicleSystem[vehicleid][cLock]==1)
	{
	SetVehicleParamsForPlayer(vehicleid,i,0,0);
	}
	}
	}
	}
	return 1;
}

 


 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jakoś to pomogło. Teraz mam inny problem z tym. Gdy stworzę auto pojawia się 3dtext "Auto na sprzedaż, cena :" a gdy kupię powinno być : "Auto należy do : Nick" - tak się dzieje ale te texty nachodzą na siebie...

 

Komenda vkup :

 

	if (strcmp(cmd, "/vkup", true) ==0 )
	{
	/*if(dini_Int(PFile(playerid),"HaveCar")== 1) return SendClientMessage(playerid,ORANGE,"[ERROR]Już posiadasz auto !");*/
	/*if(dini_Int(PFile(playerid),"HaveCar")== 1) { }
	else { SendClientMessage(playerid, ORANGE,"[ERROR]Już posiadasz auto !"); return 1; }*/
	new HaveCar = (dini_Int(PFile(playerid),"HaveCar"));
	if(!IsPlayerInAnyVehicle(playerid)){return 1;}
	if(GetCreatorID(vehicleid)!=0)
	{
	if(HaveCar == 0)
	{
	if (strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid))){SendClientMessage(playerid,WHITE," Aceasta masina este deja cumparata!");return 1;}
	if (strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar"))
	{
	if(VehicleSystem[GetCreatorID(vehicleid)][preis] < GetPlayerMoney(playerid))
	{
	strmid(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid),0,128,128);
	VehicleSystem[GetCreatorID(vehicleid)][owned]=1;
	SetVehicleNumberPlate(vehicleid, VehicleSystem[GetCreatorID(vehicleid)][owner]);
	GivePlayerMoney(playerid,-VehicleSystem[GetCreatorID(vehicleid)][preis]);
	SendClientMessage(playerid,YELLOW," Gratulacje ! Kupiłeś właśnie samochód!");
	SendClientMessage(playerid,WHITE," Możesz zobaczyć swoje osobiste komendy samochodu poprzez /vpomoc");
	TogglePlayerControllable(playerid,1);
	Delete3DTextLabel(TextUpCar[vehicleid]);
	SaveTool();
	}
	else
	{
	SendClientMessage(playerid,WHITE,"Nie masz wystarczającej gotówki !");
	}
	}
	else
	{
	SendClientMessage(playerid,WHITE,"Ten samochód nie jest na sprzedaż!");
	}
	}
	else
	{
	SendClientMessage(playerid, ORANGE,"[ERROR]Już posiadasz auto !");
	}
	}
	else
	{
	SendClientMessage(playerid,WHITE,"Nie na sprzedaż !");
	}
	if(!dini_Exists(PFile(playerid)))
	{
	    dini_Create(PFile(playerid));
	    dini_IntSet(PFile(playerid),"HaveCar",1);
	    dini_IntSet(PFile(playerid),"CarID",vehicleid);
	}
	else if(dini_Exists(PFile(playerid)))
	{
	    dini_IntSet(PFile(playerid),"HaveCar",1);
	    dini_IntSet(PFile(playerid),"CarID",vehicleid);
	}
	return 1;
	}

Dodatkowo dodaję tworzenie 3dtextu :

	new car = CreateVehicle(VehicleSystem[i][model],VehicleSystem[i][x],VehicleSystem[i][y],VehicleSystem[i][z],VehicleSystem[i][a],VehicleSystem[i][Farbe1],VehicleSystem[i][Farbe2],600000);
	//
 	if(VehicleSystem[i][model]!=0){
 	created++;
 	Tunen(car);
 	IDIS[car] = created;
 	}
	}
	for(new c = 0; c < MAX_VEHICLES; c++)
	{
	if (VehicleSystem[c][owned]==1)
	{
	format(TextCar,sizeof(TextCar),"Samochód należy do:{00FFEE}%s{FFFFFF}",VehicleSystem[GetCreatorID(c)][owner]);
 	TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
	Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);
	SetVehicleNumberPlate(c, VehicleSystem[GetCreatorID(c)][owner]);
	}
	else if(VehicleSystem[c][owned]==0)
	{
	format(TextCar,sizeof(TextCar),"Samochód na sprzedaż, Cena: %d",VehicleSystem[GetCreatorID(c)][preis]);
 	TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
	Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);
	}
	}
	return 1;
}

 

Edytowane przez Skylt

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

new car = CreateVehicle(VehicleSystem[i][model],VehicleSystem[i][x],VehicleSystem[i][y],VehicleSystem[i][z],VehicleSystem[i][a],VehicleSystem[i][Farbe1],VehicleSystem[i][Farbe2],600000);		//		if( VehicleSystem[i][model] )		{			created++;			Tunen(car);			IDIS[car] = created;		}	}		for(new c = 0; c < MAX_VEHICLES; c++)	{		Delete3DTextLabel(TextUpCar[c]);		if( VehicleSystem[c][owned] )		{			format(TextCar,sizeof(TextCar),"Samochód należy do:{00FFEE}%s{FFFFFF}",VehicleSystem[GetCreatorID(c)][owner]);			TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);			Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);			SetVehicleNumberPlate(c, VehicleSystem[GetCreatorID(c)][owner]);		}		else if( !VehicleSystem[c][owned] )		{			format(TextCar,sizeof(TextCar),"Samochód na sprzedaż, Cena: %d",VehicleSystem[GetCreatorID(c)][preis]);			TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);			Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);		}	}	return 1;}

To powinno naprawić to, że 3dtexty na siebie nachodzą. Natomiast to, że pojazdy nie zapisują się to pokaż OnPlayerDisconnect.

Edytowane przez promsters

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hmm, OnPlayerDisconnect nie mam ale znalazłem takie coś :

public SaveTool()
{
	new count;
	new saver[128];
	fremove("Samochody/cars.cfg");
	dini_Create("Samochody/cars.cfg");
	for(new i = 0;i<MAX_BUY_V;i++)
	{
	if(VehicleSystem[i][model]!=0)
	{
	count++;
    format(saver,sizeof(saver),"veh_model_%d",count);
    dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][model]);
    format(saver,sizeof(saver),"veh_owned_%d",count);
    dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][owned]);
    format(saver,sizeof(saver),"veh_cLock_%d",count);
    dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][cLock]);
    format(saver,sizeof(saver),"veh_x_%d",count);
    dini_FloatSet("Samochody/cars.cfg",saver,VehicleSystem[i][x]);
    format(saver,sizeof(saver),"veh_y_%d",count);
    dini_FloatSet("Samochody/cars.cfg",saver,VehicleSystem[i][y]);
    format(saver,sizeof(saver),"veh_z_%d",count);
    dini_FloatSet("Samochody/cars.cfg",saver,VehicleSystem[i][z]);
    format(saver,sizeof(saver),"veh_a_%d",count);
    dini_FloatSet("Samochody/cars.cfg",saver,VehicleSystem[i][a]);
    format(saver,sizeof(saver),"veh_Farbe1_%d",count);
    dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][Farbe1]);
    format(saver,sizeof(saver),"veh_Farbe2_%d",count);
    dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][Farbe2]);
    format(saver,sizeof(saver),"veh_owner_%d",count);
    dini_Set("Samochody/cars.cfg",saver,VehicleSystem[i][owner]);
    format(saver,sizeof(saver),"veh_preis_%d",count);
    dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][preis]);
    //
	format(saver,sizeof(saver),"veh_mod1_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod1]);
	format(saver,sizeof(saver),"veh_mod2_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod2]);
	format(saver,sizeof(saver),"veh_mod3_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod3]);
	format(saver,sizeof(saver),"veh_mod4_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod4]);
	format(saver,sizeof(saver),"veh_mod5_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod5]);
	format(saver,sizeof(saver),"veh_mod6_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod6]);
	format(saver,sizeof(saver),"veh_mod7_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod7]);
	format(saver,sizeof(saver),"veh_mod8_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod8]);
	format(saver,sizeof(saver),"veh_mod9_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod9]);
	format(saver,sizeof(saver),"veh_mod10_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod10]);
	format(saver,sizeof(saver),"veh_mod11_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod11]);
	format(saver,sizeof(saver),"veh_mod12_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod12]);
	format(saver,sizeof(saver),"veh_mod13_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod13]);
	format(saver,sizeof(saver),"veh_mod14_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod14]);
	format(saver,sizeof(saver),"veh_mod15_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod15]);
	format(saver,sizeof(saver),"veh_mod16_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod16]);
	format(saver,sizeof(saver),"veh_mod17_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][mod17]);
	//
	format(saver,sizeof(saver),"veh_paint_%d",count);
	dini_IntSet("Samochody/cars.cfg",saver,VehicleSystem[i][paintjob]);
	}
	}
	return 1;
}



stock PFile(playerid)
{
	format(file,64,"Samochody/Users/%s.ini",Gn(playerid));
	return file;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ten wcześniejszy kod coś się skopał jak go wkleiłem, tu masz poprawiona wersję:

		new car = CreateVehicle(VehicleSystem[i][model],VehicleSystem[i][x],VehicleSystem[i][y],VehicleSystem[i][z],VehicleSystem[i][a],VehicleSystem[i][Farbe1],VehicleSystem[i][Farbe2],600000);
		//
		if(VehicleSystem[i][model]!=0)
		{
			created++;
			Tunen(car);
			IDIS[car] = created;
		}
	}
	
	for(new c = 0; c < MAX_VEHICLES; c++)
	{
		Delete3DTextLabel(TextUpCar[c]);
		if (VehicleSystem[c][owned]==1)
		{
			format(TextCar,sizeof(TextCar),"Samochód należy do:{00FFEE}%s{FFFFFF}",VehicleSystem[GetCreatorID(c)][owner]);
			TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
			Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);
			SetVehicleNumberPlate(c, VehicleSystem[GetCreatorID(c)][owner]);
		}
		else if(VehicleSystem[c][owned]==0)
		{
			format(TextCar,sizeof(TextCar),"Samochód na sprzedaż, Cena: %d",VehicleSystem[GetCreatorID(c)][preis]);
			TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
			Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);
		}
	}
	return 1;
}

Daj mi jeszcze tą funkcję: GetCreatorID

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak też mi właśnie czegoś brakowało we wcześniejszym kodzie ;p

 

stock GetCreatorID(vehicleid)
{
return IDIS[vehicleid];
}
stock strmatch(const String1[], const String2[])
{
	if ((strcmp(String1, String2, true, strlen(String2)) == 0) && (strlen(String2) == strlen(String1)))
	{
	return true;
	}
	else
	{
	return false;
	}
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zrób tak. Po tym kodzie w SaveTool:

dini_Set("Samochody/cars.cfg",saver,VehicleSystem[i][owner]);

tzn. poniżej dodaj:

printf("[debug] Właściciel zapisanego pojazdu: %s", VehicleSystem[i][owner]);

Kup pojazd i zobacz co będzie pisać w konsoli.  :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

W logach pojawiło mi się :

[19:00:47] [join] Skylt has joined the server (0:127.0.0.1)
[19:00:58] RCON (In-Game): Player #0 (Skylt) has logged in.
[19:01:05] [debug] Właściciel zapisanego pojazdu: dealercar
[19:01:21] [debug] Właściciel zapisanego pojazdu: dealercar
[19:01:21] [debug] Właściciel zapisanego pojazdu: dealercar
[19:01:27] [debug] Właściciel zapisanego pojazdu: dealercar
[19:01:28] [debug] Właściciel zapisanego pojazdu: Skylt
[19:02:23] [part] Skylt has left the server (0:1)

Tylko dziwne .. bo gdy stworzyłem auto to nie pojawił się 3dtext z napisem "Auto na sprzedaż, cena :" tylko po prostu było zamknięte całkowicie
Dodatkowo gdy udało mi się kupić motor to ani mi nie zabrało kasy, ani nie było 3dtextu z "Właściciel : Skylt"...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Edit:

		new car = CreateVehicle(VehicleSystem[i][model],VehicleSystem[i][x],VehicleSystem[i][y],VehicleSystem[i][z],VehicleSystem[i][a],VehicleSystem[i][Farbe1],VehicleSystem[i][Farbe2],600000);
		//
		if(VehicleSystem[i][model]!=0)
		{
			created++;
			Tunen(car);
			IDIS[car] = created;
		}
	}
	
	for(new c = 0; c < MAX_VEHICLES; c++)
	{
		if (VehicleSystem[c][owned]==1)
		{
                        Delete3DTextLabel(TextUpCar[c]);
			format(TextCar,sizeof(TextCar),"Samochód należy do:{00FFEE}%s{FFFFFF}",VehicleSystem[GetCreatorID(c)][owner]);
			TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
			Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);
			SetVehicleNumberPlate(c, VehicleSystem[GetCreatorID(c)][owner]);
		}
		else if(VehicleSystem[c][owned]==0)
		{
                        Delete3DTextLabel(TextUpCar[c]);
			format(TextCar,sizeof(TextCar),"Samochód na sprzedaż, Cena: %d",VehicleSystem[GetCreatorID(c)][preis]);
			TextUpCar[c] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
			Attach3DTextLabelToVehicle(TextUpCar[c],c,0.0,0.0,0.0);
		}
	}
	return 1;
}

A co do tego, że nie zabrało Ci pieniędzy to nie mam pojęcia dlaczego skoro nie dawałem Ci kodu komendy.

 

Pokaż jeszcze wczytywanie pojazdów gracza w OnPlayerConnect czy gdzie to masz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

OnPlayerConnect :
 

public OnPlayerConnect(playerid)
{   if(!dini_Exists(PFile(playerid)))
	{
	    dini_Create(PFile(playerid));
	    dini_IntSet(PFile(playerid),"HaveCar",0);
	}
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co do wczytywania - to działa, zabieranie kasy z konta też działa. Został problem tylko z tym, że auta po zrespieniu ich, oraz nachodzące na siebie 3dtexty po kupieniu auta. (Jeżeli kupi auto to nachodzi na siebie "Auto na sprzedaż" oraz "Właściciel " - gdy siedzimy w aucie usuwa się text z tym, że auto na sprzedaż i działa)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie ma funkcji na spawnowanie. Za to odpowiada komenda.

 

	if (strcmp(cmd, "/vkupnowe", true) ==0 )
	{
	if(!IsPlayerAdmin(playerid)){return 1;}
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new vehiclemodel = strval(tmp);
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new color1 = strval(tmp);
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new color2 = strval(tmp);
	tmp = strtok(cmdtext,idx);
	if(!strlen(tmp)){return 1;}
	new price = strval(tmp);
	new Float:px,Float:py,Float:pz,Float:pa;
	GetPlayerPos(playerid,px,py,pz);
	GetPlayerFacingAngle(playerid,pa);
	created++;
	VehicleSystem[created][model]=vehiclemodel;
	VehicleSystem[created][x]=px;
	VehicleSystem[created][y]=py;
	VehicleSystem[created][z]=pz;
	VehicleSystem[created][a]=pa;
	VehicleSystem[created][Farbe1]=color1;
	VehicleSystem[created][Farbe2]=color2;
	VehicleSystem[created][preis]=price;
	VehicleSystem[created][owned]=0;
	VehicleSystem[created][cLock]=0;
	strmid(VehicleSystem[created][owner],"dealercar",0,128,128);
	new ccar = CreateVehicle(VehicleSystem[created][model],VehicleSystem[created][x],VehicleSystem[created][y],VehicleSystem[created][z],VehicleSystem[created][a],VehicleSystem[created][Farbe1],VehicleSystem[created][Farbe2],600000);
	IDIS[ccar]=created;
	SaveTool();
	return 1;
	}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Za to odpowiada public.

 

public Carlabel(playerid)
{
	new carid = GetPlayerVehicleID(playerid);
	if (VehicleSystem[carid][owned]==1)
	{
	Delete3DTextLabel(TextUpCar[carid]);
	format(TextCar,sizeof(TextCar),"Samochód: {00FFEE}%s{FFFFFF}",VehicleSystem[GetCreatorID(carid)][owner]);
 	TextUpCar[carid] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
	Attach3DTextLabelToVehicle(TextUpCar[carid],carid,0.0,0.0,0.0);
	}
	else if(VehicleSystem[carid][owned]==0)
	{
	Delete3DTextLabel(TextUpCar[carid]);
	format(TextCar,sizeof(TextCar),"Auto na sprzedaż, Cena: %d",VehicleSystem[GetCreatorID(carid)][preis]);
 	TextUpCar[carid] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
	Attach3DTextLabelToVehicle(TextUpCar[carid],carid,0.0,0.0,0.0);
	}
	return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hmm, z tego co mi się wydaje to tutaj ;

 

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2)
{
new vehicleid = GetPlayerVehicleID(playerid);//Tutaj
if(GetCreatorID(vehicleid)!=0)
{
Tunen(vehicleid);
if ((strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid))))
{
SendClientMessage(playerid,GREEN,"Witamy ponownie w samochodzie wybierz /vpomoc by zobaczyć Twoje komendy.");
for(new c = 0; c < MAX_VEHICLES; c++)
{
Delete3DTextLabel(TextUpCar[c]);
}
}
else if(strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar"))
{
if(!IsPlayerAdmin(playerid)){
TogglePlayerControllable(playerid,0);}
new fffx[128];
format(fffx,sizeof(fffx),"Auto na sprzedaż, cena : %d$",VehicleSystem[GetCreatorID(vehicleid)][preis]);
SendClientMessage(playerid,WHITE,fffx);
SendClientMessage(playerid,YELLOW,"INFO: Użyj: /vkup by kupić go albo wyjść z niego :'/exitcar'.");
}
else
{
new ex[128];
format(ex,sizeof(ex)," Ten samchód należy do: %s",VehicleSystem[GetCreatorID(vehicleid)][owner]);
SendClientMessage(playerid,YELLOW,ex);
for(new c = 0; c < MAX_VEHICLES; c++)
{
Delete3DTextLabel(TextUpCar[c]);
}

RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Chodziło mi o ten public:

Carlabel(playerid) 

...ale już nie ważne.

Dlaczego w OnPlayerStateChange masz loop'a przez wszystkie pojazdy?  :lol:

Zamień na:

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	if(newstate == 2)
	{
		new vehicleid = GetPlayerVehicleID(playerid);//Tutaj
		if(GetCreatorID(vehicleid)!=0)
		{
			Tunen(vehicleid);
			if ((strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],Spielername(playerid))))
			{
				SendClientMessage(playerid,GREEN,"Witamy ponownie w samochodzie wybierz /vpomoc by zobaczyć Twoje komendy.");
			}
			else if(strmatch(VehicleSystem[GetCreatorID(vehicleid)][owner],"dealercar"))
			{
				if( !IsPlayerAdmin(playerid) ) TogglePlayerControllable(playerid,0);
				
				new fffx[128];
				format(fffx,sizeof(fffx),"Auto na sprzedaż, cena : %d$",VehicleSystem[GetCreatorID(vehicleid)][preis]);
				SendClientMessage(playerid,WHITE,fffx);
				SendClientMessage(playerid,YELLOW,"INFO: Użyj: /vkup by kupić go albo wyjść z niego :'/exitcar'.");
			}
			else
			{
				new ex[128];
				format(ex,sizeof(ex)," Ten samchód należy do: %s",VehicleSystem[GetCreatorID(vehicleid)][owner]);
				SendClientMessage(playerid,YELLOW,ex);

				RemovePlayerFromVehicle(playerid);
			}
		}
	}
	return 1;
}

A w momencie kiedy ktoś kupuje pojazd daj:

Carlabel(vehicleid);

..tam sobie to dopasuj.

 

Carlabel zamień na:

public Carlabel(carid)
{
	if (VehicleSystem[carid][owned]==1)
	{
		Delete3DTextLabel(TextUpCar[carid]);
		format(TextCar,sizeof(TextCar),"Samochód: {00FFEE}%s{FFFFFF}",VehicleSystem[GetCreatorID(carid)][owner]);
		TextUpCar[carid] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
		Attach3DTextLabelToVehicle(TextUpCar[carid],carid,0.0,0.0,0.0);
	}
	else if(VehicleSystem[carid][owned]==0)
	{
		Delete3DTextLabel(TextUpCar[carid]);
		format(TextCar,sizeof(TextCar),"Auto na sprzedaż, Cena: %d",VehicleSystem[GetCreatorID(carid)][preis]);
		TextUpCar[carid] = Create3DTextLabel(TextCar, 0xFFFFFFAA ,0,0,0,20.0,0);
		Attach3DTextLabelToVehicle(TextUpCar[carid],carid,0.0,0.0,0.0);
	}
	return 1;
}

Daj mi jeszcze kod który wyczytuje pojazdy podczas startu serwera.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dziwne - po zmienaie tego OnPlayerStateChange i CarLabel - mam "Program przestał działać"

 

 

PS. Mógłbyś mi wytłumaczyć jak dostosowywać to ;

 

Carlabel(vehicleid);

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ciekawa sprawa. W tym co Ci dałem nie ma żadnego błędu. Musiałeś coś źle wkleić i usunąłeś gdzieś jakąś klamrę albo jest ich za dużo.

 

Jak dostosować? Podaj odpowiedni parametr.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Bo napisałeś :

A w momencie kiedy ktoś kupuje pojazd daj:


Carlabel(vehicleid);

..tam sobie to dopasuj.

 

I ja to zrozumiałem, że mam to sobie odpowiednio przerobić - ale chyba bardziej Tobie chodziło o dodanie tego w miejscu gdzie ktoś kupuje by się to trzymało "kupy". Chyba , że źle to zrozumiałem.
 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×