haber si alguien me puede ayudar con esto
#1

tengo un script para el camion packer para ponerle vehiculos encima hasta hay todo bien el problema esta al ponerle los vehiculos que salen invisible y a mi me gustaria que se vieran

haber si alguien amable me puede modificar el codigo por favor

Код:
    //--------------[Packer Script]----------------//
   //---------------[By KayLuz]-------------------//
  //------------------[V0.2]---------------------//
 //---------------------------------------------//


#include <a_samp>
#include <zcmd>
#include <sscanf2>
#pragma tabsize 0
new
	prevcar[MAX_PLAYERS],
	slots[MAX_VEHICLES][5],
	veh,
	string[125],
	useslot,
	nearest,
	Float:X, Float:Y, Float:Z, Float:A;

forward GetClosestCar(playerid);
forward GetDistanceToCar(playerid,carid);

/*new InvalidVehicles[60] = {  Work In Progress
	403, 406, 407, 408, 409, 417, 425, 430, 431, 432, 433, 435, 437, 443, 444,
	446, 447, 449, 450, 452, 453, 454, 455, 456, 457, 463, 469, 472, 473,
	476, 484, 486, 487, 488, 493, 497, 511, 512, 513, 514, 515, 519, 520,
	524, 532, 537, 538, 548, 553, 557, 589, 570, 578, 584, 590, 591, 592,
	593, 595, 601
}*/



public GetClosestCar(playerid){ //By Darkrealm
	if (!IsPlayerConnected(playerid)){
	    return -1;
	}
	new Float:prevdist = 8.000;
	for (new carid = 0; carid < MAX_VEHICLES; carid++){
	    if(!IsVehicleInUse(carid)){
	 		new Float:dist = GetDistanceToCar(playerid,carid);
		    if ((dist < prevdist)){
		         prevdist = dist;
		         prevcar[playerid] = carid;
           	}
   		}
	}
	return prevcar[playerid];
}
public GetDistanceToCar(playerid,carid){ //By Darkrealm
	new Float:dis;
	new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
	if (!IsPlayerConnected(playerid)) {
	return -1;
	}
	GetPlayerPos(playerid,x1,y1,z1);
 	if(!IsVehicleInUse(carid)){
		GetVehiclePos(carid,x2,y2,z2);
		dis = floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
 		return floatround(dis);
	}else{
		return 1;
	}
}
IsVehicleInUse(vehicleid){
	new temp;
	for(new i=0;i<GetMaxPlayers();i++){
		if(IsPlayerConnected(i) && IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i)==PLAYER_STATE_DRIVER){temp++;}
	}
	if(temp > 0){ return true; } else return false;
}
public OnPlayerSpawn(playerid)
{
    return 1;
}
forward LoadVehicle(playerid);
public LoadVehicle(playerid)
{
	veh = GetPlayerVehicleID(playerid);
	nearest = GetClosestCar(playerid);
	PlayerPlaySound(playerid, 1056, X, Y, Z);
	if(GetVehicleModel(veh) == 443)
 	{
 	    if(nearest > 0)
 	    {
			slots[veh][useslot] = nearest;
			SetVehicleVirtualWorld(slots[veh][useslot], 19);
			SetVehiclePos(slots[veh][useslot], 1878.3353,-1380.3011,13.5722);
			SendClientMessage(playerid, 0xFF0000FF, "*Vehicle loaded on the back*");
			format(string, 125, "[Vehicle Loaded] Slot Used %d | Vehicle ID: %d",  useslot, slots[veh][useslot]);
			SendClientMessage(playerid, 0x33CCFFFF, string);
			useslot = 0;
			return 1;
		}
		else SendClientMessage(playerid, 0xFF0000FF, "There is no vehicle close enough");
	}
	else SendClientMessage(playerid, 0xFF0000FF, "*You Must Be In A Packer*");return 1;
}
public OnGameModeInit()
{
	print("______________Packer System V0.2 Loaded__________________");
    for(new v=1;v<MAX_VEHICLES;v++)
    {
		slots[v][1] = -1;
		slots[v][2] = -1;
		slots[v][3] = -1;
		slots[v][4] = -1;
	}
}
public OnPlayerDisconnect(playerid, reason)
{
	return 1;
}

