Hi,
Kann mir einer ein AntiBikeFallOff scripten?
Bitte mit Timer.
Ich hatte einem ausm Englischen Samp Forum, aber der ist scheisse.
Ich will einen mit Timer, damit ich die Zeit selber anpassen kann..
Mfg Vince
Hi,
Kann mir einer ein AntiBikeFallOff scripten?
Bitte mit Timer.
Ich hatte einem ausm Englischen Samp Forum, aber der ist scheisse.
Ich will einen mit Timer, damit ich die Zeit selber anpassen kann..
Mfg Vince
Wie meinst du das mit dem Timer?
du könntest das evtl so machen, dann fällt er au net vom Bike
TogglePlayerControllable(playerid, 0);
Der Timer überprüft dann glaub ich immer, ob der Spieler aufm Bike ist, und wenn nicht dann setzt der ihn wieder aufs Bike.
Irgendwas mit PutPlayerToBike oder so..^^
EDIT: Es ist halt blöd, wenn man irgendwo reinfährt und dann sieht man, wie der Biker runterfällt und wieder draufgesetzt wird. Darum möchte ich, dass ich den Timer auf ne kleine Zeit stellen kann..
new fv;
public OnPlayerCommandText()
{
if (strcmp(cmd, "/antibike", true) == 0)
{
if (fv == 0)
{
SendClientMessage(playerid,0xFF0000,"Anti Bike Fall Off aktiviert!");
fv = 1;
} else if (fv == 1) { fv = 0; SendClientMessage(playerid,0xFF0000,"Anti Bike Fall off deaktiviert!"); }
}
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if (fv == 1)
{
new vid = GetPlayerVehicleID(vid);
PutPlayerInVehicle(playerid, vid, 1);
}
}
UNGTESTET
würde lieber nen bool benutzen..
also:
new bool:fv;
public OnPlayerCommandText()
{
if (strcmp(cmd, "/antibike", true) == 0)
{
if (fv == false)
{
SendClientMessage(playerid,0xFF0000,"Anti Bike Fall Off aktiviert!");
fv = true;
}
else if (fv == true)
{
fv = false;
SendClientMessage(playerid,0xFF0000,"Anti Bike Fall off deaktiviert!");
}
}
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if (fv == true)
{
new vid = GetPlayerVehicleID(vehicleid);
PutPlayerInVehicle(playerid, vid, 1);
}
}
hm könnte aber nen bissl buggy werden.
#define FALLOFFTIMER_KEY "fallofftimer"
#define BIKEFALL_KEY "bikefall"
#define BIKEFALLID_KEY "bikefallid"
#define BIKEFALLSEAT_KEY "bikefallseat"
//OnPlayerConnect
SetPVarInt(playerid,FALLOFFTIMER_KEY,SetTimerEx("falloff",500,1,"i",playerid));
// OnPlayerDisconnect
KillTimer(GetPVarInt(playerid,FALLOFFTIMER_KEY));
// OnPlayerEnterVehicle
new model = GetVehicleModel(vehicleid);
if(model == 509 || model == 481 || model == 510 || model == 462 || model == 448 || model == 581 || model == 522 || model == 461 || model == 521 || model == 523|| model == 463 || model == 586 || model == 468 || model == 471)
{
SetPVarInt(playerid,BIKEFALL_KEY,1);
SetPVarInt(playerid,BIKEFALLID_KEY,vehicleid);
}
// OnPlayerExitVehicle
if(GetPVarInt(playerid,BIKEFALL_KEY) == 1)
{
SetPVarInt(playerid,BIKEFALL_KEY,0);
}
// OnPlayerStateChange
if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
{
if(GetPVarInt(playerid,"FALLOFF_KEY") == 1)
{
SetPVarInt(playerid,BIKEFALLSEAT_KEY,GetPlayerVehicleSeat(playerid));
}
}
// Nun noch der public zum Timer
forward falloff(playerid);
public falloff(playerid)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(GetPVarInt(playerid,BIKEFALL_KEY) == 1)
{
PutPlayerInVehicle(playerid,GetPVarInt(playerid,BIKEFALLID_KEY),GetPVarInt(playerid,BIKEFALLSEAT_KEY));
}
}
return 1;
}
Ungetestet, sollte aber funktionieren
edit1: fehler korrigiert
edit2:fehler korrigiert
Der Compiler kackt dann ab Hagi^^
Jo hatte da noch zwei && in der Abfrage unter OnPlayerEnterVehicle stehen
Also hast du das oben jetz editiert?
Wenn ja, es funktioniert nicht.
Wenn Nein, ich finde hier keine 2 &^^
Hatte es oben editiert. Wo fügste denn die ganzen Sachen ein? In die Publics die als Kommentar drüber stehen?
Upsi^^
1 Error:
C:\Users\Vince\Desktop\Local Server\gamemodes\Selfmade.pwn(3335) : error 017: undefined symbol "BIKEFALLSEAT"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
BIKEFALLSEAT zu BIKEFALLSEAT_KEY
OK, keine Errors.
Ist der AntiBikeFallOff dann immer Aktiv?
Ja ist er. Damit man ihn abstellen kann, also wieder runterfallen kann, einfach das in nen Command machen und den OnPlayerEnterVehicle Part verändern
// OnPlayerEnterVehicle
new model = GetVehicleModel(vehicleid);
if(model == 509 || model == 481 || model == 510 || model == 462 || model == 448 || model == 581 || model == 522 || model == 461 || model == 521 || model == 523|| model == 463 || model == 586 || model == 468 || model == 471 && GetPVarInt(playerid,BIKEFALLSTATUS_KEY) == 1)
{
SetPVarInt(playerid,BIKEFALL_KEY,1);
SetPVarInt(playerid,BIKEFALLID_KEY,vehicleid);
}
// Beim anschalten im Command
SetPVarInt(playerid,BIKEFALLSTATUS_KEY,1);
// Beim ausschalten im Command
SetPVarInt(playerid,BIKEFALLSTATUS_KEY,0);
SetPVarInt(playerid,BIKEFALL_KEY,0); // kleiner debug falls man noch draufsitzt und deaktiviert
// Oben der zusätzliche define
#define BIKEFALLSTATUS_KEY "Bikefallstatus"
OK,
Es gibt Probleme. Wenn ich mich irgendwo hinporte (Stunt). Dann werd ich nicht geportet, sonder ich werd gleich wieder aufs Bike gesetzt...
Kannst du mir den ABFO nicht mit nem Timer machen bitte?
Mfg Vince
Läuft doch übern Timer?
SetPVarInt(playerid,FALLOFFTIMER_KEY,SetTimerEx("falloff",500,1,"i",playerid));
Wenn du porten willst, dann musste zum porten das System für den Spieler ausstellen:
SetPVarInt(zielid,BIKEFALLSTATUS_KEY,0);
SetPVarInt(zielid,BIKEFALL_KEY,0);