public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys & KEY_NO)
{
switch(LootObjects[MAX_LOOTS])
{
case 0:
{
if(IsPlayerInRangeOfPoint(playerid,2.0,254.02530, 4084.52393, 0.42032))
{
AddItem(playerid,"Dead Deer", 1);
SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD);
DestroyObject(LootObjects[0]);
}
}
}
return 0;
}
E:\SAMP\RPG all\RPG\gamemodes\rc-apo.pwn(511) : error 032: array index out of bounds (variable "LootObjects")
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys & KEY_NO)
{
switch(LootObjects[MAX_LOOTS])
{
case 0:
{
if(IsPlayerInRangeOfPoint(playerid,2.0,254.02530, 4084.52393, 0.42032))
{
AddItem(playerid,"Dead Deer", 1);
SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD);
DestroyObject(LootObjects[0]);
}
}
}
}
return 0;
}
Err dat intendation doe...
pawn Код:
![]() edit: I noticed you used my tutorial for loot ![]() |
switch(LootObjects[500])
if (newkeys & KEY_NO) { switch(LootObjects[500]) { case 0: { if(IsPlayerInRangeOfPoint(playerid,2.0,254.02530, 4084.52393, 0.42032)) { AddItem(playerid,"Dead Deer", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD); DestroyObject(LootObjects[0]); } } case 1: { if(IsPlayerInRangeOfPoint(playerid,2.0,242.75516,4239.82813,8.84726)) { AddItem(playerid,"Dead Deer", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD); DestroyObject(LootObjects[1]); } } case 2: { if(IsPlayerInRangeOfPoint(playerid,2.0,225.52122, 4161.61670, 8.79168)) { AddItem(playerid,"Bandage", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_SMALLMEDKIT); DestroyObject(LootObjects[2]); } } case 3: { if(IsPlayerInRangeOfPoint(playerid,2.0,644.18268, 4754.36621, 8.81872)) { AddItem(playerid,"Large Water Bottle - Full", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_WATERBOTTLE); DestroyObject(LootObjects[3]); } } } }
I used yours and modified it a lot
![]() Код:
switch(LootObjects[500]) Код:
if (newkeys & KEY_NO) { switch(LootObjects[500]) { case 0: { if(IsPlayerInRangeOfPoint(playerid,2.0,254.02530, 4084.52393, 0.42032)) { AddItem(playerid,"Dead Deer", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD); DestroyObject(LootObjects[0]); } } case 1: { if(IsPlayerInRangeOfPoint(playerid,2.0,242.75516,4239.82813,8.84726)) { AddItem(playerid,"Dead Deer", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD); DestroyObject(LootObjects[1]); } } case 2: { if(IsPlayerInRangeOfPoint(playerid,2.0,225.52122, 4161.61670, 8.79168)) { AddItem(playerid,"Bandage", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_SMALLMEDKIT); DestroyObject(LootObjects[2]); } } case 3: { if(IsPlayerInRangeOfPoint(playerid,2.0,644.18268, 4754.36621, 8.81872)) { AddItem(playerid,"Large Water Bottle - Full", 1); SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_WATERBOTTLE); DestroyObject(LootObjects[3]); } } } } |
In that case, try switch(LootObjects[499]) :P If MAX_LOOT is 500, you can't use [500]. It's range would be 0 - 499.
|
if (newkeys & KEY_NO)
{
for(new i = 0; i != MAX_LOOTS; i++)
{
switch(i)
{
case 0:
{
if(IsPlayerInRangeOfPoint(playerid,2.0,254.02530, 4084.52393, 0.42032))
{
AddItem(playerid,"Dead Deer", 1);
SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD);
DestroyObject(LootObjects[0]);
}
}
case 1:
{
if(IsPlayerInRangeOfPoint(playerid,2.0,242.75516,4239.82813,8.84726))
{
AddItem(playerid,"Dead Deer", 1);
SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_DEAD);
DestroyObject(LootObjects[1]);
}
}
case 2:
{
if(IsPlayerInRangeOfPoint(playerid,2.0,225.52122, 4161.61670, 8.79168))
{
AddItem(playerid,"Bandage", 1);
SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_SMALLMEDKIT);
DestroyObject(LootObjects[2]);
}
}
case 3:
{
if(IsPlayerInRangeOfPoint(playerid,2.0,644.18268, 4754.36621, 8.81872))
{
AddItem(playerid,"Large Water Bottle - Full", 1);
SendClientMessage(playerid, COLOR_GREEN, TEXT_INV_WATERBOTTLE);
DestroyObject(LootObjects[3]);
}
}
}
}
}
pawn Код:
|
Wait a sec.. I think Riddick is right. Pretty sure actually. What you do now, is when the player presses the 'Y' button, you check slot 499 of LootObjects. With Riddick's code, you'll loop trough all the objects, to see if that's the object you're currently trying to loot.
|