IP beim Registerieren Speichern

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
  • Guten Tag,


    ich habe ein Problem ich habe gerade ein Versuch gestartet die IP beim Registerieren/Connecten Speichern zu lassen.
    Aber wenn ich in die Datei gucke steht da "0".


    Hätte jemand eine Erklärung oder ein Tutorial wie ich das machen kann?

  • Ich scripte in Dini.
    Ich hab nur GetIP befehl.
    Aber ich denke der hilft auch nicht (Brauche nur ein Tutorial oder eine Erklärung)


    ocmd:getip(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,2)) SendClientMessage(playerid,-1,"Du hast kein Admin Level 2");
    {
    new pID,string[128];
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Spieler nicht verbunden");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"INFO : /getip [playerid] !");
    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    format(string,sizeof(string),"Die IP vom Spieler %s ist %s",NamePlayer(pID),playersip);
    SendClientMessage(playerid,-1,string);
    }
    }
    return 1;
    }

  • Der Befehl hat aber nichts mit dem Speichern in eine Datei zu tun.


    Es muss so aussehen, beim Speichern:
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    dini_Set(Pfad_der_Spielerdatei, "IP", playerisip);


    Pfad_der_Spielerdatei logischerweise mit dem korrekten Pfad ersetzen.



    EDIT:
    Simon2202: War auch nicht auf dich bezogen. ;)

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Ich weiß ich schweife vom Thema ab.
    Aber ich will ein IP Ban System machen.
    Bzw. mein Code funktioniert nicht:
    ocmd:banip(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3)) SendClientMessage(playerid,-1,"Du hast kein Admin Level 3");
    {
    new pID,string[128];
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Spieler ist nicht Online");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"Tippe : /banip [IP]");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"Tippe : /getip [playerid] um die IP herrauszufinden");
    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    format(string,sizeof(string),"Die IP %s wurde erfolgreich gesperrt",playersip);
    {
    if(dini_Exists("/IPBanns/%s.txt",playersip))
    {
    SendClientMessage(playerid,-1,"Diese IP ist schon gesperrt [IP: %s]",playersip);
    }
    else
    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    dini_Set("/%s.txt", "IP", "%s",playersip,playersip);
    SendClientMessage(playerid,-1,"Die IP [IP: %s] wurde erfolgreich gesperrt",palyersip)
    }
    }
    }
    }
    return 1;
    }


    Was ist falsch?

  • ocmd:banip(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3)) SendClientMessage(playerid,-1,"Du hast kein Admin Level 3");
    {
    new pID,string[128];
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Spieler ist nicht Online");
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"Tippe : /banip [IP]"); SendClientMessage(playerid,-1,"Tippe : /getip [playerid] um die IP herauszufinden");
    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    if(dini_Exists("/IPBanns/%s.txt",playersip))
    {
    SendClientMessage(playerid,-1,"Diese IP ist schon gesperrt [IP: %s]",playersip);
    }
    else
    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    dini_Set("/%s.txt", "IP", "%s",playersip,playersip);
    SendClientMessage(playerid,-1,"Die IP [IP: %s] wurde erfolgreich gesperrt",palyersip)
    }
    }
    }
    return 1;
    }


    So würde ich es machen, aber was funktioniert denn nicht ?




  • Ok Danke ich teste es.


    Jeffrey


    Habe das nun so:
    new playersip[16];
    GetPlayerIp(playerid,playersip,sizeof(playersip));
    dini_Set("/Accounts/%s.txt","IP", "%s" ,playerid,playerisip);


    Fehler Code:

    Code
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(331) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(331) : error 017: undefined symbol "playerisip"
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.

  • new playersip[16];
    GetPlayerIp(playerid,playersip,sizeof(playersip));
    dini_Set("/Accounts/%s.txt","IP", "%s" ,playerid,playerisip);


    zu

    new playersip[16];
    GetPlayerIp(playerid,playersip,sizeof(playersip));
    dini_Set("/Accounts/%s.txt","IP", "%s" ,playerid,playersip); //Hier war der Schreibfehler

  • Kriege noch 2 Warnings?

    Code
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(331) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(331) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    2 Warnings.
  • @ Ray_Johnsen auch das ist falsch....



    new playersip[16],name[50],str[50],ipset[20];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerIp(playerid,playersip,sizeof(playersip));
    format(str,sizeof(str),"/Accounts/%s,txt",name);
    format(ipset,sizeof(ipset),"%s",playersip);
    dini_Set(str,"IP", ipset,playersip);


    Tut mir leid.. Ich speichere selbst nichts in dini..


    ich habe gerade nachgesehen für dini_Set(Datei,WertName,Wert)


    Versuch es mal so...

    Einmal editiert, zuletzt von Simon2202 ()

  • ocmd:getip(playerid,params[]) { if(!isPlayerAnAdmin(playerid,2)) SendClientMessage(playerid,-1,"Du hast kein Admin Level 2"); { new pID,string[128]; if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Spieler nicht verbunden"); if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"INFO : /getip [playerid] !"); { new playersip[16]; GetPlayerIp(pID,playersip,sizeof(playersip)); format(string,sizeof(string),"Die IP vom Spieler %s ist %s",NamePlayer(pID),playersip); SendClientMessage(playerid,-1,string); } } return 1; }


    Eiskalt meinen Code geklaut :cursing:

  • naja, nicht ganz "geklaut"... Und selbst wenn ist nur ein getip Befehl ^^... Außerdem sowieso, meiner Meinung nach, schlecht aufgebaut haha :) -> subjektiv


    @FerienFreak


    Ups, sry habs geändert aber nicht entfernt ^^ gehört natürlich so:


    dini_Set(str,"IP", ipset);


  • Er speichert Die IP nicht in der Account Datei?

  • Hast du bereits versucht den Fehlerklärbär zu verwende anstatthier warnings und errors reinzuschreiben und darauf zu warten, bis dir das einer richtig stellt? Wäre sinnvoller. Bei Dingen die noch keine Erklärung bekommen haben kannst du dann ja Fragen aber trotzdem solltest du es erstmal damit versuchen

    graphics frontend web

  • Hab meinen Code nun Verändert.


    new playersip[16],name[50],str[50],ipset[20];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerIp(playerid,playersip,sizeof(playersip));
    format(str,sizeof(str),"/Accounts/%s,txt",name);
    format(ipset,sizeof(ipset),"%s",playersip);
    dini_Set(str,"IP", ipset);
    if(dini_Isset("/Accounts/%s.txt", "IP" ,name))//335
    {
    return 1;
    }
    else
    {
    dini_Set("/Accounts/%s", "IP", "%s",name,playersip);//341
    }


    Code
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(335) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(341) : warning 202: number of arguments does not match definition
    C:\Users\Patrick\Desktop\IRP-City\gamemodes\Deathmatch.pwn(341) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    3 Warnings.


    In der Datei wurde auch 0 eingetragen.
    Bitte helft mir weiß nicht mehr weiter.