Ich bin mir nicht ganz sicher, aber ich denke der OP möchte eine visuelle auf der Minimap dargestellte Route haben. Lange kein SA:MP gespielt. Vergleichbar mit der GTA V Navigation.
O.o tja dann hab ich es wieder falsch verstanden ;D
Ich bin mir nicht ganz sicher, aber ich denke der OP möchte eine visuelle auf der Minimap dargestellte Route haben. Lange kein SA:MP gespielt. Vergleichbar mit der GTA V Navigation.
O.o tja dann hab ich es wieder falsch verstanden ;D
lässt du die Animationen vorher laden
Ich hätte es so gemacht, evt. (nicht getestet)
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
if(IsPalyerInTaxi(palyerid))// abfrage ob spieler in Taxi ist, musst selbst anpassen
{
new vehicle = GetPlayerVehicleID(playerid);
for(new i=0; i<MAX_PALYERS;i++)
{
if(!IsPlayerConnected(i))continue;
if(!IsPlayerInAnyVehicle(i))continue;
if(IsPlayerInVehicle(i, vehicle) && GetPlayerVehicleSeat(i)==PLAYER_STATE_DRIVER)
{
return SetPlayerCheckpoint(i, fX, fY, fZ, 5.0);
}
}
return 1;
}
return 1;
}
evt. bei onvehiclespawn abfragen , ob vehcile id == dem jobcarsid ist und dann einfach getparams ex und separams ex
alles klar dann mach das so
if(!isPlayerInJob(playerid,0))
nur 6? nicht mal 1, 2
aber wenn doch amch mal so
printl("a");
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
printl("b");
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
printl("c");
format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
printl("d");
ja wenn du keinen Job hast wie... ich fragte "wie" setzt du in den keinen job wenn du die id if(!isPlayerInJob(playerid,0)) auch verwendest?
oder ist 0 kein job?
verrück die 4 mal anch weiter unten also so...
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
printl("4");
wird sie dann imme rnoch geprintet?
die 6 sind normal aber kommt denn auch der game text motor an?
dann du doch mal hier printen
]
//Private Fahrzeuge
for(new id = 0; id < sizeof(cInfo); id++)
{
if(cInfo[id][id_x] == Vehicle)
{
printl("1");
if(cInfo[id][besitzer] == PlayerInfo[playerid][p_id])
{
printl("2");
GetVehicleParamsEx(Vehicle, engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == VEHICLE_PARAMS_ON)
{
printl("3");
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
return 1;
}
else
{
printl("4");
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
format(LastDriver[Vehicle],50,"%s",getPlayerName(playerid));
return 1;
}
printl("5");
}
printl("6");
}
}
wie ist mann denn nicht im Job?
schick doch bitte mal den ganzen motor befehl
ja ganz einfach also
du nutzt anscheinend ja alle job ids also auch 0 also machst du einfach das hier
if(!isPlayerInJob(playerid,-1))
was wird denn falsch geprintet?
du hast beim print auch nen kleinen fehler schau
printf("Besitzer: %d | ID: %d",cInfo[id][besitzer],cInfo[i][db_id]);
du hast nur i, dieses muss aber zu id also so
printf("Besitzer: %d | ID: %d",cInfo[id][besitzer],cInfo[id][db_id]);
ehm du schau mal ganz genau hin...
for(new id = 0; id < sizeof(cInfo); id++)
{
if(cInfo[id][id_x] == Vehicle)
{
}
}
else
{
return SendClientMessage(playerid,-1,"Kaputt");
}
Das else ist anch der for schleife da fehlt ne if abfrage ob das fahrzeug kaputt ist oder nicht? schau mal so evt.
for(new id = 0; id < sizeof(cInfo); id++)
{
if(cInfo[id][id_x] == Vehicle)
{
//weitere sachen
SendClientMessage(playerid,-1,"Ich sollte im Chat stehen");
}
}
Ja hey
Der fehler ist glaube das wenn du kein admin warst, dass das
return SCM(playerid,BUSFARBESYSTEM,"Du besitzt keine Schlüssel für dieses Fahrzeug.");
dort nicht ganz angebracht ist
versuchs mal so
if((newkeys & KEY_ANALOG_DOWN) && IsPlayerInAnyVehicle(playerid) && !IsVehAKeyVeh(vehicleid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(Spieler[playerid][pHealTime] != 0)return SCM(playerid,GRAU,"Du kannst während des Geschlechtsverkehr den Motor des Fahrzeuges nicht starten.");
if(RepairAVehicle[vehicleid] == 1)return SCM(playerid,GRAU,"Dein Fahrzeug wird gerade repariert!");
if(RefillVehicle[vehicleid] == 1)return SCM(playerid,GRAU,"Du tankst gerade!");
if(IsAFahrrad(GetVehicleModel(vehicleid)))return SCM(playerid, GRAU, "Dieses Fahrrad hat keinen Motor!");
else if(MotorDown[vehicleid] != 0)return SCM(playerid,WEISS,"Das Fahrzeug ist kaputt. Rufe einen Abschlepper oder einen Kraftfahrzeugmechaniker.");
else if(vFahrzeug[vehicleid][Tank] <= 0.0 && !IsVehAZug(vehicleid))return SCM(playerid,GRAU,"Tank leer.");
if(IsPlayerAnAdmin(playerid,1))
{
if(IsValidVehicle(vehicleid))
{
if(Motor[vehicleid] == false)
{
Motor[vehicleid] = true;
KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
vFahrzeug[vehicleid][VehicleEngineTimer] = SetTimerEx("VehicleEngine",VehicleInfo[GetVehicleModel(vehicleid)-400][vEngineStartInSek]*1000,0,"ii",playerid,vehicleid);
format(string, sizeof(string), "%s betätigt die Zündung.", SpielerName(playerid));
SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
SendClientMessage(playerid, HELLBLAU, "Du betätigst die Zündung.");
}
else if(Motor[vehicleid] == true)
{
KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor[vehicleid] = false;
format(string, sizeof(string), "%s stellt den Motor ab.", SpielerName(playerid));
SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
SendClientMessage(playerid, HELLBLAU, "Du stellst den Motor ab.");
}
}
}
else if(isPlayerInJob(playerid,17))
{
if(IsValidVehicle(vehicleid))
{
if(Motor[vehicleid] == false)
{
Motor[vehicleid] = true;
KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
vFahrzeug[vehicleid][VehicleEngineTimer] = SetTimerEx("VehicleEngine",VehicleInfo[GetVehicleModel(vehicleid)-400][vEngineStartInSek]*1000,0,"ii",playerid,vehicleid);
format(string, sizeof(string), "%s betätigt die Zündung.", SpielerName(playerid));
SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
SendClientMessage(playerid, HELLBLAU, "Du betätigst die Zündung.");
}
else if(Motor[vehicleid] == true)
{
KillTimer(vFahrzeug[vehicleid][VehicleEngineTimer]);
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
Motor[vehicleid] = false;
format(string, sizeof(string), "%s stellt den Motor ab.", SpielerName(playerid));
SetPlayerChatBubble(playerid, string, MEFARBE, 25.0, 12000);
SendClientMessage(playerid, HELLBLAU, "Du stellst den Motor ab.");
}
}
}
else{return SCM(playerid,BUSFARBESYSTEM,"Du besitzt keine Schlüssel für dieses Fahrzeug.");}
}
#edit
du müsstest evt. das anpassen bei
getFreeCarID()
da du ja nur die
cInfo[i][id_x]
setzt wenn es nicht gesperrt ist, somit überschreibt sich das glaube anch meiner theorie erstell mal noch nen
"geladen"
cInfo[i][geladen]
das setzt du dann auf 1 bei
OnPlayerCarsLoad
also so dann
forward OnPlayerCarsLoad(playerid);
public OnPlayerCarsLoad(playerid)
{
for(new i=0; i<cache_num_rows(); i++)
{
new id = getFreeCarID();
cInfo[id][geladen]=1;
und bei getfreecarID
getFreeCarID()
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][geladen]==0)return i;
}
return 0;
}
und wenn das Fahrzeug sich ausloggt alsow eiss ja net wie du es hast musst du geladen wieder 0 setzen dann sollte eigentlich das erstmal wieder richtig gehen ![]()
Edit: zeig mal getfreecarid pls
na dann zeig mal dein load/save von cars evt. ist da was nicht ganz richtig
und print mal beim Code
cInfo[i][db_id], bzw je nach dem wei du es hast aus
printf("ID:%d | Besitzer:%d | Model:%d | Gesperrt:%d",cInfo[i][db_id],cInfo[i][besitzer],cInfo[i][model],cInfo[i][c_gespeert]);
Also alles klar funkt eig alles richtig pass auf...
printf("ID:%d | Besitzer:%d | Model:%d | Gesperrt:%d",i,cInfo[i][besitzer],cInfo[i][model],cInfo[i][c_gespeert]);
un die ergebnisse von dir
[19:12:46]
[19:12:46] ID:0 | Besitzer:3 | Model:496 | Gesperrt:0
[19:12:46] ID:1 | Besitzer:3 | Model:496 | Gesperrt:0
[19:12:46] ID:2 | Besitzer:3 | Model:496 | Gesperrt:1
stimmen so apss auf die ID ist nullw eil der print das i vond er schleife wieder gibt...
und dir wird nur ein fahrzeug im dialog gezeigt weil nur 1 Gesperrt ist...
somit Funktioniert doch alles oder wolltest du es anders haben?