29.11.2012, 00:15
I made that when a player dies, he will drop all his weapons, but when they drop they lay above each other, can you help me to make them spread out or something?
This is my code:
And this in the debug print
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);
}
printf("%d,%d,%f,%d,%f,%d,%f,%d,%d",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;
}
Код:
[14:39:44] [command] [Mikkel_Reimer]: /kill [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 23,32767,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 27,32767,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 31,32767,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 34,32767,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] 0,0,1819.057739,3,-1840.432617,0,13.414062,0,0 [14:39:44] [death] Mikkel_Reimer died 255