[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
  • format(PlayerInfo[playerid][pBannedGrund],64,dini_Get(SpielerD,"Banngrund"));

    Ja danke. :)
    Noch ein kleiner fehler ich versuche nun den Adminnamen nun auch zu speichern.
    So siehts bisher aus, bekomme aber leider Fehler:


    new namegeber[MAX_PLAYER_NAME];
    GetPlayerName(GeberName[playerid],namegeber,sizeof(namegeber));
    new adminname[15];
    adminname = namegeber; //Fehlerzeile
    PlayerInfo[SelectedOne[playerid]][pBannedAdmin] = adminname;


    error 047: array sizes do not match, or destination array is too small

  • Was ist hier falsch?
    ocmd:oban(playerid,params[])
    {
    new string[124],Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    if(sscanf(params,"s",name))return SendClientMessage(playerid,Rot,"/oban [Spielername]");
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(fexist(name))
    {
    new INI:file = INI_Open(Spielerdatei);
    INI_WriteInt(File,"Banned",1);
    INI_Close(File);
    format(string,sizeof(string),"You have banned %s.",name);
    SendClientMessage(playerid,-1,string);
    return 1;
    }
    else SendClientMessage(playerid,-1,"Der Account wurde nicht gefunden!");
    return 1;
    }


    warning 213: tag mismatch
    error 017: undefined symbol "File"
    error 017: undefined symbol "File"
    warning 204: symbol is assigned a value that is never used: "file"

  • Du hast "File" geschrieben, aber "file" deklariert.


    ocmd:oban(playerid,params[])
    {
    new string[124],Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    if(sscanf(params,"s",name))return SendClientMessage(playerid,Rot,"/oban [Spielername]");
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(fexist(Spielerdatei))
    {
    new INI:file = INI_Open(Spielerdatei);
    INI_WriteInt(file,"Banned",1);
    INI_Close(file);
    format(string,sizeof(string),"You have banned %s.",name);
    SendClientMessage(playerid,-1,string);
    return 1;
    }
    else SendClientMessage(playerid,-1,"Der Account wurde nicht gefunden!");
    return 1;
    }

  • Beitrag von PStar ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Bei meinem Befehl kommen zwar keine Errors, aber der Spieler wird nicht offline gebannt, bitte um Hilfe




    ocmd:oban(playerid,params[])
    {
    new Spieler[128],grund[128];
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",params);
    if(!isPlayerRang(playerid,4)) return SendClientMessage(playerid,Dunkelrot,"Du besitzt nicht die benötigten Rechte!");
    if(!strlen(params)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
    //if(sscanf(params,"ss",params,grund)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
    if(!dini_Exists(Spieler)) return SendClientMessage(playerid, Dunkelrot, "Es existiert kein Spieler mit diesem Namen in der Datenbank.");
    dini_IntSet(Spieler,"Banned",1);
    new string2[128];
    format(string2,sizeof(string2),"[OFFLINEBANNED] %s wurde von %s offline gebannt. Grund: %s",Spieler,getPlayerName(playerid),grund);
    SendClientMessageToAll(Rot,string2);
    return 1;
    }


    mfg


    /e
    und ich möchte das mit sscanf und nicht mit strok bzw. strlen, weiß jemand wie es geht?

    Einmal editiert, zuletzt von Iceberqk ()

  • ocmd:oban(playerid,params[])
    {
    new Spieler[128],grund[128];
    if(!isPlayerRang(playerid,4)) return SendClientMessage(playerid,Dunkelrot,"Du besitzt nicht die benötigten Rechte!");
    if(sscanf(params,"ss",Spieler,grund)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Spieler);
    if(!dini_Exists(Spieler)) return SendClientMessage(playerid, Dunkelrot, "Es existiert kein Spieler mit diesem Namen in der Datenbank.");
    dini_IntSet(Spieler,"Banned",1);
    new string2[128];
    format(string2,sizeof(string2),"[OFFLINEBANNED] %s wurde von %s offline gebannt. Grund: %s",Spieler,getPlayerName(playerid),grund);
    SendClientMessageToAll(Rot,string2);
    return 1;
    }
    Falls du das sscanf Plugin verwendest, musst du "ss" zu "s[128]s[128]" machen.


  • Danke schonmal, hat gefunzt.


    Jetzt möchte ich aber, dass da nich steht:
    [OFFLINEBANNED] Spieler/Tester.txt wurde von xy offline gabannt.........
    sondern,
    dass da nur der Name steht ohne das Verzeichnis, wie mache ich das?


    Screen:

  • Ach ja, da habe ich nicht drauf geachtet.
    ocmd:oban(playerid,params[])
    {
    new Spieler[128],grund[128],name[MAX_PLAYER_NAME];
    if(!isPlayerRang(playerid,4)) return SendClientMessage(playerid,Dunkelrot,"Du besitzt nicht die benötigten Rechte!");
    if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,Grau,"Verwendung: /Oban [Spielername] [Grund]");
    format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name);
    if(!dini_Exists(Spieler)) return SendClientMessage(playerid, Dunkelrot, "Es existiert kein Spieler mit diesem Namen in der Datenbank.");
    dini_IntSet(Spieler,"Banned",1);
    new string2[128];
    format(string2,sizeof(string2),"[OFFLINEBANNED] %s wurde von %s offline gebannt. Grund: %s",name,getPlayerName(playerid),grund);
    SendClientMessageToAll(Rot,string2);
    return 1;
    }


    Dann passt es. ;)

  • Jeffry:

    Code
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Reallife-Skript.pwn(327) : warning 215: expression has no effect
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Warning.


    SpielerInfo[playerid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", mysqlHandle), SpielerInfo[playerid][pAdminlevel];

  • ocmd:makeadmin(playerid)
    {
    new query[128], string[128], rank, pID;
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Du brauchst das Rcon Passwort.");
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,-1,"Tippe: /makeadmin [spieler] [level]");
    if(rank<0||rank>7)return SendClientMessage(playerid,ROT,"Ungültig.");
    format(string, sizeof(string),"Du hast Adminlevel erhalten. Checke /stats");
    SendClientMessage(pID,ROT,string);
    format(query, sizeof(query), "UPDATE accounts SET adminlevel = '%d' WHERE adminlevel = '%s'",rank);
    mysql_tquery(mysqlHandle, query, "", "");
    return 1;
    }


    Code
    Zeile (201) : Unbekannte Variable :  "params"
    
    
    1 Errors, 0 Warnungen
    Du hast Errors im Skript. Kompilierung abgebrochen
    
    
    PWNMod Compiler Version 1.2
    (c) Trooper[Y]
    In Kooperation mit GTA-Servers.de
  • Danke
    Aber es funktioniert tzd.
    nicht.
    ocmd:makeadmin(playerid, params[])
    {
    new query[128], string[128], rank, pID;
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,ROT,"Du brauchst das Rcon Passwort.");
    //if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,-1,"Tippe: /makeadmin [spieler] [level]");
    if(rank<0||rank>7)return SendClientMessage(playerid,ROT,"Ungültig.");
    format(string, sizeof(string),"Du hast Adminlevel erhalten. Checke /stats");
    SendClientMessage(pID,ROT,string);
    format(query, sizeof(query), "UPDATE accounts SET adminlevel = '%d' WHERE adminlevel = '%s'",rank);
    mysql_tquery(mysqlHandle, query, "", "");
    return 1;
    }

    Code
    [16:58:18] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE accounts SET adminlevel = '0' WHERE adminlevel = ''", callback: "(null)", format: "(null)"
    [16:58:18] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [16:58:18] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 0.396 milliseconds
    [16:58:18] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving


    Code
    [16:58:29] [ERROR] CMySQLQuery::Execute[] - (error #1146) Table 'reallife server.arank1' doesn't exist


    und das hier auch nicht:
    ocmd:arank(playerid)
    {
    new string[128], query[128];
    format(query, sizeof(query), "SELECT * FROM admins, aRank1");
    mysql_tquery(mysqlHandle,query);
    format(string, sizeof(string),"Rank 1: %i",Adminrank[playerid][pRank1]);
    SendClientMessage(playerid, -1, string);
    return 1;
    }