27.11.2012, 23:10
(
Последний раз редактировалось Mikkel_RE; 28.11.2012 в 11:43.
)
I made that when a player dies, all the weapons he got will drop on the floor, but when they drop they lay above each other, can you help me to make them spread out or something?
This is my code:
They lay like this:
This is my code:
pawn Код:
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X, Y, Z);
new weaponID[13], weaponammo[13], rpos[4];
rpos[0] = random(7),rpos[1] = random(7),rpos[2] = random(2),rpos[3] = random(2);
for(new i = 0; i < 13; i++)
{
if(rpos[3] == 0 && rpos[2] == 0)
{
GetPlayerWeaponData(playerid, i, weaponID[i], weaponammo[i]);
DropWeapons(weaponID[i], weaponammo[i], X + rpos[0], Y + rpos[1], Z, GetPlayerVirtualWorld(playerid), playerid);
}
if(rpos[3] == 0 && rpos[2] == 1)
{
GetPlayerWeaponData(playerid, i, weaponID[i], weaponammo[i]);
DropWeapons(weaponID[i], weaponammo[i], X - rpos[0], Y + rpos[1], Z, GetPlayerVirtualWorld(playerid), playerid);
}
if(rpos[3] == 1 && rpos[2] == 0)
{
GetPlayerWeaponData(playerid, i, weaponID[i], weaponammo[i]);
DropWeapons(weaponID[i], weaponammo[i], X + rpos[0], Y - rpos[1], Z, GetPlayerVirtualWorld(playerid), playerid);
}
if(rpos[3] == 1 && rpos[2] == 1)
{
GetPlayerWeaponData(playerid, i, weaponID[i], weaponammo[i]);
DropWeapons(weaponID[i], weaponammo[i], X - rpos[0], Y - rpos[1], Z, GetPlayerVirtualWorld(playerid), playerid);
}
}
pawn Код:
stock DropWeapons(gunID,gunAmmo,Float:X,Float:Y,Float:Z,world,playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
if(IsBadGun(gunID)) { return 1; }
if(gunID != 0 && gunAmmo != 0)
{
for(new i = 0; i < sizeof(DropInfo); i++)
{
if(DropInfo[i][dx] == 0.0 && DropInfo[i][dy] == 0.0 && DropInfo[i][dz] == 0.0)
{
DropInfo[i][dType] = 1;
DropInfo[i][dAmount][0] = gunID;
DropInfo[i][dAmount][1] = gunAmmo;
DropInfo[i][dx] = X;
DropInfo[i][dy] = Y;
DropInfo[i][dz] = Z;
DropInfo[i][dWorld] = world;
strcpy(DropInfo[i][dPlayerName],name,MAX_PLAYER_NAME);
DropObject[i] = CreateObject(gh_GetObjectID(gunID), X, Y, Z-1,93.7,120.0,120.0, world);
return 1;
}
}
return 1;
}
return 1;
}