Beiträge von Silbermond

    E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch



    Betrifft diese Zeile


    Spoiler anzeigen
    if(TorStatus[TORL] == false)


    E:\SAMP\gamemodes\Script1.pwn(2443) : warning 213: tag mismatch


    Betrifft diese


    Spoiler anzeigen
    TorStatus[TORL] = true;


    E:\SAMP\gamemodes\Script1.pwn(2450) : warning 213: tag mismatch


    Betrifft diese


    TorStatus[TORL] = true;


    Diese Beiden


    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch


    Betreffen diese Zeile


    if(TorStatus[TORR] == true)



    Ebenfalls mit Tag Mismatch


    TorStatus[TORR] = false;


    und zu guter letzt diese


    auch mit Tag mismatch
    TorStatus[TORR] = true;




    Anderenfalls diese beiden Errors
    E:\SAMP\gamemodes\Script1.pwn(4778) : error 022: must be lvalue (non-constant)
    E:\SAMP\gamemodes\Script1.pwn(4779) : error 022: must be lvalue (non-constant)


    Betreffend diese Beiden Zeilen


    O_TORL = CreateObject(971, 777.90002, -1384.9, 16, 0, 0, 0); //tor2 einfach nach unten
    O_TORR = CreateObject(971, 778, -1330.2, 15.9, 0, 0, 180); //tor1 einfach nach unten

    Hallo zusammen,


    ich würde gerne, dass jede Fraktion, seine eigenen Tore mit dem gleichen Befehl aufmacht, ohne dass diese sich in die Quere kommen


    Also PD muss inRange vom PD TOR sein ohne halt das fehlermeldungen kommen wie " Du bist nicht in Reichweite vom Army Tor"


    so möchte ich halt vermeiden, dass das PD die army tore aufmacht



    Hier schonmal mein Einstieg


    Spoiler anzeigen
    ocmd:mv(playerid,params[])

    Spoiler anzeigen
    //CreateObject(980, 480.70001, 2379.6001, 30.8, 0, 2, 158); //tor 1
    // CreateObject(980, -163.099609375, 2507.7001953125, 25, 0, 0, 180); //tor 2

    {








    //ARMY TOR FRAK ID 3



    if(!isPlayerInFrak(playerid,3) & !isAdmin(playerid,5)) return 1;
    {
    if(TorStatus[Army1Gate] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,480.70001, 2379.6001, 30.8)) return 1;
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army1Gate] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,480.70001, 2379.6001, 30.8)) return 1;
    MoveObject(Army1Gatee,480.70001, 2379.6001, 30.8,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army1Gate] = false;
    }
    if(TorStatus[Army2Gate] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,-163.099609375, 2507.7001953125, 25)) return 1;
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125, 25-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[Army2Gate] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,-163.099609375, 2507.7001953125,25)) return 1;
    MoveObject(Army2Gatee,-163.099609375, 2507.7001953125,25,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[Army2Gate] = false;
    }

    }




    /*
    O_TORL = CreateObject(971, 777.90002, -1384.9, 16, 0, 0, 0); //tor2 einfach nach unten

    O_TORR = CreateObject(971, 778, -1330.2, 15.9, 0, 0, 180); //tor1 einfach nach unten
    */

    //OAMT TORE FRAK ID 10
    if(!isPlayerInFrak(playerid,10) & !isAdmin(playerid,5)) return 1;
    {
    if(TorStatus[TORL] == false)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,777.90002, -1384.9, 16)) return 1;
    MoveObject(O_TORL,777.90002, -1384.9, 16-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[TORL] = true;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,777.90002, -1384.9, 16)) return 1;
    MoveObject(O_TORL,777.90002, -1384.9, 16,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[TORL] = true;
    }


    if(TorStatus[TORR] == true)
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,778, -1330.2, 15.9)) return 1;
    MoveObject(O_TORR,778, -1330.2, 15.9-10,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geöffnet!");
    TorStatus[TORR] = false;
    }
    else
    {
    if(!IsPlayerInRangeOfPoint(playerid,8,778, -1330.2, 15.9)) return 1;
    MoveObject(O_TORR,778, -1330.2, 15.9,5);
    SendClientMessage(playerid,0x9ACD32AA,"Tor wird geschlossen!");
    TorStatus[TORR] = true;
    }
    }
    return 1;

    }



    Und leider dazu eine menge Errors
    Diese Fehler liegen beim Befehl /mv bei dem Bewegen der TOre
    E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2438) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2443) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2450) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2454) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2459) : warning 213: tag mismatch
    E:\SAMP\gamemodes\Script1.pwn(2466) : warning 213: tag mismatch




    E:\SAMP\gamemodes\Script1.pwn(4778) : error 022: must be lvalue (non-constant) //FEHLER LIEGT BEIM DEFINIEREN DER TORE
    E:\SAMP\gamemodes\Script1.pwn(4779) : error 022: must be lvalue (non-constant) //FEHLER LIEGT BEIM DEFINIEREN DER TORE


    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    Dazu muss ich sagen, dass das ARMY Tor einwandfrei funktioniert



    Hier noch die Defines von dem OAMT


    Spoiler anzeigen
    bool:O_TORL,
    bool:O_TORR,

    Spoiler anzeigen
    new TORL;
    new TORR;

    Spoiler anzeigen
    stock Oamt

    Spoiler anzeigen
    O_TORL = CreateObject(971, 777.90002, -1384.9, 16, 0, 0, 0); //tor2 einfach nach unten
    O_TORR = CreateObject(971, 778, -1330.2, 15.9, 0, 0, 180); //tor1 einfach nach unten



    Ich weiß ich kann mit switch und case arbeiten aber ich hab das noch nie gemacht


    Heißt im Endeffekt


    Dynamische IP User = Können beliebig Multiaccs machen
    Statische IP User = werden erwischt weil die IP gesehen wird


    Korrekt?

    nein es wird ja nur geprüft ob der Spieler mit derselben Ip wie bei der Registrierung kommt


    Ist diese eine andere funktioniert der Login prozess normal




    EDIT
    Wenn du noch irgendwelche Zeilen brauchst, sag bescheid



    Ich habe alternativ auch Teamviewer

    Einfach aus Prinzip, wieso wird er bei falscher IP gekickt ? Wegen multi account ok, 2 accounts bei 1 Ip -> nicht möglich...
    Aber wenn jemand keine statische ip hat, kann er nichtmehr connecten, nach einen router neustart? Ist doch extrem umständlich.. Ich selbst hab eine dynamische ip, und könnte mich nie mehr einloggen^^


    Du kannst das System umbauen um multiaccount, halbwegs, einzudämmen...


    Aber so ist das doch nicht machbar^^..


    sorry kenne mich da nicht so aus. Unterschied zwischen "Dynamischer" und Statischer IP" war nochmal was?!

    Schaue dir das alles noch einmal richtig an!

    Heißt ich soll jetzt was machen?


    Ist mein erstes System was ich baue (mit MYSQL)






    EDIT1:
    also so oder wie

    Spoiler anzeigen
    public OnPlayerConnect(playerid)
    {

    //-------------------IP SYSTEM ANFANG -------------------------

    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
    new name1[25], query1[60],pID,string[128],query2[60];
    GetPlayerName(playerid, name1, 25);
    mysql_format(dbhandle, query1, 60, "SELECT * FROM `timeban` WHERE `Spieler`='%e'", name);
    mysql_tquery(dbhandle, query1, "@CheckBannedUser", "i", playerid);
    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    format(string,sizeof(string),"Die IP vom Spieler %s ist %s !",getPlayerName(pID),playersip);
    mysql_format(dbhandle, query2, 60, "SELECT * FROM `PlayerIP` WHERE `PlayerName`='%e'", name);
    mysql_tquery(dbhandle, query1, "@CheckIP", "i", playerid);
    if(IPInfo[playerid][PlayerIP]) ! = 0)) return print("PlayerIP noch nicht vorhanden Spieler: %s", GetPlayerName(playerid));

    }
    else
    {
    SendClientMessage(playerid,-1,"Deine IP wurde nicht in der Whitelist gefunden, Du wirst nun gekickt");
    print("IP vorhanden %s",GetPlayerName(playerid));
    }

    Hallo zusammen, ich habe mich heute, eigentlich noch viel zu früh an ein IP System gewagt


    In dem System soll folgendes passieren


    -Spieler Verbindet, IP wird in der Datenbank überprüft
    -Bei der Registrierung sollen folgende Dinge eingetragen werden:

    • SpielerName
    • IP
    • Datum

    Beim Login
    - Wenn IP nicht übereinstimmend -> Kick
    - Wenn IP übereinstimmen -> Login


    -Admin setzt IP fest in die Datenbank (manuell)
    -IP soll überschrieben werden





    Hier dazu all das was ich bereits geschrieben habe:


    Mein Enum was ich erstellt habe

    new IPInfo[MAX_PLAYERS][IPEnum];
    enum IPEnum
    {
    PlayerName[MAX_PLAYER_NAME],
    IP,
    PlayerIP,
    Datum,
    }



    Bei OnPlayerConnect (Ich musste ja das Ban /Tban system noch mit einbinden deswegen alles so durcheinander


    public OnPlayerConnect(playerid)
    {

    //-------------------IP SYSTEM ANFANG -------------------------

    new name[MAX_PLAYER_NAME],query[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(query,sizeof(query),"SELECT id FROM user WHERE username='%s'",name);
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);
    {
    new name1[25], query1[60],pID,string[128],query2[60];
    GetPlayerName(playerid, name1, 25);
    mysql_format(dbhandle, query1, 60, "SELECT * FROM `timeban` WHERE `Spieler`='%e'", name);
    mysql_tquery(dbhandle, query1, "@CheckBannedUser", "i", playerid);
    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    format(string,sizeof(string),"Die IP vom Spieler %s ist %s !",getPlayerName(pID),playersip);
    mysql_format(dbhandle, query2, 60, "SELECT * FROM `PlayerIP` WHERE `PlayerName`='%e'", name);
    mysql_tquery(dbhandle, query1, "@CheckIP", "i", playerid);
    if(IPInfo[playerid][PlayerIP]) ! = 0)) return print("PlayerIP noch nicht vorhanden Spieler: %s", GetPlayerName(playerid)); // ----> DIESE ZEILE BETRIFFT DEN ERROR

    }
    else
    {
    SendClientMessage(playerid,-1,"Deine IP wurde nicht in der Whitelist gefunden, Du wirst nun gekickt");
    print("IP vorhanden %s",GetPlayerName(playerid));
    }
    }





    Dann /getip und /setip
    /getip geht /setip hab ich noch n icht testen können
    //IP Überprüfung
    ocmd:getip(playerid,params[])
    {
    if(!isAdmin(playerid,2)) SendClientMessage(playerid,-1,"Du hast kein Admin Level 2");
    {
    new pID,string[128];

    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"INFO : /getip [playerid] !");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Spieler nicht verbunden");

    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    format(string,sizeof(string),"Die IP vom Spieler %s ist %s !",getPlayerName(pID),playersip);
    SendClientMessage(playerid,-1,string);
    }
    }
    return 1;
    }


    ocmd:setip(playerid,params[])
    {
    if(!isAdmin(playerid,2)) SendClientMessage(playerid,-1,"Du hast kein Admin Level 2");
    {
    new pID,string[128];

    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,-1,"INFO : /setip [playerid] !");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"Spieler nicht verbunden");

    {
    new playersip[16];
    GetPlayerIp(pID,playersip,sizeof(playersip));
    format(string,sizeof(string),"Die IP vom Spieler %s ist %s und wurde erfolgreich in die DB eingetragen!",getPlayerName(pID),playersip);
    SendClientMessage(playerid,-1,string);
    format(query,sizeof(query),"INSERT INTO PlayerIP (IP,SpielerName) VALUES ('%f','%s')",playerisip,SpielerName);
    print(query); // <--- diese Zeile
    mysql_function_query(dbhandle,query,true,"CheckIP","i",carid);
    }
    else if(playersip <= 1)
    {
    format(string,sizeof(string),"Die IP vom Spieler %s ist %s und ist bereits in der DB vorhanden!",getPlayerName(pID),playersip);
    SendClientMessage(playerid,-1,string);
    }
    }
    return 1;
    }



    und zum schluss das noch




    @CheckIP(playerid);
    @CheckIP(playerid)
    {
    new rows, fields, ,string[256], IP[16],Datum[20];

    cache_get_data(rows, fields);
    if(rows)
    {
    IP = cache_get_field_content_float(0, "IP",IP);
    Datum = cache_get_field_content(0,"Registrierungsdatum",name);

    if(0() > IP)
    {
    format(string,sizeof(string),"Deine IP wurde in der Datenbank gefunden. Lasse bitte überprüfen ob bereits ein Account besteht. Name: %s IP: %f ",GetPlayerName(playerid),IP);
    SendClientMessage(playerid,-1,string);
    format(string,sizeof(string),"Du hast dich an folgendem Tage registriert : ",Datum);
    }
    else
    {
    format(query,sizeof(query),"INSERT INTO PlayerIP (PlayerName,IP) VALUES ('%s','%f')",getPlayerName(playerid),sInfo[playerid][IP]);
    print(query); // <--- diese Zeile
    mysql_function_query(dbhandle,query,true,"CheckIP","i",carid);
    return 1;
    //Eure Sache
    }
    }
    else return 1;//Eure Sache;
    return 1;
    }


    public CheckIP(playerid,IP)
    {
    IPInfo[playerid][db_id]= cache_insert_id(dbhandle);
    return 1;
    }



    Und hier die eigentlichen Errors


    E:\SAMP\gamemodes\Script1.pwn(1485) : error 029: invalid expression, assumed zero
    E:\SAMP\gamemodes\Script1.pwn(1485) : warning 215: expression has no effect
    E:\SAMP\gamemodes\Script1.pwn(1485) : error 001: expected token: ";", but found ")"
    E:\SAMP\gamemodes\Script1.pwn(1485) : error 029: invalid expression, assumed zero
    E:\SAMP\gamemodes\Script1.pwn(1485) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.




    Das betrifft in allen Fällen diese Zeile


    beim OnplayerConnect


    if(IPInfo[playerid][PlayerIP]) ! = 0)) return print("PlayerIP noch nicht vorhanden Spieler: %s", GetPlayerName(playerid));









    EDIT 1: Screen


    Falls euch der Screen weiterhilft meine Datenbank :D