COMMAND:packer(playerid, params[])
{
		new packer;
		GetPlayerPos(playerid, X,Y,Z);
		veh = CreateVehicle(443, X+3,Y+3,Z, 0.0, 6, 6, 60000);
		slots[packer][1] = -1;
		slots[packer][2] = -1;
		slots[packer][3] = -1;
		slots[packer][4] = -1;
		return 1;
}
COMMAND:loadv(playerid, params[])
{
	veh = GetPlayerVehicleID(playerid);
	if(GetVehicleModel(veh) == 443)
 	{
		if(slots[veh][1] == -1)
		{
		    useslot = 1;
			SetTimerEx("LoadVehicle",2800,0,"i",playerid);
			SendClientMessage(playerid, 0xFF0000FF, "*Attempting To Load Vehicle....*");
			return 1;

		}
		else if(slots[veh][2] == -1)
		{
		    useslot = 2;
			SetTimerEx("LoadVehicle",2500,0,"i",playerid);
			SendClientMessage(playerid, 0xFF0000FF, "*Attempting To Load Vehicle....*");
			return 1;
		}
		else if(slots[veh][3] == -1)
		{
		    useslot = 3;
			SetTimerEx("LoadVehicle",2500,0,"i",playerid);
			SendClientMessage(playerid, 0xFF0000FF, "*Attempting To Load Vehicle....*");
			return 1;
		}
		else if(slots[veh][4] == -1)
		{
		    useslot = 4;
			SetTimerEx("LoadVehicle",2500,0,"i",playerid);
			SendClientMessage(playerid, 0xFF0000FF, "*Attempting To Load Vehicle....*");
			return 1;
		}
		else SendClientMessage(playerid, 0xFF0000FF, "*Packer Is Full*");
	}
	else SendClientMessage(playerid, 0xFF0000FF, "*You Must Be In A Packer*");return 1;
}

COMMAND:unloadv(playerid, params[])
{
	new aslots;
	new tmp[256];
	aslots = strval(tmp);
	veh = GetPlayerVehicleID(playerid);
	PlayerPlaySound(playerid, 1056, X, Y, Z);
	if (sscanf(params, "i", aslots)) return SendClientMessage(playerid, 0xFF0000FF, "[ERROR] Right Usage: /unload [Slot 1-4]");
	if(slots[veh][aslots] >= 0)
	{
		format(string, 125, "[Vehicle Unloaded] Slot %d Unloaded | Vehicle ID:%d",  aslots, slots[veh][aslots]);
 		SendClientMessage(playerid, 0x33CCFFFF, string);
		GetPlayerPos(playerid, X, Y, Z);
		SetVehiclePos(slots[veh][aslots], X, Y+10, Z);
  		GetVehicleZAngle(veh, A);
		SetVehicleZAngle(slots[veh][aslots],A);
		SetVehicleVirtualWorld(slots[veh][aslots], 0);
		slots[veh][aslots] = -1;
		return 1;
	}
	else SendClientMessage(playerid, 0xFF0000FF, "* There is no vehicle in that slot | Try Another *"); return 1;
}
COMMAND:vslot(playerid, params[])
{
	new aslots;
	new tmp[256];
	aslots = strval(tmp);
	veh = GetPlayerVehicleID(playerid);
	if (sscanf(params, "i", aslots)) return SendClientMessage(playerid, 0xFF0000FF, "[ERROR] Right Usage: /vslot [Slot 1-4]");
	if(slots[veh][aslots] >= 0)
	{
		format(string, 125, "[Vehicle View]Packer Slot %d Contains Vehicle ID:%d", aslots, slots[veh][aslots]);
 		SendClientMessage(playerid, 0x33CCFFFF, string);
		return 1;
	}
	else SendClientMessage(playerid, 0xFF0000FF, "* There is no vehicle in that slot | Try Another *"); return 1;
}
Reply
#2

No lo veo posible, lo que si podrias hacer es hacer un 3dtext que aparezca en cada "slot" entonces que todos aparezcan en "Vacio" y que cuando carga uno, aparezca ese slot como "Ocupado - Bullet" o algo por el estilo, espero que te sirva.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)