[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link

  • ---------
    Loaded log file: "server_log.txt".
    ----------



    SA-MP Dedicated Server
    ----------------------
    v0.3.7-R2, (C)2005-2015 SA-MP Team



    [23:22:29]
    [23:22:29] Server Plugins
    [23:22:29] --------------
    [23:22:29] Loading plugin: crashdetect.so
    [23:22:29] CrashDetect v4.15.1 is OK.
    [23:22:29] Loaded.
    [23:22:29] Loading plugin: streamer.so
    [23:22:29]



    *** Streamer Plugin v2.6.1 by Incognito loaded ***



    [23:22:29] Loaded.
    [23:22:29] Loading plugin: sscanf.so
    [23:22:29]



    [23:22:29] ===============================



    [23:22:29] sscanf plugin loaded.



    [23:22:29] (c) 2009 Alex "Y_Less" Cole



    [23:22:29] 0.3d-R2 500 Players "dnee"



    [23:22:29] ===============================



    [23:22:29] Loaded.
    [23:22:29] Loading plugin: mysql_static.so
    [23:22:29] >> plugin.mysql: R39-2 successfully loaded.
    [23:22:29] Loaded.
    [23:22:29] Loaded 4 plugins.



    [23:22:29]
    [23:22:29] Ban list
    [23:22:29] --------
    [23:22:29] Loaded: samp.ban
    [23:22:29]
    [23:22:29]
    [23:22:29] Filterscripts
    [23:22:29] ---------------
    [23:22:29] Loaded 0 filterscripts.



  • dann kommt das

    01:55:38] [debug] Run time error 19: "File or function is not found"
    [01:55:38] [debug] SSCANF_IsConnected
    [01:55:38] [debug] Run time error 19: "File or function is not found"
    [01:55:38] [debug] SSCANF_IsConnected
    [01:55:38] Script[gamemodes/RealLife.amx]: Run time error 19: "File or function is not found"
    [01:55:38] Number of vehicle models: 0

  • Dann vergleiche mal ob die gleichen Server Versionen installiert sind, und ob in den scriptfiles (Ordner) die gleichen Daten vorhanden sind.


    Setze dich ansonsten mal mit dem Support dort in Verbindung, wenn der 1:1 gleiche Code beim einen Host geht und beim anderen nicht. Dann liegt es auf jeden Fall nicht am Code.

  • Ok


    //Edit
    nun kommt das:

    [02:30:01] [debug] Run time error 19: "File or function is not found"
    [02:30:01] [debug] mysql_connect
    [02:30:01] [debug] mysql_errno
    [02:30:01] [debug] mysql_tquery
    [02:30:01] [debug] mysql_format
    [02:30:01] [debug] cache_get_row_count
    [02:30:01] [debug] cache_get_field_content
    [02:30:01] [debug] cache_get_field_content_int
    [02:30:01] [debug] mysql_pquery
    [02:30:01] [debug] cache_get_row
    [02:30:01] [debug] cache_get_data
    [02:30:01] [debug] cache_insert_id
    [02:30:01] [debug] Run time error 19: "File or function is not found"
    [02:30:01] [debug] mysql_connect
    [02:30:01] [debug] mysql_errno
    [02:30:01] [debug] mysql_tquery
    [02:30:01] [debug] mysql_format
    [02:30:01] [debug] cache_get_row_count
    [02:30:01] [debug] cache_get_field_content
    [02:30:01] [debug] cache_get_field_content_int
    [02:30:01] [debug] mysql_pquery
    [02:30:01] [debug] cache_get_row
    [02:30:01] [debug] cache_get_data
    [02:30:01] [debug] cache_insert_id
    [02:30:01] Script[gamemodes/RealLife.amx]: Run time error 19: "File or function is not found"
    [02:30:01] Number of vehicle models: 0

    Einmal editiert, zuletzt von SlashQ ()

  • Kann mir kurz jemand behilflich sein? Hab ein ganz kleines Problem.
    Der Befehl funktioniert problemlos, ich kriege aber jedes mal wenn die PMs geblockt werden folgendes in der Server Log.



    Ich denke mal es liegt an  if(sscanf(params,"()S[80]", Reason)) return



    CMD:bpm(playerid, params[]) {
    new cQuery[102], Reason[80];



    if(BPM[playerid] == 1) {
    SendClientMessage(playerid, -1, "PMs {00FF00}unblocked.");
    BPM[playerid] = 0;
    BPMReason[playerid] = "";
    return 1;
    }



    if(sscanf(params,"()S[80]", Reason)) return
    SendClientMessage(playerid, COLOR_RED, "Use: /bpm <reason>");



    if(!Reason[0]) format(Reason, sizeof(Reason), "No reason given");



    format(cQuery, sizeof(cQuery), "PMs{FF0000} blocked.{FFFFFF} Reason: {FF0000}%s", Reason);
    SendClientMessage(playerid, -1, cQuery);



    BPM[playerid] = 1;
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Dann versuche es so:
    CMD:bpm(playerid, params[]) {
    new cQuery[102], Reason[80], pID;



    if(sscanf(params,"uS(No reason given)[80]", pID, Reason))
    return SendClientMessage(playerid, COLOR_RED, "Use: /bpm <id> <reason>");

    if(!IsPlayerConnected(pID))
    return SendClientMessage(playerid, COLOR_RED, "Error: Spieler nicht online.");


    if(BPM[pID] == 1) {
    SendClientMessage(pID, -1, "PMs {00FF00}unblocked.");
    BPM[pID] = 0;
    BPMReason[pID] = "";
    return 1;
    }


    format(cQuery, sizeof(cQuery), "PMs{FF0000} blocked.{FFFFFF} Reason: {FF0000}%s", Reason);
    SendClientMessage(pID, -1, cQuery);


    BPM[pID] = 1;
    return 1;
    }

  • @Jeffry


    Du hast mich falsch verstanden, der Befehl den ich gepostet habe war schon so in Ordnung, nur das was in der Server_log.txt aufgetaucht ist, hat gestört.
    Dein Code ist abgeändert und macht nicht das, was es machen soll.


    Der Befehl ist dafür gedacht, das jeder Spieler für sich selbst entscheiden kann, ob andere Spieler ihn eine PM senden können oder nicht.


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Das liegt daran, dass dies als zwei Zeichen erkannt wird.
    Es gibt aber einen Trick:


    In deiner Datenbank:

    Zitat

    Dieser Zeilenumbruch~wird nun beachtet.


    Code:
    for(new i=0; i<strlen(string); i++) if(string[i] == '~') string[i] = '\n';
    ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Info",string,"Schließen","");


    string = der Wert aus der Datenbankspalte in der der Text steht.

  • Wobei du bei ~ (Tilde) wegen den Color Codes aufpassen musst, falls du iwann mal vorhast, Text von Textdraws oder ähnliches zu speichern :)

    Das spielt eigentlich keine Rolle, da bei Textdraws mit ~n~ ein Zeilenumbruch gemacht wird, daher darf die obige Routine gar nicht an der Stelle eingefügt werden, wenn der Text für ein Textdraw bestimmt ist. ;)

  • Verstehe ich nich so ganz aber du hast denke davon mehr Ahnung :D


    Aber damit ich es verstehe:
    Nach dem Code geht er ja jeden Character des Strings durch (char - Array), das heißt er überprüft in diesem Fall, ob irgendein Char ein "~" (Tilde) entspricht. Falls das der Fall ist, ersetzt er diesen mit "\n". Dann geht er zum nächsten char. Und wenn man jetzt als Textdrawtext z.B. "Hey ~r~ich bin ein roter Text" hat, müsste es doch dann zu "Hey \nr\nich bin ein roter Text" werden? :o


    Ist jetzt von meiner Seite nur darauf bezogen worden, dass man unterscheiden sollte, wann man was einsetzt bzw. dass man die Überprüfung nicht über nen Textdraw schickt. Denn es gibt auch Plugins oder Includes, die die Standart GUIs ersetzen. Und falls man dann den Text weiterbenutzen will, müsste man den neu formatieren. Um zukünftige Fehler auszuschließen (wegen diesem Zeichen).