[HELP] Loop problem (Weapon Drop) -
eDz0r - 26.11.2011
Problem: After creating the second weapon the first one don't work anymore
On top
How i create the weapon pickup
pawn Код:
new Float:X, Float:Y, Float:Z;
for(new wID = 0; wID < MAX_DROPS; wID ++)
{
WeaponInfo[wID][wData][0] = GetPlayerWeapon(playerid);
WeaponInfo[wID][wData][1] = GetPlayerAmmo(playerid);
GetPlayerPos(playerid, X, Y, Z);
pikW[wID] = CreatePickup(GetWeaponModelByID(GetPlayerWeapon(playerid)), 1, X, Y, Z, GetPlayerVirtualWorld(playerid));
OnPlayerPickUpPickup
pawn Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new wID = 0; wID < MAX_DROPS; wID ++)
{
if(pickupid == pikW[wID])
{
new pString[100], wName[50];
GetWeaponName(WeaponInfo[wID][wData][0], wName, sizeof(wName));
format(pString, sizeof(pString), "~b~%s ~n~~y~Bullets: ~w~%d", wName, WeaponInfo[wID][wData][1]);
GameTextForPlayer(playerid, pString, 2500, 4);
}
}
return 1;
}
GetWeaponModelByID
pawn Код:
stock GetWeaponModelByID(WeaponID)
{
if(WeaponID == 1) return 331;
if(WeaponID == 2) return 333;
if(WeaponID == 3) return 334;
if(WeaponID == 4) return 335;
if(WeaponID == 5) return 336;
if(WeaponID == 6) return 337;
if(WeaponID == 7) return 338;
if(WeaponID == 8) return 339;
if(WeaponID == 9) return 341;
if(WeaponID == 10) return 321;
if(WeaponID == 11) return 322;
if(WeaponID == 12) return 323;
if(WeaponID == 13) return 324;
if(WeaponID == 14) return 325;
if(WeaponID == 15) return 326;
if(WeaponID == 16) return 342;
if(WeaponID == 17) return 343;
if(WeaponID == 18) return 344;
if(WeaponID == 22) return 346;
if(WeaponID == 23) return 347;
if(WeaponID == 24) return 348;
if(WeaponID == 25) return 349;
if(WeaponID == 26) return 350;
if(WeaponID == 27) return 351;
if(WeaponID == 28) return 352;
if(WeaponID == 29) return 353;
if(WeaponID == 30) return 355;
if(WeaponID == 31) return 356;
if(WeaponID == 32) return 372;
if(WeaponID == 33) return 357;
if(WeaponID == 34) return 358;
if(WeaponID == 35) return 359;
if(WeaponID == 36) return 360;
if(WeaponID == 37) return 361;
if(WeaponID == 38) return 362;
if(WeaponID == 39) return 363;
if(WeaponID == 41) return 365;
if(WeaponID == 42) return 366;
if(WeaponID == 43) return 367;
if(WeaponID == 46) return 371;
else return -1;
}
Advise thanks
Re: [HELP] Loop problem (Weapon Drop) -
Elka_Blazer - 26.11.2011
Quote:
Originally Posted by eDz0r
Problem: After creating the second weapon the first one don't work anymore
How i create the weapon pickup
pawn Код:
new Float:X, Float:Y, Float:Z;
for(new wID = 0; wID < MAX_DROPS; wID ++) { WeaponInfo[wID][wData][0] = GetPlayerWeapon(playerid); WeaponInfo[wID][wData][1] = GetPlayerAmmo(playerid);
GetPlayerPos(playerid, X, Y, Z); pikW[wID] = CreatePickup(GetWeaponModelByID(GetPlayerWeapon(playerid)), 1, X, Y, Z, GetPlayerVirtualWorld(playerid));
OnPlayerPickUpPickup
pawn Код:
public OnPlayerPickUpPickup(playerid, pickupid) { for(new wID = 0; wID < MAX_DROPS; wID ++) { if(pickupid == pikW[wID]) { new pString[100], wName[50];
GetWeaponName(WeaponInfo[wID][wData][0], wName, sizeof(wName)); format(pString, sizeof(pString), "~b~%s ~n~~y~Bullets: ~w~%d", wName, WeaponInfo[wID][wData][1]); GameTextForPlayer(playerid, pString, 2500, 4); } } return 1; }
GetWeaponModelByID
pawn Код:
stock GetWeaponModelByID(WeaponID) { if(WeaponID == 1) return 331; if(WeaponID == 2) return 333; if(WeaponID == 3) return 334; if(WeaponID == 4) return 335; if(WeaponID == 5) return 336; if(WeaponID == 6) return 337; if(WeaponID == 7) return 338; if(WeaponID == 8) return 339; if(WeaponID == 9) return 341; if(WeaponID == 10) return 321; if(WeaponID == 11) return 322; if(WeaponID == 12) return 323; if(WeaponID == 13) return 324; if(WeaponID == 14) return 325; if(WeaponID == 15) return 326; if(WeaponID == 16) return 342; if(WeaponID == 17) return 343; if(WeaponID == 18) return 344; if(WeaponID == 22) return 346; if(WeaponID == 23) return 347; if(WeaponID == 24) return 348; if(WeaponID == 25) return 349; if(WeaponID == 26) return 350; if(WeaponID == 27) return 351; if(WeaponID == 28) return 352; if(WeaponID == 29) return 353; if(WeaponID == 30) return 355; if(WeaponID == 31) return 356; if(WeaponID == 32) return 372; if(WeaponID == 33) return 357; if(WeaponID == 34) return 358; if(WeaponID == 35) return 359; if(WeaponID == 36) return 360; if(WeaponID == 37) return 361; if(WeaponID == 38) return 362; if(WeaponID == 39) return 363; if(WeaponID == 41) return 365; if(WeaponID == 42) return 366; if(WeaponID == 43) return 367; if(WeaponID == 46) return 371; else return -1; }
Advise thanks
|
I dont see where u used giveplayerweapon...
Re: [HELP] Loop problem (Weapon Drop) -
eDz0r - 26.11.2011
Quote:
Originally Posted by Elka_Blazer
I dont see where u used giveplayerweapon...
|
that "thing" don't matter now...
Re: [HELP] Loop problem (Weapon Drop) -
Elka_Blazer - 26.11.2011
Anyways, you need to use sizeof() ....
Re: [HELP] Loop problem (Weapon Drop) -
eDz0r - 26.11.2011
Quote:
Originally Posted by Elka_Blazer
Anyways, you need to use sizeof() ....
|
sizeof(); what?
MAX_DROPS = sizeof(WeaponInfo)
Re: [HELP] Loop problem (Weapon Drop) -
Elka_Blazer - 26.11.2011
Show me the enum
Re: [HELP] Loop problem (Weapon Drop) -
eDz0r - 26.11.2011
Quote:
Originally Posted by Elka_Blazer
Show me the enum
|
pawn Код:
enum wInfo
{
wData[2],
};
new WeaponInfo[MAX_DROPS][wInfo];
new pikW[MAX_DROPS];//The pickup
Re: [HELP] Loop problem (Weapon Drop) -
Rob_Maate - 26.11.2011
Ya I'm also confused...
At no point do you actually GIVE the player the gun they picked up.
Re: [HELP] Loop problem (Weapon Drop) -
eDz0r - 26.11.2011
Quote:
Originally Posted by Rob_Maate
Ya I'm also confused...
At no point do you actually GIVE the player the gun they picked up.
|
why to give someone something that not exist?
Re: [HELP] Loop problem (Weapon Drop) - Emmet_ - 26.11.2011
pawn Код:
for(new wID = 0; wID < MAX_DROPS; wID ++)
{
WeaponInfo[wID][wData][0] = GetPlayerWeapon(playerid);
WeaponInfo[wID][wData][1] = GetPlayerAmmo(playerid);
This is looping through ALL the weapon drops and setting their values, so every time you drop a weapon, then drop another one, the second weapon dropped will overwrite the first weapon, therefore it's gone.