[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
  • CMD:mapeditor(playerid, params[])
    {
    #pragma unused params
    static bool:s_mapedit;
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, ROT, "Bitte benutze /rcon login um den Befehl benutzen zu können.");
    if(!s_mapedit) SRC("loadfs mapedit");
    else SRC("unloadfs mapedit");
    s_mapedit = !s_mapedit;
    return 1;
    }

  • Danke, klappt.


    Einen Fehler hab ich noch.
    [09/28/18 12:05:50] [INFO] changed log level from 'warning, error' to 'debug, info, warning, error'[09/28/18 12:05:50] [DEBUG] mysql_connect("213.202.255.90", "samp", "*****", "samp", 0) (C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/stocks.inc:153 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/publics.inc:12 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\Pawn.CMD.inc:125 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\sscanf2.inc:204)[09/28/18 12:05:50] [DEBUG] CHandleManager::Create(this=0x7506b0, host='213.202.255.90', user='samp', pass='****', db='samp', options=0x752378)[09/28/18 12:05:50] [INFO] Creating new connection handle...[09/28/18 12:05:50] [DEBUG] CConnection::CConnection(this=0x74c528, host='213.202.255.90', user='samp', passw='****', db='samp', options=0x752378)[09/28/18 12:05:50] [DEBUG] CConnection::CConnection - new connection = 0x760670[09/28/18 12:05:50] [DEBUG] CConnection::CConnection(this=0x35ed020, host='213.202.255.90', user='samp', passw='****', db='samp', options=0x752378)[09/28/18 12:05:50] [DEBUG] CConnection::CConnection - new connection = 0x778b50[09/28/18 12:05:50] [DEBUG] CThreadedConnection::CThreadedConnection(this=0x35ed020, connection=0x35ed020)[09/28/18 12:05:50] [DEBUG] CConnectionPool::CConnectionPool(size=2, this=0x74bb68)[09/28/18 12:05:50] [DEBUG] CThreadedConnection::WorkerFunc(this=0x35ed020, connection=0x35ed020)[09/28/18 12:05:50] [DEBUG] CConnection::CConnection(this=0x37bb020, host='213.202.255.90', user='samp', passw='****', db='samp', options=0x752378)[09/28/18 12:05:50] [DEBUG] CConnection::CConnection - new connection = 0x7868a8[09/28/18 12:05:50] [DEBUG] CThreadedConnection::CThreadedConnection(this=0x37bb020, connection=0x37bb020)[09/28/18 12:05:50] [DEBUG] CThreadedConnection::WorkerFunc(this=0x37bb020, connection=0x37bb020)[09/28/18 12:05:50] [DEBUG] CConnection::CConnection(this=0x3985020, host='213.202.255.90', user='samp', passw='****', db='samp', options=0x752378)[09/28/18 12:05:50] [DEBUG] CConnection::CConnection - new connection = 0x7cdc70[09/28/18 12:05:50] [DEBUG] CThreadedConnection::CThreadedConnection(this=0x3985020, connection=0x3985020)[09/28/18 12:05:50] [INFO] Connection handle with id '1' successfully created.[09/28/18 12:05:50] [DEBUG] CHandleManager::Create - new handle = 0x757728[09/28/18 12:05:50] [DEBUG] mysql_connect: return value: '1' (C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/stocks.inc:153 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/publics.inc:12 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\Pawn.CMD.inc:125 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\sscanf2.inc:204)[09/28/18 12:05:50] [DEBUG] mysql_errno(1) (C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/stocks.inc:155 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/publics.inc:12 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\Pawn.CMD.inc:125 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\sscanf2.inc:204)[09/28/18 12:05:50] [DEBUG] CHandle::GetErrorId(this=0x757728)[09/28/18 12:05:50] [DEBUG] CConnection::GetError(this=0x74c528, connection=0x760670)[09/28/18 12:05:50] [DEBUG] CHandle::GetErrorId - return value: true, error id: '0', error msg: ''[09/28/18 12:05:50] [DEBUG] mysql_errno: return value: '0' (C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/stocks.inc:155 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\../include/core/publics.inc:12 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\Pawn.CMD.inc:125 -> C:\Users\Alexander\Documents\meinserver\script\Map\pawno\include\sscanf2.inc:204)[09/28/18 12:05:50] [DEBUG] CThreadedConnection::WorkerFunc(this=0x3985020, connection=0x3985020)



    Was ist da los?


    Edit: Kann man sich irgendwie wärend dem Spiel aus dem RCON ausloggen?

  • Du machst einfach eine Query wie diese (musst du an deine Werte anpassen):

    //OnPlayerConnect
    mysql_format(handle,Query,sizeof(Query),"SELECT adminlevel FROM users WHERE Name = '%s'",GetName(playerid));
    mysql_pquery(handle,Query,"OnCheckAdmin","d",playerid);


    forward OnCheckAdmin(playerid);
    public OnCheckAdmin(playerid)
    {
    new alevel;
    cache_get_value_name_int(0,"adminleven",alevel);


    if(alevel > 0) return 1;
    else if(alevel == 0)
    {
    SendClientMessage(playerid, 0xFFFF00, "Der Login wurde administrativ deaktiviert.");
    Kick(playerid);
    }
    }


  • new gInfo[MAX_GEBAUDE][GebaudeEnum] = {
    {"Stadthalle Los Santos", 1209.4045,-1752.3353,13.5936, 40.7642, 384.808624,173.804992,1008.382812, 0.0000, "Du kannst das Gebäude mit "HTML_SERVER"/enter"HTML_WEIS"\n oder mit der Taste "HTML_SERVER"F"HTML_WEIS" betreten!", 3, 100},
    };

    Da muss das , am Ende weg. Beim letzten Element musst du das , weglassen.

  • Ich muss LoginTimer[playerid] definieren, einfach new LoginTimer? Oder LoginTimer[MAX_PLAYERS]


    Der Public heißt dann: LoginKick richtig? @Jeffry

    new LoginTimer[MAX_PLAYERS]


    //bei deinem Login
    LoginTimer[playerid] = SetTimerEx("PlayerLoginTimer", 20000, false, "d", playerid);
    //Nachdem er sich eingeloggt hat
    KillTimer(LoginTimer[playerid]);
    //Falls er zu lang braucht
    forward PlayerLoginTimer(playerid);
    public PlayerLoginTimer(playerid)
    {
    KickPlayer(playerid);
    return 1;
    }

  • Super, Danke!


    Code
    forward PlayerLoginTimer(playerid);
    public PlayerLoginTimer(playerid)
    {
    	ShowPlayerDialog(//X...", "","");
    	Kick(playerid);
    	return 1;
    }

    Dialog wird nicht angezeigt, wahrscheinlich weil alles zu schnell abläuft oder?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Kannst es auch ohne das Include machen.
    SetTimerEx("KickPublic", 600, false, "d", playerid);forward KickPublic(playerid);public KickPublic(playerid){Kick(playerid);return 1;}
    Dann kannst du das Kick(playerid) im PlayerLoginTimer löschen
    ---------------------
    Wie kann ich hier noch die Befehle loggen die ich per OCMD erstellt habe?
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new String[512], logtext[256];
    format(String, sizeof(String), ""SERVER_HTML"Server: "HTML_WEIS"Der Befehl ( %s ) existiert nicht. Benutze /help", cmdtext);
    new FileName[64];
    format(FileName, sizeof(FileName), "/ServerLogs/SpielerCommandLog/%s.txt", Spieler[playerid][pName]);
    new File:SpielerCommandLog = fopen(FileName, io_append);
    format(logtext, sizeof(logtext), "[%d.%d.%d][%d:%d:%d Uhr] Befehl: %s \r\n", Tag, Monat, Jahr, Stunde, Minute, Sekunde, cmdtext);
    fwrite(SpielerCommandLog, logtext);
    fclose(SpielerCommandLog);
    return SendClientMessage(playerid, -1, String);
    }

    2 Mal editiert, zuletzt von Marschl ()

  • Moinsen,


    wollte bei einem Feuer System gerne mit einbinden das auch der Feuerwehr Wagen (Fahrzeug ID 407) auch löschen kann und nicht nur Feuerlöscher. Kriegs aber irgendwie nicht geschissen.



    Code
    if(GetPlayerWeapon(playerid) == 42)

    Das ist die Zeile wo die Waffe ausgezahlt wird. Krieg aber es nicht geschissen: " IsPlayerInVehicle(playerid, 407)" mit einzubinden.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen