Wie könne ich ein onplayerleavepickup scripten, also:
Spieler geht ins Pickup
timer wird gestartet
spieler wird geportet
Wenn er aber vor dem Port aus dem Pickupgeht soll timer gekillt werden
aber es gibt kein onplayerleavepickup
Wie könne ich ein onplayerleavepickup scripten, also:
Spieler geht ins Pickup
timer wird gestartet
spieler wird geportet
Wenn er aber vor dem Port aus dem Pickupgeht soll timer gekillt werden
aber es gibt kein onplayerleavepickup
Vielleicht würde eine IsPlayerInRangeOfPoint Abfrage da passen
Du meinst im Timer?
Jah müsste klappen ...
Naja danke ;))
Du fragst mit IsPlayerInRangeOfPoint die Position ab, wenn er bei dem Pickup ist, startest du einfach den Timer, und er wird geportet.
Warum freezt du ihn nicht einfach?^^
Ich will ja dass er rausgehen kann
Guck dir ma die Pickupmodelle an da ist bestimmt was passendes mit bei ;]
http://wiki.sa-mp.com/wiki/CreatePickup
Gruss: Sonic
Wie könne ich ein onplayerleavepickup scripten, also:
Spieler geht ins Pickup
timer wird gestartet
spieler wird geportet
Wenn er aber vor dem Port aus dem Pickupgeht soll timer gekillt werden
aber es gibt kein onplayerleavepickup
Guck dir ma die Pickupmodelle an da ist bestimmt was passendes mit bei ;]
http://wiki.sa-mp.com/wiki/CreatePickup
Gruss: Sonic
Les dir doch mal sein Wunsch durch. Es geht nicht um Pickups erstellen
JAA ok Die einzige Möglichkeit die du hast ist mit "IsPlayerInRangeOfPoint"
Sonst wenn du es nicht hinkriegst kann ich dir ja helfen
Oder du setzt den Timer des "IsPlayerInRangeOfPoint" hoch
Gruss: Sonic
enum epInfo
{
Float:pickupX,
Float:pickupY,
Float:pickupZ,
pickupID
}
new pickupInfo[MAX_PICKUPS][epInfo],
bool:pickupPI[MAX_PLAYERS],
pickupIDX;
forward OnPlayerLeavePickup(playerid,pickupid);
stock _xCreatePickup(model, type, Float:X, Float:Y, Float:Z, Virtualworld)
{
pickupInfo[pickupIDX][pickupID] = CreatePickup(model,type,X,Y,Z,Virtualworld);
pickupInfo[pickupIDX][pickupX] = X;
pickupInfo[pickupIDX][pickupY] = Y;
pickupInfo[pickupIDX][pickupZ] = Z;
pickupIDX++;
return 1;
}
forward _xOnPlayerUpdate();
public _xOnPlayerUpdate()
{
for(new p; p < pickupIDX; p++) {
if(IsPlayerInRangeOfPoint(playerid,1.0,pickupInfo[p][pickupX],pickupInfo[p][pickupY],pickupInfo[p][pickupZ])) {
pickupPI[playerid] = true;
}
else {
if(pickupPI[playerid] == true) {
pickupPI[playerid] = false;
CallLocalFunction("OnPlayerLeavePickup","dd",playerid,pickupInfo[p][pickupID]);
}
}
}
return 1;
}
#if defined _ALS_CreatePickup
#undef CreatePickup
#else
#define _ALS_CreatePickup
#endif
#define CreatePickup _xCreatePickup
#if defined _ALS_OnPlayerUpdate
#undef OnPlayerUpdate
#else
#define _ALS_OnPlayerUpdate
#endif
#define OnPlayerUpdate _xOnPlayerUpdate
Option A: In eine Include packen und oben ins Script einbinden (#include blabla)
Option B: Unter deine Includes kopieren
Mal eben in 15 Minuten aus lw gescriptet, viel Spaß. (Falls Fehler auftreten posten, ich geb noch Support für den Code xD)
Ne will es mit is in range
trtz danke
if(IsPlayerInRangeOfPoint(playerid,1.0,pickupInfo[p][pickupX],pickupInfo[p][pickupY],pickupInfo[p][pickupZ])) {
pickupPI[playerid] = true;
}
Ist auch überhaupt ned mit IsPlayerInRange...
Außerdem geht es gar nicht anders.