ocmd:ucall(playerid,params[])
{
if(!isAdmin(playerid,4))return SendClientMessage(playerid, ROT, "Dein Adminlevel reicht nicht aus.");
for(new i=0; i<MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(i,playerid,0);
return 1;
}
Beiträge von Jeffry
-
-
Also an dem Code liegt es dann nicht, weil ich kann ihn ohne Probleme kompilieren.
Ein Absturz des Compilers kann von sehr vielen Dingen verursacht werden. Meistens aber durch einen nicht abgeschlossenen String (" aber kein " mehr), oder eine fehlende geschwungene Klammer. Das muss aber nicht immer der Fall sein.Ich rate dir, jeden Tag ein Backup deines Codes zu machen, dann hast du zur Not immer den Stand vom Vortag, falls sowas passiert, und du nicht mehr weißt, was du gemacht hast.
-
Lade dir das nativechecker Plugin herunter und füge es in deinen Server ein. Dann poste was im Server Log ausgegeben wird.
Du hast wahrscheinlich eine falsche Version eines Plugins, oder eins vergessen.http://forum.sa-mp.com/showthread.php?t=249226
Das hier herunterladen und in den Server einfügen. Dann den "server_log.txt" öffnen und posten was da drin steht, wenn du den Server startest.Achte darauf, dass nativechecker in der server.cfg bei plugins an letzter Stelle steht.
-
-
Was hast du daran geändert :o?
meinst du das das / weg ist das habe ich hin gemacht. Trd geht das nich.
Nein, schau mal, bei dir stand "scrcmp" und das muss "strcmp" heißen.Ja, der Slash fehlt auch, aber das verursacht keinen Absturz.
-
if(scrcmp(cmd, "Baseball", true) == 0)
zu:
if(strcmp(cmd, "/Baseball", true) == 0)Möglicherweise behebt das das Problem schon.
-
Komisch.
Egal, da sind noch 3(4) Funktionen die man dafür braucht: IsADtCar, GetDtCarOwner, GetDtCarOwnerSlot (und OnPlayerCarUpdate, ja nach dem was das macht...). Poste die bitte noch dazu. -
Kannst du bitte beide deine Codes in http://www.pastebin.com einfügen? So kann das leider niemand lesen.
Welchen Editor benutzt du zum Schreiben deiner Codes? -
-
Trotz dass das Thema schon erledigt ist möchte ich noch kurz auf die zwei Ansätze eingehen.
Ich habe mir den Link von Pille: mit dem Code von Y_Less angeschaut und getestet. Das ganze ist, wie Y_less dort schon geschrieben hat ziemlich ungenau und auch nicht direkt das was Tom braucht. In dem Code geht es eher darum, die Mausbewegung zu berechnen und, zum Beispiel, ein Textdraw anhand der Mausbewegung zu bewegen. Das ist ein sehr interessanter Ansatz, daraus kann man bestimmt mal was machen, allerdings ist es hierfür nicht passend.
Wenn man sich das ganze aber als eine Art Menü vorstellt, bei dem man den Spieler nicht sieht, (Bildschirm zum Beispiel schwarz) dann könnte man daraus möglicherweise mit viel Aufwand eine Art anklickbare Textdraws System machen, welches wesentlich flexibler ist, als das eingebaute. Nur so ein Gedankengang... aber der Code gefällt mir. Vielleicht ist ja mal jemandem langweilig und er/sie macht was draus.Was SylpheedW: gepostet hat ist einfach genial. Auf die Idee muss man erst mal kommen. Zwei Zeilen und es macht genau das was es soll. Ich sollte mich mal mehr mit den neuen Funktionen beschäftigen, mit denen lässt sich bestimmt so einiges machen. Danke fürs teilen!
-
Ja, allerdings musst du bei der Höhe der Box aufpassen, denn das kannst du nur während der Auswahl des Textdraws testen (die 13.0). Das ist die Zeilenhöhe die du angibst, die siehst du aber leider nicht, auch nicht mit der Box.
Ich habe dir extra das "PlayerTextDrawUseBox" im Code gelassen, wenn du die Box sehen willst, setze das einfach auf 1. Wenn du dann die 13.0 zum Beispiel zu 20.0 änderst, wird der Text unten schon weit vor der unteren Grenze beim "hovern" markiert, die Box geht also noch 7 Punkte weiter (unsichtbar) nach unten. Da muss man eben etwas rumprobieren.Die LetterSize entspricht nicht der Höhe der Box, auch sowas wo man sich fragt wer denn auf die Idee gekommen ist.
Den Rest kannst du aber genau so mit der Box anpassen.
Also generell: Textdraw mit Box im Editor erstellen, die TextSize Y schätzen und später genau anpassen (die Box ändert sich hierbei nicht, sondern nur der auswählbare Bereich), dann die Box wieder entfernen.Ich hoffe das hilft dir, ist etwas blöd was zu erklären was man nicht sieht.
-
Poste bitte den "if(dialogid==DIALOG_ALTER)" Teil so wie du ihn jetzt hast.
Vielleicht als Anmerkung für die Zukunft: Wenn ein Code nicht klappt nachdem du ihn geändert hast, poste immer gleich wieder den Code dazu, so wie du ihn jetzt nach der Änderung hast. Das beschleunigt die Fehlerfindung. -
Oben unter die Includes:
new bool:aDuty[MAX_PLAYERS];Dein Befehl:
ocmd:aduty(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid, ROT, "Dein Adminlevel reicht nicht aus.");
new string[145], a_level, Float:pHP;
a_level = sInfo[playerid][alevel];
format(string,sizeof(string),"%s hat sich als %s angemeldet.",getPlayerName(playerid),getRankName(a_level));
SendClientMessageToAll(ROT,string);
GetPlayerHealth(playerid, pHP);
SetPlayerColor(playerid,ROT);
aDuty[playerid] = true;
if(pHP <= 100)
{
SetPlayerHealth(playerid,100);
SetPlayerColor(playerid,ROT);
}
return 1;
}OnPlayerUpdate:
if(aDuty[playerid])
{
new Float:pHP;
GetPlayerHealth(playerid, pHP);
if(pHP <= 100.0) SetPlayerHealth(playerid,100.0);
}Beim beenden von aduty und bei OnPlayerDisconnect:
aDuty[playerid] = false; -
Möglicherweise liegt es an der IsValidDate Funktion, alles andere passt eigentlich.
Ändere:
format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
zu:
format(tmp, sizeof(tmp), "%02d.%02d.%d", strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]));
printf("IsValidDate(''%s'') -> %d", tmp, IsValidDate(tmp));Was steht dann im Log?
Falls da 0 steht, dann mach die Zeilen 19-23 (Code oben) weg und teste es dann. -
Jeffry Man wird nicht automatisch geheilt.
Was heißt automatisch? Wenn du den Befehl eingibst, oder wenn du irgendwann nachdem du den Befehl eingegeben hast Leben verlierst?Du könntest dir auch einfach endlos Leben geben:
SetPlayerHealth(playerid,999999.0); -
Was?
Ich hab dich doch nicht versucht blöd anzumachen...
Und ich habe auch nie irgendwo behauptet, dass alles was ich mache richtig ist. Wer kann das von sich behaupten? Wenn etwas nicht klappt, dann ist es eben so, warum sollte ich dich dafür verantwortlich machen? Ich stehe zu meinen Fehlern, wenn ich einen gemacht habe.Ich hab schlichtweg gesagt, dass du den ganzen Code posten sollst, weil ich denke, dass du den Fehler (den du in dem Schnipsel ja schon drei mal gemacht hast) durchweg durch das ganze Report System gemacht hast. Das ist doch nicht schlimm, dafür helfen wir ja. Ich verstehe gerade nicht wo dein Problem ist.
Nur um dir weiter helfen zu können brauche ich, oder brauchen wir, mehr Code, da ich selbst aus diesem Schnipsel nicht mehr herausbekomme. Und da ich dein System nicht geschrieben habe, weiß ich auch nicht was es macht, daher wäre es angebracht, wenn du ein paar Informationen dazugibst, zum Beispiel was du eingegeben hast, bzw, was eigentlich an den Stellen im print stehen sollte.
Es tut mir Leid falls du dich angegriffen gefühlt hast, das ist keineswegs so gemeint. Zu sagen, dass sich ein Fehler durch den ganzen Code zieht ist meiner Meinung nach keine blöde Anmache, sondern nur eine Vermutung die man prüfen kann bzw. soll.
Wie dem auch sei, ich helfe dir gerne weiter, dafür brauche ich aber mehr Informationen.
EDIT:
Problem wurde behoben.
Der Fehler war, wie ich gesagt habe, dass überall die Arraygröße noch dazu angegeben worden ist. -
ocmd:aduty(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid, ROT, "Dein Adminlevel reicht nicht aus.");
new string[145], a_level, Float:pHP;
a_level = sInfo[playerid][alevel];
format(string,sizeof(string),"%s hat sich als %s angemeldet.",getPlayerName(playerid),getRankName(a_level));
SendClientMessageToAll(ROT,string);
GetPlayerHealth(playerid, pHP);
SetPlayerColor(playerid,ROT);
if(pHP <= 100.0)
{
SetPlayerHealth(playerid,100.0);
SetPlayerColor(playerid,ROT);
}
return 1;
}Ich denke du erkennst die Unterschiede selbst.
-
Schick mir mal kurz in PN deine TeamViewer Daten.
EDIT:
Er hat die split Funktion nicht eingefügt gehabt, trotz dass ich es drei mal gesagt habe. -
Ich muss dich korrigieren, Jeffry, es ist möglich (wenn auch kompliziert).
Danke! Das so zu machen klingt interessant, wusste ich gar nicht. Man lernt nie aus.Ich werde das bei Gelegenheit mal selbst ausprobieren, wer weiß was sich damit noch alles anstellen lässt, wenn das klappt.
Danke für den Hinweis und den Link. -
Hängt sich der Server denn immer noch auf?
Kannst du mal sagen, was du überhaupt eingegeben hast?Poste mal den ganzen Code der dazugehört, du hast das bestimmt überall falsch gemacht, deshalb klappt das auch nicht.