Habe grade gesehen, dass ich den Parameter nicht geändert habe, sorry.
ocmd:makeadmin(playerid,params[])
{
if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
new pID,a_level,nachricht[145], name[MAX_PLAYER_NAME];
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
sInfo[pID][alevel]=a_level;
SpielerSpeichern(pID);
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %i",name,a_level);
SendClientMessage(pID,GRÜN,nachricht);
GetPlayerName(pID, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"Du hast den Rang von %s auf Rang %i geändert.",name,a_level);
SendClientMessage(playerid,GRÜN,nachricht);
return 1;
}
Dann geht's.
Beiträge von Jeffry
-
-
Probier es so:
d und i sind als Platzhalter völlig identisch.
-
Du musst den Name mit GetPlayerName auslesen:
ocmd:makeadmin(playerid,params[])
{
if(!IsAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig");
new pID,a_level,nachricht[145], name[MAX_PLAYER_NAME];
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid,GRAU,"INFO:/makeadmin [id] [rang]");
sInfo[pID][alevel]=a_level;
SpielerSpeichern(pID);
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"%s hat dein Adminrang geändert. Neuer Rang: %i",name,a_level);
SendClientMessage(pID,GRÜN,nachricht);
GetPlayerName(pID, name, MAX_PLAYER_NAME);
format(nachricht,sizeof(nachricht),"Du hast den Rang von %s auf Rang %i geändert.",name,a_level);
SendClientMessage(playerid,GRÜN,nachricht);
return 1;
} -
Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.
Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.Grundsätzlich: Ausprobieren.
-
In dem Log sind immer noch die alten Zeiten drin.
Folgende Schritte:
Server aus machen
Server Log löschen
Server starten
Server aus machen
Server starten
Log posten -
Poste bitte deine ocmd Include mal, ist das möglicherweise noch eine alte?
-
Nur um festzustellen ob der Code das verursacht, schreibe die Funktion so und teste es dann:
stock RespawnVehicle(playerid,vehicleid)
{
/*if(vehicleid==0)return 1;
if(vehicleid==INVALID_VEHICLE_ID)return 1;
new Float:tmpdis;
tmpdis=distanz[vehicleid];
if(playerid!=INVALID_PLAYER_ID&&playerid!=499)
{
RemovePlayerFromVehicle(playerid);
}
//format(string,sizeof(string),"Fahrzeug %i wurde respawnt.",vehicleid);
//owner(string);
if(sirene[vehicleid]!=0)
{
DestroyDynamicObject(sirene[vehicleid]);
sirene[vehicleid]=0;
sirenean[vehicleid]=0;
}
for(new i=1; i<MAX_AUTOS; i++)
{
if(PlayerAuto[i][id_x]==vehicleid)
{
if(PlayerAuto[i][a_x]!=0.0) // Zeile 47391
{
neonReset(vehicleid);
DestroyVehicle(PlayerAuto[i][id_x]);
PlayerAuto[i][id_x]=CreateVehicleEx(PlayerAuto[i][vmodel],PlayerAuto[i][a_x],PlayerAuto[i][a_y],PlayerAuto[i][a_z],PlayerAuto[i][a_a],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],0);
FahrzeugTunen(PlayerAuto[i][id_x]);
distanz[PlayerAuto[i][id_x]]=tmpdis;
//SetVehiclePos(vehicleid,PlayerAuto[i][a_x],PlayerAuto[i][a_y],PlayerAuto[i][a_z]);
//SetVehicleZAngle(vehicleid,PlayerAuto[i][a_a]);
}
else if(PlayerAuto[i][lastx]!=0.0)
{
neonReset(vehicleid);
DestroyVehicle(PlayerAuto[i][id_x]);
PlayerAuto[i][id_x]=CreateVehicleEx(PlayerAuto[i][vmodel],PlayerAuto[i][lastx],PlayerAuto[i][lasty],PlayerAuto[i][lastz],PlayerAuto[i][lastr],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],0);
FahrzeugTunen(PlayerAuto[i][id_x]);
distanz[PlayerAuto[i][id_x]]=tmpdis;
PlayerAuto[i][lastx]=0.0;
}
else
{
neonReset(vehicleid);
DestroyVehicle(PlayerAuto[i][id_x]);
PlayerAuto[i][id_x]=CreateVehicleEx(PlayerAuto[i][vmodel],PlayerAuto[i][v_xc],PlayerAuto[i][v_yc],PlayerAuto[i][v_zc],PlayerAuto[i][v_ac],PlayerAuto[i][vfarbe1],PlayerAuto[i][vfarbe2],0);
FahrzeugTunen(PlayerAuto[i][id_x]);
distanz[PlayerAuto[i][id_x]]=tmpdis;
//SetVehiclePos(vehicleid,PlayerAuto[i][v_xc],PlayerAuto[i][v_yc],PlayerAuto[i][v_zc]);
//SetVehicleZAngle(vehicleid,PlayerAuto[i][v_ac]);
}
return 1;
}
if(FraktAuto[i][id_x]==vehicleid)
{
if(FraktAuto[i][a_x]==0.0)
{
neonReset(vehicleid);
DestroyVehicle(FraktAuto[i][id_x]);
FraktAuto[i][id_x]=CreateVehicleEx(FraktAuto[i][vmodel],FraktAuto[i][v_xc],FraktAuto[i][v_yc],FraktAuto[i][v_zc],FraktAuto[i][v_ac],FraktAuto[i][vfarbe1],FraktAuto[i][vfarbe2],0);
FahrzeugTunen(FraktAuto[i][id_x]);
distanz[FraktAuto[i][id_x]]=tmpdis;
//SetVehiclePos(vehicleid,FraktAuto[i][v_xc],FraktAuto[i][v_yc],FraktAuto[i][v_zc]);
//SetVehicleZAngle(vehicleid,FraktAuto[i][v_ac]);
}
else
{
neonReset(vehicleid);
DestroyVehicle(FraktAuto[i][id_x]);
FraktAuto[i][id_x]=CreateVehicleEx(FraktAuto[i][vmodel],FraktAuto[i][a_x],FraktAuto[i][a_y],FraktAuto[i][a_z],FraktAuto[i][a_a],FraktAuto[i][vfarbe1],FraktAuto[i][vfarbe2],0);
FahrzeugTunen(FraktAuto[i][id_x]);
distanz[FraktAuto[i][id_x]]=tmpdis;
//SetVehiclePos(vehicleid,FraktAuto[i][a_x],FraktAuto[i][a_y],FraktAuto[i][a_z]);
//SetVehicleZAngle(vehicleid,FraktAuto[i][a_a]);
}
return 1;
}
}
SetVehicleToRespawn(vehicleid);*/
return 1;
}Ich weiß, dass das Fahrzeug dann nicht neu spawnt, aber das ist erst mal egal.
Wenn der Server wieder abstürzt, poste bitte den Log nochmal. -
Wie kann es sein, dass LoadGangfightZones zwei mal zur identischen Zeit aufgerufen wird? Hast du das in einer Schleife?
-
Du hättest die Größe anpassen müssen, das war ja nur geraten, bzw. ein Beispiel.
TextDrawTextSize(LoginRegisterClick, 283.00 + 150.00, 10.00);Dann geht's.
-
Objekt-ID
3458 -
Was steht im Log, wenn du die Tabelle so lässt und den Server dann nochmal startest?
Gibt dir der MySQL Log etwas aus? -
Nur um sicher zu gehen, dass es an dieser Zeile liegt.
Kommentiere mal diese Zeile aus:
if(sscanf(params, "ii", frakID, vehmodel))return SendClientMessage(playerid, Grau, "** Benutze: /addfcar [Fraktions-ID] [Vehicle-Model]");
zu:
//if(sscanf(params, "ii", frakID, vehmodel))return SendClientMessage(playerid, Grau, "** Benutze: /addfcar [Fraktions-ID] [Vehicle-Model]");
frakID = 1;
vehmodel = 400;Mir ist klar, dass der Befehl dann nicht mehr wirklich geht, aber ist die Warnung dann weg?
-
Der Pawn BB Code - Die richtige Anwendung
Bitte poste es richtig. -
Aktualisiere dein sscanf Plugin und schau ob der Fehler dann noch immer auftritt.
http://forum.sa-mp.com/showthread.php?t=570927Laut Y_Less gab es in einer alten Version einen Bug der diese Nachricht verursacht hat.
-
Hast du irgendwo noch einen anderen Code, der in dieser Tabelle schreibt? Laut Log ist nämlich alles korrekt.
-
Poste bitte die RespawnVehicle Funktion, und markiere welche Zeile die 47391 ist.
-
Wie sieht der Code jetzt aus, mit dem du das Textdraw erstellst?
-
Deshalb sollst du die ja hinzufügen.

-
Was meinst du?

-
Du musst die Größe das anklickbaren Bereiches mit TextDrawTextSize anpassen. https://wiki.sa-mp.com/wiki/TextDrawTextSize Der X Wert ist die Position PLUS die Größe des nach rechts anklickbaren Bereiches. Der Y Wert ist die geschätzte Höhe.
Angenommen du erstellst dein Textdraw bei X = 120 und Y = 90. Dann machst du den Text "Hallo Welt" da rein. Sagen wir, der Text ist so groß, dass er in etwa über ein Zehntel deines Bildschirmes geht (musst du abschätzen, oder mit einem Lineal abmessen), dann heißt das 640 durch 10, das wäre 64. Somit ist TextDrawTextSize-X = 120 + 64 = 184.
Nun misst, bzw. schätzt, du die Höhe des Textdraws, sagen wir mal du bekommst den Text in etwa 20 mal untereinander hin, bis dein Bildschirm von oben nach unten voll damit wäre. Heißt also: 480 durch 20, das gibt 24. Somit wäre TextDrawTextSize-Y = 24.Beispielsweise:
TextDrawTextSize(LoginRegisterClick, 283.00 + 40.00, 10.00);