08.11.2009, 16:59
Hello, I included pickup streamer in my server and it look like this:
The thing is, I it dont show the pickups... I dont know what happened, but it just dont work.
Код:
#define PICKUP_RANGE 50
Код:
forward CreateStreamPickup(model,type,Float:x,Float:y,Float:z,range); forward StreamPickups(); forward Pickup_AnyPlayerToPoint(Float:radi, Float:x, Float:y, Float:z); forward DestroyStreamPickup(ID); forward CountStreamPickups(); forward ChangeStreamPickupModel(ID,newmodel); forward ChangeStreamPickupType(ID,newtype); forward MoveStreamPickup(ID,Float:x,Float:y,Float:z);
Код:
public OnGameModeInit() { for(new i = 0; i < sizeof(BurgerDriveIn); i++) { BurgerPickUp[i] = CreateStreamPickup(1239, 23, BurgerDriveIn[i][0], BurgerDriveIn[i][1], BurgerDriveIn[i][2], PICKUP_RANGE); pickups++; } for(new i = 0; i < sizeof(ChickenDriveIn); i++) { ChickenPickUp[i] = CreateStreamPickup(1239, 23, ChickenDriveIn[i][0], ChickenDriveIn[i][1], ChickenDriveIn[i][2], PICKUP_RANGE); pickups++; } return 1; }
Код:
public CreateStreamPickup(model,type,Float:x,Float:y,Float:z,range) { new FoundID = 0; new ID; for ( new i = 0; FoundID <= 0 ; i++) { if( Pickup[i][pickupCreated] == 0 ) { if( FoundID == 0 ) { ID = i; FoundID = 1; } } if( i > MAX_PICKUPS ) { FoundID = 2; } } if( FoundID == 2 ) { print("Pickup limit reached! Pickup not created!"); return -1; } Pickup[ID][pickupCreated] = 1; Pickup[ID][pickupVisible] = 0; Pickup[ID][pickupModel] = model; Pickup[ID][pickupType] = type; Pickup[ID][pickupX] = x; Pickup[ID][pickupY] = y; Pickup[ID][pickupZ] = z; Pickup[ID][pickupRange] = range; return ID; } public DestroyStreamPickup(ID) { if(Pickup[ID][pickupCreated]) { DestroyPickup(Pickup[ID][pickupID]); Pickup[ID][pickupCreated] = 0; return 1; } return 0; } public CountStreamPickups() { new count = 0; for(new i = 0; i < MAX_PICKUPS; i++) { if(Pickup[i][pickupCreated] == 1) { count++; } } return count; } public StreamPickups() { for(new i = 0; i < MAX_PICKUPS; i++) { if(Pickup[i][pickupCreated] == 1) { if(Pickup_AnyPlayerToPoint(Pickup[i][pickupRange],Pickup[i][pickupX],Pickup[i][pickupY],Pickup[i][pickupZ])) { if(Pickup[i][pickupVisible] == 0) { Pickup[i][pickupID] = CreatePickup(Pickup[i][pickupModel],Pickup[i][pickupType],Pickup[i][pickupX],Pickup[i][pickupY],Pickup[i][pickupZ]); Pickup[i][pickupVisible] = 1; } } else { if(Pickup[i][pickupVisible] == 1) { DestroyPickup(Pickup[i][pickupID]); Pickup[i][pickupVisible] = 0; } } } } } public MoveStreamPickup(ID,Float:x,Float:y,Float:z) { if(Pickup[ID][pickupCreated]) { DestroyPickup(Pickup[ID][pickupID]); Pickup[ID][pickupVisible] = 0; Pickup[ID][pickupX] = x; Pickup[ID][pickupY] = y; Pickup[ID][pickupZ] = z; return 1; } return 0; } public ChangeStreamPickupModel(ID,newmodel) { if(Pickup[ID][pickupCreated]) { DestroyPickup(Pickup[ID][pickupID]); Pickup[ID][pickupVisible] = 0; Pickup[ID][pickupModel] = newmodel; return 1; } return 0; } public ChangeStreamPickupType(ID,newtype) { if(Pickup[ID][pickupCreated]) { DestroyPickup(Pickup[ID][pickupID]); Pickup[ID][pickupVisible] = 0; Pickup[ID][pickupType] = newtype; return 1; } return 0; } public Pickup_AnyPlayerToPoint(Float:radi, Float:x, Float:y, Float:z) { for (new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetPlayerPos(i, oldposx, oldposy, oldposz); tempposx = (oldposx -x); tempposy = (oldposy -y); tempposz = (oldposz -z); if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { return 1; } } } return 0; }