alles klar dann mach das so
if(!isPlayerInJob(playerid,0))
Beiträge von Mogly1
-
-
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 beiOnPlayerCarsLoad
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:1stimmen 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? -
evt so?
format(string,sizeof(string),"%s\n %d ",string,cInfo[i][model]);
-
Ja da du hier ein return hast
return SendClientMessage(playerid,COLOR_RED,"Keine gefunden");
das return beendet somit die ganzeschleife und was darutner kommt
somit versuchs mal damit
ocmd:freikaufen(playerid)
{
if(PlayerInfo[playerid][pLoggedIn]==false)return 1;
new string[128],fahrzeugevorhanden=0;
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][besitzer] == PlayerInfo[playerid][p_id])
{
if(cInfo[i][c_gespeert] == 1)
{
format(string,sizeof(string),"%s %d \n",string,cInfo[i][model]);
fahrzeugevorhanden=1;
}
}
}
if( fahrzeugevorhanden==1)
{
return ShowPlayerDialog(playerid,DIALOG_CARFREIKAUFEN_AUSWAHL,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Auswählen","Abbruch");
}
else
{
return SendClientMessage(playerid,COLOR_RED,"Keine Fahrzeuge in der Verwahrstelle");
}
return 1;
}und das
else
{
return SendClientMessage(playerid,COLOR_RED,"Kein Besitzer");
}
lassen wir auch aus der Schleife weil das genau das gleiche wie mit dem c_gesperrt ist
Warum?
also es ist relativ egal ob wir nicht der besitzer vom fahrzeug sind, denn es passiert auch nichts mit dem wagenHoffe du verstehst es mfg. Mogly1
-
Okay schuldige habe ich wohl schlecht erklärt...
for(new i=0;i<sizeof(cInfo);i++)
{
new string[500];
if(cInfo[i][OWer]==playerid)//anpasssen aufbesitzer also ob der wagen dem gehört
{
if(cInfo[i][c_gesperrt] == 1)
{
format(string,sizeof(string)," %s %d \n", string, cInfo[i][Hier]);
}
}
}
ShowPlayerDialog(playerid,Dialog,DIALOG_STYLE_LIST,"Verwahrstelle",string,"Weiter","Abbrechen");so Pass auf er geht in der for schleife alles deine wagens die abgeschleppt sind druch und setzt den string
durch das \n wird nach jedem string gleich ne neue Zeile genommen.
heisst bei zwei wagen kommt dann beim string beim nächsten durch gang das neue dazu. -
nur so die frage wie fragst du denn ab obe s in der verwahrstelle ist?