madAd | Adminscript | 69 Commands | GUI | 5 Adminlevel | Tolle Features

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
  • D:\samp server\eigener server neue version R4\samp03asvr_R7_win32\filterscripts\madAd.pwn(3211) : error 021: symbol already defined: "sscanf"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    wen ich sccanf ausklammer speichert er die registrireung nich was kan ich mahcen ?


    ps hier den scanf befehel


    //=============================================SSCANF ZEUGS=========================================//
    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

  • Hi.


    Nicht schlecht das Teil ;) Hat mir ein paar Nette Ideen gegeben für mein Fun-Script (Server für meine RL Kumpels und meine Brüder xD) - naja auf jedene fall sind mir ein paar Fehler aufgefallen:
    - /AWeapon gibt einem ja ein Adminwaffenpacket. Da aber bei dem Waffenpack eine Minigun dabei ist wird man automatisch gekickt wenn man die in der Hand hat ;)
    - /God oder /PGod macht nicht ganz Unsterblich. Bin von ner Höhe runtergefallen und war tot :P


    --- Mir is noch was anderes da aufgefallen was ich aber vergessen hab xD - Sorry.


    Bitte auf das Bild Klicken für Mehr Info's!



    Bitte auf das Bild Klicken für Mehr Info's!

  • Hallo, ich habe versucht die LVL SpeicherFunktion einzubauen, aber ich bekomme errors:


    Code
    C:\Dokumente und Einstellungen\thomas\Desktop\Server\0.3 RC-7\filterscripts\madAd.pwn(329) : error 017: undefined symbol "LVL"
    C:\Dokumente und Einstellungen\thomas\Desktop\Server\0.3 RC-7\filterscripts\madAd.pwn(626) : error 017: undefined symbol "LVL"
    C:\Dokumente und Einstellungen\thomas\Desktop\Server\0.3 RC-7\filterscripts\madAd.pwn(633) : error 017: undefined symbol "LVL"
    C:\Dokumente und Einstellungen\thomas\Desktop\Server\0.3 RC-7\filterscripts\madAd.pwn(658) : error 017: undefined symbol "LVL"
    C:\Dokumente und Einstellungen\thomas\Desktop\Server\0.3 RC-7\filterscripts\madAd.pwn(661) : error 017: undefined symbol "LVL"
    Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase
    
    
    5 Errors.


    Zeile 329:dini_IntSet(Spielerdatei,"LVL",SpielerInfo[playerid][LVL]);


    Zeile 626:SpielerInfo[playerid][LVL] = dini_Int(Spielerdatei,"LVL");


    Zeile 633:new pll = SpielerInfo[playerid][LVL];


    Zeile 658:SpielerInfo[playerid][LVL] = GetPlayerScore(playerid);


    Zeile 661:dini_IntSet(Spielerdatei,"LVL",SpielerInfo[playerid][LVL]);


    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    PUBLIC DialogRespons....


    if(dialogid == regis)
    {
    if(response == 1)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    SpielerInfo[playerid][alvl] = 0;
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
    dini_Create(Spielerdatei);
    if(!strlen(inputtext))return ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, " Registriere dich!", " ", "Registrieren!", "Abbrechen!");
    dini_Set(Spielerdatei,"Passwort",inputtext);
    dini_IntSet(Spielerdatei,"LVL",SpielerInfo[playerid][LVL]);
    dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
    dini_IntSet(Spielerdatei,"AdminLevel",SpielerInfo[playerid][alvl]);
    new GlueckWunschText[256];
    format(GlueckWunschText,sizeof(GlueckWunschText)," Du hast dich erfolgreich mit den Name : %s und dem Passwort : %s registriert",SpielerName,inputtext);
    SendClientMessage(playerid,Rot,GlueckWunschText);
    Anmelden(playerid);
    SendClientMessage(playerid,Rot," Du wurdest automatisch eingloggt!");
    }
    }


    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    PUBLIC ANMELDEN:


    public Anmelden(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][LVL] = dini_Int(Spielerdatei,"LVL");
    SpielerInfo[playerid][Geld] = dini_Int(Spielerdatei,"Geld");
    SpielerInfo[playerid][Wanteds] = dini_Int(Spielerdatei,"Wanteds");
    SpielerInfo[playerid][alvl] = dini_Int(Spielerdatei,"AdminLevel");
    new plw = SpielerInfo[playerid][Wanteds];
    new plg = SpielerInfo[playerid][Geld];
    new pll = SpielerInfo[playerid][LVL];
    ResetPlayerMoney(playerid);
    SetPlayerScore(playerid, pll);
    GivePlayerMoney(playerid,plg);
    SetPlayerWantedLevel(playerid,plw);
    SendClientMessage(playerid,Rot,"Willkommen!");
    Eingeloggt[playerid] = 1;

    if(SpielerInfo[playerid][alvl] > 0)
    {
    new lgnshwscr = SpielerInfo[playerid][alvl];
    new AdminLevelShow[256];
    format(AdminLevelShow,sizeof(AdminLevelShow),"Dein Account besitzt Admin-Rechte Level %d!",lgnshwscr);
    SendClientMessage(playerid, Rot, AdminLevelShow);
    }

    return 1;
    }
    public SpielerUpdate(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][LVL] = GetPlayerScore(playerid);
    SpielerInfo[playerid][Wanteds] = GetPlayerWantedLevel(playerid);
    SpielerInfo[playerid][Geld] = GetPlayerMoney(playerid);
    dini_IntSet(Spielerdatei,"LVL",SpielerInfo[playerid][LVL]);
    dini_IntSet(Spielerdatei,"Geld",SpielerInfo[playerid][Geld]);
    dini_IntSet(Spielerdatei,"Wanteds",SpielerInfo[playerid][Wanteds]);
    dini_IntSet(Spielerdatei,"AdminLevel",SpielerInfo[playerid][alvl]);
    dini_IntSet(Spielerdatei,"Tode",SpielerInfo[playerid][Tode]);
    dini_IntSet(Spielerdatei,"Kills",SpielerInfo[playerid][Kills]);
    dini_IntSet(Spielerdatei,"Spawn",SpielerInfo[playerid][Spawn]);
    dini_IntSet(Spielerdatei,"Jailtime",SpielerInfo[playerid][Jailtime]);
    new plrIP[16];
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
    dini_Set(Spielerdatei,"IP",plrIP);
    return 1;
    }


    Hoffe einer Kann Helfen

  • #define bedeutet doch das der erste wert automatisch auch der 2.wert ist oder?


    Bsp.


    #define Rot 0xAA3333AAaslo wird automatisch "rot" durch den farbcode ersetzt bzw. der compiler weiß das rot auch der farbcode ist, oder irre ich mcih da?


    und wenn das so ist kann ich ja schlecht einfach nur


    #Define LVLmachen

  • Als was soll er den Definieren !?
    Und das was du gesagt hast , stimmt.

  • Hallo,


    ansich ein gutes FS aber ich habe nun das Problem das ich nach dem Registrieren; den Server verlasse und beim nächsten Loggin ich mich nicht mehr einloggen kann.


    Grund: Ich Teste über Hamatchi meinen Server und habe dementsprechend eine Hamatchi IP aber in der User INI wird nicht meine Hamatchi IP gespeichert sondern nur 255.255.255. Wenn ich mich nun wieder einloggen möchte kann ich dieses nicht tun. Da ich ja über meine Hamatchi IP spiele und er diese aber nicht in der User INI übernommen hat.
    Das heißt ich müsste jedesmal in der User INI die IP per Hand ändern damit ich wieder mit meinen Account spielen kann.


    Frage: Kann ich das im FS so einstellen dass er einen nicht anhand der IP erkennt sondern am Namen inkl PW? Bei anderen Admin-FS funtioniert das ja auch und viele haben auch eine IP Erkennung für das Automatische einloggen.


    Mf
    Aulus

  • Ich kann da dann eingeben was ich will, es tut sich nichts. Also er erkennt mich nicht mit meinem Password, da die IP nicht übereinstimmt. Nun möchte ich das halt gerne so haben, dass die IP Abfrage nicht statt findet.