Schalte bitte mal den MySQL Debug Modus an und poste was im Log steht wenn du den Server verlässt bzw dich einloggst. Wie du das machst siehst du hier: Tipps: Scripting-Probleme richtig erklären (Kapitel 1.4)
Beiträge von Jeffry
-
-
@m4a_X: Du verwendest aber in beiden Callbacks ebenfalls playerid
Das solltest du ändern.Das erste Callback bringt dir in dem Fall nichts, weil nur der eingegebene Befehl übergeben wird, aber nicht von wem.
Im zweiten Callback solltest du das return beim Kick raus machen, da sonst nur der erste Spieler mit der IP gekickt wird. Merkt das derjenige, dann loggt er sich mit zwei PCs ein und meldet sich mit der höheren ID an, dann fliegt die kleiner ID raus, und er ist RCON.
Außerdem ist natürlich zu beachten, dass man sich auch über extern als RCON anmelden kann, da bringt kein Kick etwas (daher hat das Callback ja auch keinen playerid Parameter, wobei man (Kalcor) das natürlich hätte besser lösen können, aber seis drum).
-
Der Rangname String ist nur 24 Zeichen groß, somit kann er nie mehr als 24 Zeichen lang sein. Im Endeffekt 23, wegen dem EOS Char, daher wird die Abfrage nie wahr. Erhöhe die Größe von Rangname, auch in sscanf.
-
Dann hast du nicht alle Dateien korrekt eingefügt. Prüfe das.
-
Matthew_Mahone:
Erstelle bitte einen neuen Thread, poste den Code dort und einen Screenshot von den Nachrichten dazu. -
Nein, beim Takeleader das hier hinzufügen:
sInfo[pID][skin] = sInfo[pID][oldSkin];Außerdem:
SetPlayerSkin(pID,sInfo[playerid][oldSkin]);
zu:
SetPlayerSkin(pID,sInfo[pID][oldSkin]); -
Es muss vor die SetPlayerSkin's hin.
Am besten hier nach:
sInfo[pID][rang] = 6;
//hier -
Dann musst du mit GetPlayerSkin den Skin speichern.
sInfo[pID][oldSkin] = GetPlayerSkin(pID); -
if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID,(sInfo[playerid][skin]=187)); }
Oder einfach:
if (sInfo[pID][fraktion] == 5) { sInfo[playerid][skin] = 187; }Und nach den ganzen Abfragen:
SetPlayerSkin(pID,sInfo[playerid][skin]); -
Ich habe es in dem Code von mir bereits ausgebessert.
if(isPlayerInFrakt(pID,fID))return SendClientMessage(playerid,COLOR_DRED, "Der Spieler ist schon in dieser Fraktion!"); -
Zitat von http://forum.sa-mp.com/showthread.php?t=275492
Also there are 3 different modes now:
MAP_ANDREAS_MODE_FULL: Original mode, uses about 70MB RAM, requires SAfull.hmap in the scriptfiles directory, 1x1 squares
MAP_ANDREAS_MODE_MINIMAL: Uses only 3x3 squares, and so it just needs ~9MB RAM, but is less precise. Requires SAmin.hmap.
MAP_ANDREAS_MODE_NOBUFFER: Reads the data directly from the file without buffering, and so eats no additional RAM, but therefore it is WAY slower. Requires SAfull.hmap1) Beste Variante
2) Minimale Variante, falls du RAM Beschränkungen hast
3) Schlecht, da CPU belastet wird -
So willst du es, oder?
ocmd:makeleader(playerid, params[])
{
if(!isAdmin(playerid, 4))return SendClientMessage(playerid,COLOR_DRED, "Dein Adminrang ist zu niedrig.");
new pID, fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,COLOR_GREY, "INFO: {FF9600}/makeleader {B3B3B3}[playerid] [fraktid]");
if(isPlayerInFrakt(pID,fID))return SendClientMessage(playerid,COLOR_DRED, "Der Spieler ist schon in dieser Fraktion!");
if(fID >= sizeof(fInfo))return SendClientMessage(playerid,COLOR_DRED, "Fraktion existiert nicht.");
sInfo[pID][fraktion] = fID;
sInfo[pID][rang] = 6;
if(sInfo[pID][fraktion] == 1) { SetPlayerSkin(pID, 280); }
else if (sInfo[pID][fraktion] == 2) { SetPlayerSkin(pID, 71); }
else if (sInfo[pID][fraktion] == 3) { SetPlayerSkin(pID, 279); }
else if (sInfo[pID][fraktion] == 4) { SetPlayerSkin(pID, 276); }
else if (sInfo[pID][fraktion] == 5) { SetPlayerSkin(pID, 187); }
else if (sInfo[pID][fraktion] == 6) { SetPlayerSkin(pID, 115); }
else if (sInfo[pID][fraktion] == 7) { SetPlayerSkin(pID, 105); }
else if (sInfo[pID][fraktion] == 8) { SetPlayerSkin(pID, 103); }
else if (sInfo[pID][fraktion] == 9) { SetPlayerSkin(pID, 120); }
else if (sInfo[pID][fraktion] == 10) { SetPlayerSkin(pID, 113); }
else if (sInfo[pID][fraktion] == 11) { SetPlayerSkin(pID, 110); }
new string[145];
SpawnPlayer(pID);
savePlayer(pID);
format(string,sizeof(string),"Admin %s hat dich zum Leader der Fraktion %s gemacht",SpielerName(playerid), fInfo[fID][f_name]);
SendClientMessage(pID, COLOR_DGREEN, string);
format(string,sizeof(string),"Du hast %s zum Leader der Fraktion %s gemacht.",SpielerName(pID), fInfo[fID][f_name]);
SendClientMessage(playerid, COLOR_DGREEN,string);
return 1;
}EDIT:
@HydranT_: Danke für den Hinweis!
-
Was heißt du kannst ihn nicht mehr machen? Was passiert wenn du ihn eingibst?
-
Da mysql_log auf LOG_ALL (alle Vorgänge protokollieren) gestellt ist, wird dir alles was das Plugin macht protokolliert.
Daher ist es in Ordnung, dass die Datei erstellt wird. Solange dort nur [DEBUG]-Nachrichten sind ist alles in Ordnung. -
Im R39 geht das nicht mehr mit mysql_debug sondern da heißt die Funktion:
mysql_log(LOG_ALL); -
Hast du einen Timer oder sowas der den Checkpoint wieder entfernt? Normalerweise verschwinden die Checkpoints ja nicht ohne Grund.
-
Ja, aber das ist doch so keine Funktion, das sind nur ein paar Zeilen Code. Vom Prinzip her werden entweder alle davon oder keine davon aufgerufen, das kann man nicht wirklich sinnvoll debuggen, den Print haben wir da ja schon. Wenn der kommt, dann müsste es auch alles klappen, oder?
Poste das bitte mal komplett. -
Nutze https://wiki.sa-mp.com/wiki/SetSpawnInfo vor TogglePlayerSpectating.
Deinen anderen Thread schaue ich mir morgen an, jetzt ist schlafen angesagt.

-
Jo, das glaube ich dir, dass das keine Sache von 5 Minuten ist.
Ich hab jetzt das Limit ein wenig gelockert
Es scheint, zumindest in den paar Minuten in denen ich es getestet habe, besser zu sein. Es fehlen nur noch ein paar Buttons, die Smileys sind komplett da.
Quelle: Eigener ScreenshotDas ist jetzt Windows 10 + Internet Explorer.
Kommt allerdings nur vor, wenn ich auf Antworten drücke und dann F5 drücke (manchmal auch erst nach dem zweiten mal).
Aber ich beobachte es auf jeden Fall mal weiter.Danke auf jeden Fall, dass ihr da dran seit.
-
if(dialogid== DIALOG_Autosystem)
{
if(response)
{
if(listitem==0)
{
//motorfunktion
if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) return SendClientMessage(playerid,blau,"Du bist nicht der Fahrer eines Fahrzeuges");
new vID=GetPlayerVehicleID(playerid), motor, licht, alarm, tueren, bonnet, boot, objective;
//Motor an/ausschalten:
GetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective);
if(motor==1) motor = 0;
else motor = 1;
SetVehicleParamsEx(vID,motor,licht,alarm,tueren,bonnet,boot,objective);
}
}
return 1;
}