Hey,
wie ich die variable setzen muss, das man wenn man am fahrzeug steht und enter drückt, nichts passiert.
kann es sein, das das etwas mit SetVehicleParamsForPlayer zu tun hat?
Hey,
wie ich die variable setzen muss, das man wenn man am fahrzeug steht und enter drückt, nichts passiert.
kann es sein, das das etwas mit SetVehicleParamsForPlayer zu tun hat?
Soll es so geschehen oder ist es so?
Kannst es auch anders machen. Bei OnPlayerEnterVehicle abfragen ob es das Auto ist und dann
TogglePlayerControllable(playerid,0);//damit bleibt er stehen
TogglePlayerControllable(playerid,1);//dann kann er sich wieder bewegen
SetVehicleParamsForPlayer geht natürlich auch
Oder via ClearAnims(playerid);
Also ich habe bereits einen Car lock befehl erstellt, Er klappt auch, aber das Fahrzeug ist nur für mich, den der spieler gehört abgeschlossen, alle anderen können in das Fahrzeug.
Hier mal der befehl:
if(strcmp(cmd, "/carlock", true) == 0)
{
new file[50];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(file,50,"/Cars/%s.txt",name);
if(gPlayerHasCar[playerid] == 1)
{
new v, Float:vehx, Float:vehy, Float:vehz;
v = Vehicle[playerid];
GetVehiclePos(v, vehx, vehy, vehz);
if(IsPlayerInRangeOfPoint(playerid, 3.0, vehx, vehy, vehz))
{
if(VehicleInfo[playerid][Locked] == 0)
{
SetVehicleParamsForPlayer(v, playerid, 0, 1);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "~r~Fahrzeug abgeschlossen!", 3000, 6);
dini_IntSet(file,"Locked",1);
VehicleInfo[playerid][Locked] = 1;
gVehLocked[v] = 1;
return 1;
}
if(VehicleInfo[playerid][Locked] == 1)
{
SetVehicleParamsForPlayer(v, playerid, 0, 0);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "~g~Fahrzeug aufgeschlossen!", 3000, 6);
dini_IntSet(file,"Locked",0);
VehicleInfo[playerid][Locked] = 0;
gVehLocked[v] = 0;
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAU, "Du bist nicht in der Nähe deines Fahrzeuges.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAU, "Du besitzt kein Fahrzeug.");
}
return 1;
}
Mach eine globale Variable:
new VLock[MAX_VEHICLES];
Dann setzt du die im Befehl auf 0 oder 1.
Unter OnPlayerEnterVehicle:
if(VLock[vehicleid] == 1)
{
ClearAnims(playerid);
}
for(new i = 0; i<GetMaxPlayers();i++)
{
SetVehicleParamsForPlayer(v, i, 0, 0);
}
Statt
SetVehicleParamsForPlayer(v, playerid, 0, 0);
schließt für alle auf
for(new i = 0; i<GetMaxPlayers();i++)
{
SetVehicleParamsForPlayer(v, i, 0, 1);
}
Statt
SetVehicleParamsForPlayer(v, playerid, 0, 1);
schließt für alle ab
Jo. Und V einfach durch GetPlayerVehicleID(playerid); definieren!
okay hard base, ich glaube deine sache ist richtig, ich probiers nachher mal mit nem kumpel aus, wenn er wieder da ist Danke rotzdem, auch an alle anderen, die nadere Möglichkeit Sarruths müsste ja eig auch funktionieren, aber hard_base ist leichter zu ändern
ja das mit v habe ich ja auch so
Kein Ding,
wenn du dann noch Fragen/Fehler hast, kannst mich gerne anschreiben
Aua, es gibt doch eine extra Funktion, um Fahrzeugeigenschaften für alle zu definieren, da braucht ihr doch keine for-Schleife.
Ist doch egal.
Läuft aufs selbe raus^^
Naja Schleife frisst mehr Leistung;)
Ich glaube aber, dass Setveh...Ex,
auch eine Schleife ist bin mir aber nicht sicher
Nein der macht das sofort global und nicht für jeden einzelnen Spieler.
Egal machs einfach so;)
Also, ich habe das ganze jetzt nochmal mit nem Kumpel ausprobiert, aber das klappt immer noch nicht, nur für den besitzer des fahrzeuges ist das fahrzeug abgeschlossen...
hier nochmal der befehl:
if(strcmp(cmd, "/carlock", true) == 0)
{
new file[50];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(file,50,"/Cars/%s.txt",name);
for(new i = 0; i<GetMaxPlayers();i++)
if(gPlayerHasCar[playerid] == 1)
{
new v, Float:vehx, Float:vehy, Float:vehz;
v = Vehicle[playerid];
GetVehiclePos(v, vehx, vehy, vehz);
if(IsPlayerInRangeOfPoint(playerid, 3.0, vehx, vehy, vehz))
{
if(VehicleInfo[playerid][Locked] == 0)
{
SetVehicleParamsForPlayer(v, i, 0, 1);
//SetVehicleParamsForPlayer(v, playerid, 0, 1);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "~r~Fahrzeug abgeschlossen", 3000, 6);
dini_IntSet(file,"Locked",1);
VehicleInfo[playerid][Locked] = 1;
//VLock[vehicleid] = 1;//algemeine variable abgeschlossen
gVehLocked[v] = 1;
return 1;
}
if(VehicleInfo[playerid][Locked] == 1)
{
SetVehicleParamsForPlayer(v, i, 0, 0);
//SetVehicleParamsForPlayer(v, playerid, 0, 0);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "~g~Fahrzeug aufgeschlossen", 3000, 6);
dini_IntSet(file,"Locked",0);
VehicleInfo[playerid][Locked] = 0;
gVehLocked[v] = 0;
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAU, "Du bist nicht in der Nähe deines Fahrzeuges.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAU, "Du besitzt kein Fahrzeug.");
}
return 1;
}
new Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective;
if(strcmp(cmd, "/carlock", true) == 0)
{
new file[50];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(file,50,"/Cars/%s.txt",name);
if(gPlayerHasCar[playerid] == 1)
{
new v, Float:vehx, Float:vehy, Float:vehz;
v = Vehicle[playerid];
GetVehiclePos(v, vehx, vehy, vehz);
if(IsPlayerInRangeOfPoint(playerid, 3.0, vehx, vehy, vehz))
{
if(VehicleInfo[playerid][Locked] == 0)
{
GetVehicleParamsEx(v, Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective);
SetVehicleParamsEx(v, Engine, Lights, Alarm, VEHICLE_PARAMS_ON, Bonnet, Boot, Objective);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "~r~Fahrzeug abgeschlossen!", 3000, 6);
dini_IntSet(file,"Locked",1);
VehicleInfo[playerid][Locked] = 1;
gVehLocked[v] = 1;
return 1;
}
if(VehicleInfo[playerid][Locked] == 1)
{
GetVehicleParamsEx(v, Engine, Lights, Alarm, Doors, Bonnet, Boot, Objective);
SetVehicleParamsEx(v, Engine, Lights, Alarm, VEHICLE_PARAMS_OFF, Bonnet, Boot, Objective);
PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
GameTextForPlayer(playerid, "~g~Fahrzeug aufgeschlossen!", 3000, 6);
dini_IntSet(file,"Locked",0);
VehicleInfo[playerid][Locked] = 0;
gVehLocked[v] = 0;
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAU, "Du bist nicht in der Nähe deines Fahrzeuges.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAU, "Du besitzt kein Fahrzeug.");
}
return 1;
}
new vehicleid = GetPlayerVehicleID(playerid);
if (strcmp(cmdtext, "/lock", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new Stat5 ;
Stat5=GetPlayerState(playerid);
if(Stat5!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xAA3333AA,"Nur der Fahrer kann das Fahrzeug abschließen!");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
if(i != playerid)
{
SetVehicleParamsForPlayer(vehicleid,i, 0, 1);
}
}
SendClientMessage(playerid, 0x33AA33AA, "Fahrzeug abgeschlossen!");
}
else
{
SendClientMessage(playerid, 0xAA3333AA, "Sie besitzen kein Fahrzeug!");
}
return 1;
}
if (strcmp(cmdtext, "/unlock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new Stat6 ;
Stat6 = GetPlayerState(playerid);
if(Stat6!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xAA3333AA,"Nur der Fahrer kann das Fahrzeug abschließen!");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
SetVehicleParamsForPlayer(vehicleid,i, 0, 0);
}
SendClientMessage(playerid, 0x33AA33AA, "Fahrzeug abgeschlossen!");
}
else
{
SendClientMessage(playerid, 0xAA3333AA, "Sie besitzen kein Fahrzeug!");
}
return 1;
}
Danke funktioniert !