Lass es bitte mal so laufen und poste dann was im Log steht:
public CreateTunedCar(playerid, CarKey1)
{
printf("ingarage=%i",Carlist[playerid][CarKey1][ingarage]);
if(IsPlayerConnected(playerid) && Carlist[playerid][CarKey1][Typ] != -1)
{
printf("ingarage=%i",Carlist[playerid][CarKey1][ingarage]);
if(Carlist[playerid][CarKey1][ingarage] == 1) return 1;
//new carid = CreateVehicle(Kaufliste[Carlist[playerid][CarKey1][Typ]][Modelid],Carlist[playerid][CarKey1][SpawnSaveX],Carlist[playerid][CarKey1][SpawnSaveY],Carlist[playerid][CarKey1][SpawnSaveZ],Carlist[playerid][CarKey1][SpawnSaveRot],-1,-1,-1);
new carid = CreateVehicle(Kaufliste[Carlist[playerid][CarKey1][Typ]][Modelid],Carlist[playerid][CarKey1][pos_x],Carlist[playerid][CarKey1][pos_y],Carlist[playerid][CarKey1][pos_z],Carlist[playerid][CarKey1][z_angle],-1,-1,-1);
printf("carid = %d", carid);
new string[50];
format(string, sizeof(string), "{FFFF00}E-RP-{21DD00}%d", carid);
printf("string=%s", string);
SetVehicleNumberPlate(carid,string);
Gas[carid] = Carlist[playerid][CarKey1][TankVolumen];
printf("Gas: %d", Gas[carid]);
Locked[carid] = Carlist[playerid][CarKey1][Lock];
printf("Locked: %d", Locked[carid]);
if(Carlist[playerid][CarKey1][Lock] == 1)
{
ForAllPlayers(i)
{
SetVehicleParamsForPlayer(carid,i,0,1);
}
}
printf("Vor components");
if(Carlist[playerid][CarKey1][mod1]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod1]); }
if(Carlist[playerid][CarKey1][mod2]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod2]); }
if(Carlist[playerid][CarKey1][mod3]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod3]); }
if(Carlist[playerid][CarKey1][mod4]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod4]); }
if(Carlist[playerid][CarKey1][mod5]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod5]); }
if(Carlist[playerid][CarKey1][mod6]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod6]); }
if(Carlist[playerid][CarKey1][mod7]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod7]); }
if(Carlist[playerid][CarKey1][mod8]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod8]); }
if(Carlist[playerid][CarKey1][mod9]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod9]); }
if(Carlist[playerid][CarKey1][mod10]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod10]); }
if(Carlist[playerid][CarKey1][mod11]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod11]); }
if(Carlist[playerid][CarKey1][mod12]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod12]); }
if(Carlist[playerid][CarKey1][mod13]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod13]); }
if(Carlist[playerid][CarKey1][mod14]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod14]); }
if(Carlist[playerid][CarKey1][mod15]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod15]); }
if(Carlist[playerid][CarKey1][mod16]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod16]); }
if(Carlist[playerid][CarKey1][mod17]!=-1) { AddVehicleComponent(carid,Carlist[playerid][CarKey1][mod17]); }
if(Carlist[playerid][CarKey1][Paintjob]!=-1) { ChangeVehiclePaintjob(carid,Carlist[playerid][CarKey1][Paintjob]); }
if(Carlist[playerid][CarKey1][Farbe1]!=-1) { ChangeVehicleColor(carid,Carlist[playerid][CarKey1][Farbe1],Carlist[playerid][CarKey1][Farbe2]); }
printf("Nach components");
for(new i; i<MaxVeh[playerid]; i++)
{
printf("i:%d", i);
if(Carlist[playerid][i][Neon]!=0)
{
printf("Neon: %d", Carlist[playerid][i][NeonType]);
switch(Carlist[playerid][i][NeonType])
{
case 0:AttachObjectToVehicle(CreateObject(18647,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18647,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 1:AttachObjectToVehicle(CreateObject(18648,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18648,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 2:AttachObjectToVehicle(CreateObject(18649,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18649,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 3:AttachObjectToVehicle(CreateObject(18650,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18650,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 4:AttachObjectToVehicle(CreateObject(18651,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18651,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
case 5:AttachObjectToVehicle(CreateObject(18652,0,0,0,0,0,0), GetPlayerVehicleID(playerid), -0.8, 0.0, -0.70, 0.0, 0.0, 0.0), AttachObjectToVehicle(CreateObject(18652,0,0,0,0,0,0), GetPlayerVehicleID(playerid), 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
}
}
}
printf("returning: %d", carid);
return carid;
}
printf("returning: error -1");
return -1;
}
Beiträge von Jeffry
-
-
Ändere mal
if(sscanf(params,"s[25]",cmd))
zu:
if(sscanf(params,"s",cmd))Dann sollte es gehen.
-
Ok, das ist doch schonmal gut.
Er fliegt hier aus dem Code:
Carlist[playerid][CarKey[playerid]][Carid] = CreateTunedCar(playerid, CarKey[playerid]);Poste bitte die CreateTunedCar Funktion.
Wenn du kannst, debugge diese auch gleich (auch so prints zwischen jede Zeile) und poste den Log dazu. -
Hast du es mit der manuellen Methode versucht?
Wenn nein, mach das mal, vielleicht bringt es was. -
Wenn ich das Prinzip richtig verstanden habe:
for(new w = sInfo[pID][wantedl]; w < (sInfo[pID][wantedl]-wanted); w++)
zu:
for(new w = sInfo[pID][wantedl]-1; w >= (sInfo[pID][wantedl]-wanted); w--) -
Poste bitte nochmal deinen aktuellen Code, ich weiß ja nicht was du geändert hast.
-
wantedlevel(pID)
das hier ist falsch, du hast das schon als Variable, da gehen keine Parameter.Was willst du denn da anzeigen lassen?
-
Poste bitte den Code des Befehls.
-
Schreibe es mal so:
if(motor[vehicleid] == false)
{
motor[vehicleid] = true;
SetTimerEx("MotorStarten",7000,0,"i",playerid);
SetPlayerChatBubble(playerid, string, GRUEN, 30.0, 2000);
}
else
{
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
motor[vehicleid] = false;
}Motor muss so deklariert sein:
new bool:motor[MAX_VEHICLES]; -
Die Funktion ist nicht richtig. So ist es richtig:
stock IsVehicleInUse(vehicleid)
{
for(new i; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == vehicleid)
{
return true;
}
}
return false;
}if(strcmp(cmdtext,"/ramfa",true)==0)
{
if(GetPlayerLeader(playerid))
{
if(gettime() < LastRespawned[GetPlayerFaction(playerid)-1]) return SendClientMessage(playerid,FACTION_COL_GREY,"Du kannst deine Fahrzeuge nur alle '5' Minuten respawnen.");
LastRespawned[GetPlayerFaction(playerid)-1] = gettime()+(60*5);
for(new fc;fc<sizeof(FactionCars);fc++)
{
if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611) //Wenn das Fahrzeug existiert
{
if(FactionCars[fc][fFrakid] == GetPlayerFaction(playerid)) //Wenn es der Fraktion angehört, in der der Spieler ist
{
if(!IsVehicleInUse(FactionCars[fc][fCarid])) //Wenn niemand drin ist
{
DestroyAndCreateFactionCar(fc); //Oder FactionCars[fc][fCarid] ?
}
}
}
}
SendClientMessage(playerid,FACTION_COL_YELLOW,"Du hast deine Fraktionsfahrzeuge erfolgreich respawnt.");
}
else SendClientMessage(playerid,FACTION_COL_GREY,"Du bist nicht berechtigt diesen Befehl anzuwenden.");
return 1;
} -
@[LnD]JustMe.77: Die Koordinaten sind richtig entnommen.
Yup, poste bitte den Server Log. -
Schreibe das so:
stock FreeFrakCheck()
{
for(new i;i<MAX_FRACTION_CARS;i++)
{
if(FractionCars[i][fVehid] >= 400 && FractionCars[i][fVehid] <= 611) continue;
return i;
}
return -1;
}Warum?
Weil mysql_function_query ein callback aufrufen muss, um auf das Result zugreifen zu können. Deshalb hast du immer 0 zurück bekommen, da kein Datensatz vorhanden war.Beim erstellen des Fahrzeugs solltest du dann noch abfragen:
if(fc == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Alle Plätze belegt."); -
Hier fehlt bei b_cokasse der Wert.
format(query,350,"UPDATE biz SET b_besitzer='%s',b_inteilhaber='%s',b_kasse='%i',b_cokasse,b_preis='%i',b_level='%i' WHERE id='%i'",
Zu
format(query,350,"UPDATE biz SET b_besitzer='%s',b_inteilhaber='%s',b_kasse='%i',b_cokasse='%i',b_preis='%i',b_level='%i' WHERE id='%i'", -
Wie sieht denn dein Code jetzt aus? Poste bitte den aktuellen Stand, damit wir nicht wieder den Fehler aus Versehen einbauen, oder eine Änderung überschreiben.
Zwecks des Logins:
Da musst du dort wo der DELETE Teil ist auch noch den Login Teil hinschreiben, damit der da auch aufgerufen wird.Zwecks des Dialogs:
Was sagt der Log? Wird da richtig ausgelesen? -
Doch. Das steht ja jetzt hier, im else Teil von "if(rows)": OnQueryFinish
Deshalb solltest du das doch dort einfügen.Es wird erst geprüft ob der Spieler gebannt ist (if rows). Wenn nein (else), dann darf er sich einloggen bzw. registrieren.
-
Wie sieht der Befehl /buycar jetzt aus?
Was steht im server_log.txt wenn du den Befehl eingibst (es sind ja, zumindest in dem Post oben, bereits Debugmeldungen vorhanden)? -
Ja, das passt doch.
Der jetzige Timestamp + 120 Sekunden = diese Zahl. http://www.unixtimestamp.de/OnPlayerConnect zu:
public OnPlayerConnect(playerid)
{
CheckPlayerBanned(playerid);
return 1;
}Sonst bringt es natürlich nichts.
-
Du kannst es so schreiben:
COMMAND:weiter(playerid,params[])
{
SetPVarInt(playerid, "weiterStatus",GetPVarInt(playerid, "weiterStatus")+1);
if(GetPVarInt(playerid, "weiterStatus") > 4 || GetPVarInt(playerid, "weiterStatus") < 1)
{
SetPVarInt(playerid, "weiterStatus", 1);
}
if(PlayerInfo[playerid][pInvited] == 1)
{
if(isPlayerInFrakt(playerid,1))
{
switch(GetPVarInt(playerid, "weiterStatus"))
{
case 1: SetPlayerSkin(playerid,265);
case 2: SetPlayerSkin(playerid,266);
case 3: SetPlayerSkin(playerid,267);
case 4: SetPlayerSkin(playerid,284);
}
}
if(isPlayerInFrakt(playerid,2))
{
switch(GetPVarInt(playerid, "weiterStatus"))
{
case 1: SetPlayerSkin(playerid,280);
case 2: SetPlayerSkin(playerid,281);
case 3: SetPlayerSkin(playerid,282);
case 4: SetPlayerSkin(playerid,284);
}
}
if(isPlayerInFrakt(playerid,3))
{
switch(GetPVarInt(playerid, "weiterStatus"))
{
case 1: SetPlayerSkin(playerid,287);
case 2: SetPlayerSkin(playerid,179);
case 3: SetPlayerSkin(playerid,121);
case 4: SetPlayerSkin(playerid,284);
}
}
}
return 1;
} -
Kannst du den Code bitte richtig posten?
Nutze dafür den Reiter "Quellcode", nicht den Reiter "Editor" (über Schriftart).Und erkläre dein Problem bitte etwas genauer.
-
Kannst du bitte nicht immer meinen ganzen Post samt allen Codes zitieren? Das macht den Thread ziemlich unübersichtlich.
Was heißt der AH_Typ wird nicht richtig eingetragen? Was sollte drin stehen, und was steht drin?
Was sagt der MySQL Log?