listitem 0 == Linie;
zu:
sSpieler[playerid][BusLinie] = 0;
Alternativ auch einfach so:
if(dialogid == LINIE)
{
if(response == 0)
{
return 1;
}
else
{
sSpieler[playerid][BusLinie] = listitem;
}
return 1;
}
listitem 0 == Linie;
zu:
sSpieler[playerid][BusLinie] = 0;
Alternativ auch einfach so:
if(dialogid == LINIE)
{
if(response == 0)
{
return 1;
}
else
{
sSpieler[playerid][BusLinie] = listitem;
}
return 1;
}
Ok, das habe ich dann so noch nicht gesehen.
Hast du irgendwo im Code noch andere mysql_function_query's, wenn ja, funktionieren die?
Kannst du dein ShowLoginOrRegisterDialog bitte posten?
#define sBeruf "Busfahrer"
if(Spieler[playerid][sBeruf] == 1)
Das geht so nicht. Das sBeruf muss in einem enum stehen, sonst läuft das auf Fehler raus.
ocmd:mapport(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin.");
if(IsPlayerInAnyVehicle(playerid))
{
SetPlayerPosFindZ(playerid,clickPos[playerid][0],clickPos[playerid][1],clickPos[playerid][2]);
}
else
{
new vID = GetPlayerVehicleID(playerid);
SetVehiclePos(vID,clickPos[playerid][0],clickPos[playerid][1],clickPos[playerid][2]);
}
return 1;
}
Das kannst du dann so machen:
if(Spieler[playerid][IstSpielerInBeruf] == 1)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
{
DisablePlayerCheckpoint(playerid);
if(Spieler[playerid][Linie] == 1)
{
SendClientMessage(playerid,gelb,"Nächste Haltestelle: Stadthalle");
SetPlayerCheckPoint(playerid,1456.0122,-1735.9861,13.0879,5.0);
GivePlayerMoney(playerid,300);
}
else if(Spieler[playerid][Linie] == 2)
{
SendClientMessage(playerid,gelb,"Nächste Haltestelle: Los Santos Police Department (LSPD)");
SetPlayerCheckPoint(playerid,1533.0491,-1690.4596,13.0872.50);
GivePlayermoney(playerid,300);
}
}
}
Gegebenenfalls musst du noch, wenn du mehrere Checkpoints hast, die Nummer des Checkpoints innerhalb der Linie setzen und abfragen.
PS: Unterlasse bitte diese Vollzitate mit Code, das macht keinen Sinn.
Ich kriege leider diese errors
Kannst du bitte den Code posten?
@Jack_Bauer: Damit wäre es natürlich noch besser, sofern er das verwenden kann/darf/will.
Smoot:
Mit dieser Funktion:
MapAndreas_FindZ_For2DCoord
Und wie/wo wird dann
public datum()
aufgerufen?
Willkommen auf Breadfish!
So würde ich es dir empfehlen:
if(SpielerInfo[playerid][BusJob] == 1)
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 431)
{
DisablePlayerCheckpoint(playerid);
SetPlayerCheckPoint(/*Ausfüllen*/);
GivePlayerMoney(playerid,300);
}
}
Wo und wie startest du denn den Timer, der datum() aufruft? Der Code an sich ist nämlich korrekt, da brauchst du nichts ändern.
Ja, du machst dann eben SetVehiclePos anstatt SetPlayerPos.
Schreibe die Funktion so:
stock IsPlayerInArea(playerid, Float:MinX, Float:MinY, Float:MaxX, Float:MaxY)
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
printf("X: %f | Y: %f | Z: %f", X, Y, Z);
printf("MinX: %f | MinY: %f | MaxX: %f | MaxY: %f", MinX, MinY, MaxX, MaxY);
if(X >= MinX && X <= MaxX && Y >= MinY && Y <= MaxY)
{
printf("return 1");
return 1;
}
printf("return 0");
return 0;
}
Dann gebe den Befehl einmal in der Area ein und einmal außerhalb. Dann poste was im Server Log steht.
In phpMyAdmin kannst du das unter den Einstellungen der Tabelle zurück setzen.
Da du kein Callback angegeben hast, also kein Result auslesen willst aus dem Cache, überspringt das Plugin den Schritt, das Result zu speichern. Das ist korrekt so.
public Wetteraenderung()
{
new h, m, s;
gettime(h, m, s);
if(h >= 8 && h <= 20)
{
new wetter = random(15);
SendClientMessageToAll(Orange, "Der San Andreas Wetterdienst verkündet eine Wetteränderung über ganz San Andreas.");
SendClientMessageToAll(Orange, "Bitte achten Sie auf mögliche Gefahren und schalten Sie Ihr Licht gegebenfalls ein.");
SetWeather(wetter);
}
return 1;
}
Das wäre dann so.
In der Zeit von 21 Uhr bis 8 Uhr Morgens soll der Server die Uhrzeit vom PC bzw vom Server nehmen.
Was meinst du damit?
Soll das Public nur zwischen 8 und 21 Uhr ausgeführt werden, und sonst nicht?
Poste bitte mal dein ganzes OnGameModeInit, oder setze das mysql_tquery (das hattest du doch nicht?) mal ganz nach oben in das Callback.
Du musst es mehrmals formatieren.
new query[800];
mysql_format(Handle, query, sizeof query, "UPDATE `user` SET `Geld`='%i',`Cent`='%i',`Level`='%i',");
mysql_format(Handle, query, sizeof query, "%s`Adminlevel`='%i',`Neuling`='%i',`Geschlecht`='%i',", query /*Hier noch die SpielerInfo's*/);
mysql_format(Handle, query, sizeof query, "%s`altw`='%i',`Story`='%i',`Skin`='%i',`Leben`='%.0f',", query /*Hier noch die SpielerInfo's*/);
mysql_format(Handle, query, sizeof query, "%s`Russi`='%.0f',`Fraktion`='%i',`Rang`='%i',`Gestorben`='%i',", query /*Hier noch die SpielerInfo's*/);
mysql_format(Handle, query, sizeof query, "%s`Perso`='%d',`Vorname`='%s',`Nachname`='%s', `Job`='%d', `PayDay`='%d',", query /*Hier noch die SpielerInfo's*/);
mysql_format(Handle, query, sizeof query, "%s`XP`='%d', `XPmax`='%d',`Spawn`='%d',`PMoney`='%d', `QuitjobTime`='%d',", query /*Hier noch die SpielerInfo's*/);
mysql_format(Handle, query, sizeof query, "%s`FJobSkill`='%d',`FSkillvortchrit`='%d',`PJobSkill`='%d',", query /*Hier noch die SpielerInfo's*/);
mysql_format(Handle, query, sizeof query, "%s`PSkillvortchrit`='%d',`Datum`='%s',`Uhrzeit`='%s',`Morde`='%d',`Spielzeit`='%d' WHERE `ID`='%i'", query /*Hier noch die SpielerInfo's*/);
Hinter dem query in den Parametern musst du noch die entsprechenden SpielerInfo's einfügen.
ist das normal das man erstmal unter dem boden ist also fliegt? Kann man das umgehen?
Du kannst einen kurzen Timer setzen (100ms) der den gleichen Code aus dem Callback nochmal ausführt (gegebenenfalls mit SetPlayerPosFindZ).
Wenn man weit von der Position weg ist klappt es nicht immer richtig, dann muss der Code nochmal ausgeführt werden, dann klappt es.
Das geht nicht.