Wie geht das, das wenn der spieler /starten schreibt das er dann losfahren kann
ich hab schon mal sowas gehabt aber da war der spieler immer schon gefreezt bevor der spieler im auto war
bitte um hilfe
Könnte mir jemand so etwas machen bitte!!!
Wie geht das, das wenn der spieler /starten schreibt das er dann losfahren kann
ich hab schon mal sowas gehabt aber da war der spieler immer schon gefreezt bevor der spieler im auto war
bitte um hilfe
Könnte mir jemand so etwas machen bitte!!!
Du erstellst eine Variable:
new MotorOn[MAX_VEHICLES];
new IsInCar[MAX_PLAYERS];
Erstellst unter OnGameModeInit Fahrzeuge und fügst das hinzu:
for(new c = 0; c<MAX_VEHICLES; c++)
{
MotorOn[code=c] = 0;
}
Unter OnPlayerConnect:
IsInCar[playerid] = 0;
Unter PLAYER_STATE_DRIVER:
if(MotorOn[code=c] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Der Motor ist aus, starte ihn mit /start!");
TogglePlayerControllable(playerid, 0);
IsInCar[playerid] = 1;
}
Unter OnPlayerCommand:
if(strcmp(cmd, "/start", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(MotorOn[GetPlayerVehicleID(playerid)] == 0)
{
SendClientMessage(playerid, COLOR_GREEN, "Du hast den Motor gestartet!");
MotorOn[GetPlayerVehicleID(playerid)] = 1;
TogglePlayerControllable(playerid, 1);
}
else if(MotorOn[GetPlayerVehicleID(playerid)] == 1)
{
SendClientMessage(playerid, COLOR_RED, "Du hast den Motor ausgeschaltet!");
MotorOn[GetPlayerVehicleID(playerid)] = 0;
TogglePlayerControllable(playerid, 0);
}
}
}
Unter OnPlayerKeyStateChange:
if(IsKeyJustDown(16, newkeys, oldkeys))
{
if(IsInCar[playerid] == 1)
{
TogglePlayerControllable(playerid, 1);
RemovePlayerFromVehicle(playerid);
IsInCar[playerid] = 0;
}
}
Und das irgendwo unten im Script:
IsKeyJustDown(key, newkeys, oldkeys)
{
if((newkeys & key) && !(oldkeys & key)) return 1;
return 0;
}
for(new c = 0; c<MAX_VEHICLES; c++)
{
MotorOn[code=c] = 0;
}
was soll ich da machen
ich hab halt 137 autos
Einfach unter OnGameModeInit einfügen, das sorgt dafür, dass alle Fahrzeuge die Spawnen, MotorOn[code=c] = 0 bekommen, also das der Motor aus ist.
PLAYER_STATE_DRIVER:
muss ich da ein neues public machen und wenn ja wei soll das heißen
public PlayerStateDriver
Hast du ein selbstgemachtes Script, oder GF ?
self
Versuchs mal so:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new string[150];
if(newstate == PLAYER_STATE_DRIVER)
{
if(MotorOn[GetPlayerVehicleID(playerid)] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Der Motor ist aus, starte ihn mit /start!");
TogglePlayerControllable(playerid, 0);
IsInCar[playerid] = 1;
return 1;
}
}
return 1;
}
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(898) : warning 204: symbol is assigned a value that is never used: "vehidz"
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1259) : warning 219: local variable "tmp" shadows a variable at a preceding level
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1282) : warning 219: local variable "tmp" shadows a variable at a preceding level
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1311) : warning 217: loose indentation
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(579) : warning 204: symbol is assigned a value that is never used: "tmp"
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(578) : warning 204: symbol is assigned a value that is never used: "spieler"
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1456) : error 017: undefined symbol "newkeys"
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1468) : error 021: symbol already defined: "OnPlayerStateChange"
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1476) : warning 217: loose indentation
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1469) : warning 204: symbol is assigned a value that is never used: "string"
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1469 -- 1482) : warning 203: symbol is never used: "ret_memcpy"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1468) : error 021: symbol already defined: "OnPlayerStateChange"
Du darfst natürlich nicht zwei mal ein public mit gleichem Namen machen. Das was Alex gemacht hat in dein bisheriges OnPlayerStateChange einfügen.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(898) : warning 204: symbol is assigned a value that is never used: "vehidz"
"vehidz" das hast du irgendwo erstellt, was nicht benutzt wird, entfern oder kommentier es aus, z. b. ---> // new vehidz .... keine Ahnung wie du es drinne hast
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1259) : warning 219: local variable "tmp" shadows a variable at a preceding level
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1282) : warning 219: local variable "tmp" shadows a variable at a preceding level
tmp ist schon definiert, entferne es, damit es nur 1 mal in einem Public definiert ist.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1311) : warning 217: loose indentation
du musst entweder drüber oder drunter der Zeile 1311 alles mit TAB taste richtig einrücken.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(579) : warning 204: symbol is assigned a value that is never used: "tmp"
tmp wird hier nicht benutzt, entfern es.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(578) : warning 204: symbol is assigned a value that is never used: "spieler"
spieler wird hier nicht benutzt, entfern es.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1456) : error 017: undefined symbol "newkeys"
Kommt wohl davon, dass du 2 mal OnPlayerStateChange drinn hast. Tuh den Code vom OnPlayerStateChange von mir in dein OnPlayerStateChange.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1468) : error 021: symbol already defined: "OnPlayerStateChange"
siehe oben.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1476) : warning 217: loose indentation
siehe oben.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1469) : warning 204: symbol is assigned a value that is never used: "string"
string wird nicht benutzt, entfern es.
C:\Users\Rene\Desktop\Sonstige & Spiele\GTA Server\gamemodes\Reallife.pwn(1469 -- 1482) : warning 203: symbol is never used: "ret_memcpy"
ret_memcpy wird nicht benutzt, entfern es.
1Problem wenn man dan /start eingibt steht da der Motro ist gestartet und darunter server unkown command
Am Ende des Befehls "return 1;" setzen
und fals mich wer rausschmeißt bevor ich gestartet habe dann muss ich halt amchen
if (strcmp("/aussteigen", cmdtext, true, 10) == 0)
{
TogglePlayerControllable(playerid, 1);
return 1;
}
//edit das sol aber nur gehen wenn er nicht im auto sitzt
man soll das ja nur machen könen wenn man nicht im auto sitzt
also so
if (strcmp("/aussteigen", cmdtext, true, 10) == 0)
{
if(!IsPlayerInAnyVehicle(playerid)) return true;
{
TogglePlayerControllable(playerid, 1);
}
return 1;
}
oder so??
if (strcmp("/aussteigen", cmdtext, true, 10) == 0)
{
if(!IsPlayerInAnyVehicle(playerid)) return true;
TogglePlayerControllable(playerid, 1);
return 1;
}
geht trozdem noch wenn ich auf einem auto/motorrad sitze! wenn ich /aussteigen schreibe ist das so wie wenn ich /start aufm auto schreib
Alles andere geht soweit, aber es fehlt nur noch die Bedingung, falls dich jemand aus dem Wagen schmeißt oder ?
playerstatechange. newstate == onfoot, oldstate == driver... unfreezen
Also unter onplayerstatechange:
if(newstate == PLAYER_STATE_ONFOOT)
{
if(oldstate == PLAYER_STATE_DRIVER && IsInCar[playerid] == 1)
{
TogglePlayerControllable(playerid, 1);
IsInCar[playerid] = 0;
}
}