Jump to content
  • 0

MegaTheVova

Dotaz

9 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Globální moderátor

2D pole, první rozměr je nosič playerid a druhé 0,1 značí auta. Při inicializaci nastav druhé rozměry na 0 (nejlépe při connectu, nezapomenout v disconnectu smazat zbytečná auta + podmínky vyhodit případné hráče z aut). Dále při zavolání toho scriptu budeš zjišťovat jestli jsou obě indexy prázdné 0,1 (podmínka == 0), pokud ne, smaže se první auto a nahradí se. Do proměnné se by se pak ukládala ID vytvořeného auta (vždy je nenulové)

 

http://wiki.sa-mp.com/wiki/CreateVehicle

http://wiki.sa-mp.com/wiki/DestroyVehicle

 

a deklarace proměnné by vypadala cca takto: vehIDs[MAX_PLAYERS][2];

 

Zkus si s tím poradit, pokud nebudeš vědět rady, tak ti napíšu blíže kód. 

Edited by HighPrint
Link to comment
Share on other sites

  • 0

Uprav si premenné pre spawn auta a ešte si pridaj, aby keď sa hráč odpojí, neh sa zničia jeho autá zo slotov + prestav premenné na 0.

|

#define MAX_VEHICLE_SLOTS				(2)

new
	g_VehicleIDSlot[MAX_PLAYERS][MAX_VEHICLE_SLOTS]

;

//Tam, kde chceš to auto spawnúť (príkaz?)
for(new i; i < MAX_VEHICLE_SLOTS; i++)
{
	if(!g_VehicleIDSlot[playerid][i])
	{//Ak neni použitý tento slot (0, alebo 1 (dva sloty))  
		g_VehicleIDSlot[playerid][i] = CreateVehicle( ... ); //Kód na spawn si doplň 
		return 1; //Tu je potreba return
	}
}
//Ak sme sa dostali sem, znamená to, že všetky sloty sú použité, takže môžeme nahradiť prvý slot
DestroyVehicle(g_VehicleIDSlot[playerid][0]);

g_VehicleIDSlot[playerid][i] = CreateVehicle( ... ); //Kód na spawn nového auta na nahradenie si doplň znovu
return 1; //Aby nehádzalo warning, že má funkcia vrátiť hodnotu, tak na konci ju vráť
Edited by Sanios
Link to comment
Share on other sites

  • 0

Třeba nějak takhle, ale musíš to dát na správné místo samozřejmě:

new vehIDs[MAX_PLAYERS][2];//Global proměnna

if(!vehIDs[playerid][0]) vehIDs[playerid][0] = CreateVehicle(...);
else if(!vehIDs[playerid][1]) vehIDs[playerid][1] = CreateVehicle(...);
else  {
DestroyVehicle(vehIDs[playerid][0]);
vehIDs[playerid][0] = vehIDs[playerid][1];  
vehIDs[playerid][1] = CreateVehicle(...);
}

OnPlayerConnect

vehIDs[playerid][0] = 0;
vehIDs[playerid][1] = 0;

OnPlayerDisconnect

DestroyVehicle(vehIDs[playerid][0]);
DestroyVehicle(vehIDs[playerid][1]);
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • 0

Špatná sekce

Přesouvám do Pawno -> Help

 

pro příště sem.

omlouvam se

if(strcmp(cmd,"/car", true)== 0)
{
		if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0x00FF00AA, "{FFFFFF}[{FF0000}Aw{FFFFFF}]{FF0000}: {FFFFFF}You're in a vehicle!");
    	new vehicleid = GetPlayerVehicleID(playerid);
    	new var0 = 0;
		new Float:var1 = 0.0, Float:var2 = 0.0, Float:var3 = 0.0, Float:var4 = 0.0, vid;
  tmp = strtok(cmdtext, idx);
  if (!strlen(tmp)) return SendClientMessage(playerid, 0x00D90044, "{FFFFFF}[{FF0000}Aw{FFFFFF}]{FF0000}: {FFFFFF}USAGE: /car [vehicleid/name]");
  if (IsNumeric(tmp) == 1)
  {
    vid = strval(tmp);
  } else {
    vid = GetVehicleIDFromName(tmp);
  }
  if ((vid < 400) || (vid > 611) | (vid == 590) || (vid == 569) || (vid == 570) || (vid == 537) || (vid == 538) || (vid == 449))
  {
    return SendClientMessage(playerid, 0x00D90044, "{FFFFFF}[{FF0000}Aw{FFFFFF}]{FF0000}: {FFFFFF}Wrong vehicle name/ID. Type vehicle name/ID [400-611]..");
  }
  else
  {
  		SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid));
		GetPlayerPos(playerid, var1, var2, var3);
		GetPlayerFacingAngle(playerid, var4);
		var0 = AddStaticVehicle(vid, var1, var2, var3, vid, 1, 2);
		for(new i = 0; i < MAX_VEHICLES; i++)
		{
		SetVehicleNumberPlate(i, "{000000}A{3399FF}WOLVES");
		}
  		var0 = PutPlayerInVehicle(playerid, var0, 0);
	return 1;
}
}

a jak to mam skombinovat s timhle ? :/

ok uz mozna vim kdybych mel problem tak jeste napisu vsem dekuju za pomoc :)

Link to comment
Share on other sites

  • 0

 

Třeba nějak takhle, ale musíš to dát na správné místo samozřejmě:

new vehIDs[MAX_PLAYERS][2];//Global proměnna

if(!vehIDs[playerid][0]) vehIDs[playerid][0] = CreateVehicle(...);
else if(!vehIDs[playerid][1]) vehIDs[playerid][1] = CreateVehicle(...);
else  {
DestroyVehicle(vehIDs[playerid][0]);
vehIDs[playerid][0] = vehIDs[playerid][1];  
vehIDs[playerid][1] = CreateVehicle(...);
}

OnPlayerConnect

vehIDs[playerid][0] = 0;
vehIDs[playerid][1] = 0;

OnPlayerDisconnect

DestroyVehicle(vehIDs[playerid][0]);
DestroyVehicle(vehIDs[playerid][1]);

Dekuju ti moc za pomoc a jeste jenom jestli nevis jak muzu udelat ze hrac si nastavi na max. pocet aut na 1?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...