08.07.2018, 01:14
Quote:
So pickupids starts from 0, you need set all ARepairPickups[i][PickupID] to -1 before loading pickups and change == 0 to != -1
|
Код:
enum aInfo { PickupID, Float: pux, Float: puy, Float: puz, Text3D: TextLabel }; new ARepairPickups[MAX_REPAIR_PICKUPS][aInfo]; AddARepairPickups(Float:x, Float:y, Float:z) { for (new i; i < sizeof(ARepairPickups); i++) { if (ARepairPickups[i][PickupID] == -1) { ARepairPickups[i][PickupID] = CreatePickup(3096, 1, x, y, z, 0); ARepairPickups[i][pux] = x; ARepairPickups[i][puy] = y; ARepairPickups[i][puz] = z; Create3DTextLabel("{FFFF00}Type {00FF00}/repair {FFFF00}to repair your vehicle!", -1, x, y, z +0.5, 50.0, 0); CreateDynamicMapIcon(x, y, z, 63, 0, 0, 0, -1, 300.0); printf("PickupID: %d, PosX: %.4f, PosY: %.4f, PosZ: %.4f",ARepairPickups[i][PickupID],x,y,z); break; } } } bool:IsPlayerAtRepair(playerid) { for(new i; i != sizeof(ARepairPickups); i++) { if(ARepairPickups[i][PickupID] != -1) { printf("IsPlayerAtRepair: PosX: %.4f, PosY: %.4f, PosZ: %.4f",ARepairPickups[i][pux], ARepairPickups[i][puy], ARepairPickups[i][puz]); } if(ARepairPickups[i][PickupID] != -1 && IsPlayerInRangeOfPoint(playerid, 5.0, ARepairPickups[i][pux], ARepairPickups[i][puy], ARepairPickups[i][puz])) return true; } return false; } CMD:createrepair(playerid, params[]) { new Float:x, Float:y, Float:z; if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOUR_RED, "Administrator status required."); GetPlayerPos(playerid, x, y, z); AddARepairPickups(x, y, z); return 1; }