Beiträge von Pille

    mysql_function_query(0,"CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT,`Name` varchar(24) NOT NULL,`Passwort` varchar(130) NOT NULL,`Level` int(11) NOT NULL,PRIMARY KEY (`ID`)) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;","","");


    Oder:

    mysql_query("CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT,`Name` varchar(24) NOT NULL,`Passwort` varchar(130) NOT NULL,`Level` int(11) NOT NULL,PRIMARY KEY (`ID`)) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;");

    Dann wird bei der IP '27.961.026.29'


    27
    27.961
    27.961.026 ... verglichen.



    Und wenn ich jetzt 27.961.02 sperren will?
    Dann kann der User bei allen drei Sperrungen problemlos auf den Server.


    Das funktioniert so nicht, außerdem ist das extrem umständlich.
    Was schön in SAMP geht muss auch schön in MySQL gehen.

    Ich soll also wenn ich alle IPs gebannt habe, die mit 27 anfangen, bei einer 16stelligen IP, 14 Querys machen?


    Nee.. also da ist es ja noch besser das ganze mit LOCATE zu machen,
    ist aber auch keine gute Lösung.


    Dafür gibt es bestimmt eine SQL-Funktion, ich finde sie allerdings nicht.



    Dein Code hilft mir nicht wirklich weiter, tut mir leid :S

    Nochmal:


    In einer Tabelle ist folgender Eintrag:


    Code
    Name		IP
    User1		84.200.21


    ALLE User dessen IP mit 84.200.21 anfängt sollen gekickt werden.


    Das funktioniert mit deinem Code.
    Aber was ist jetzt, wenn ich jede IP mit 27. sperren möchte?
    Dann sieht der Eintrag so aus:


    Code
    Name		IP
    User1		84.200.21
    User2		27.


    -> 27.0.0.1 Kick!
    -> 27.27.26.4.2.3.2 Kick!
    -> 27.961.026.29 Kick!
    -> 278.20.70.3 Kein Kick!



    Jetzt funktioniert dein Code nichtmehr.
    Ich brauch einen Universalcode...

    Nachdem keiner versteht wo das Problem liegt hier ein konkretes Beispiel:


    Ich will den User "User1" dauerhaft ausschließen, die letzten 3 Stellen seiner IP änden sich immer,
    wenn er seinen Router neustartet. Seine IP zum Bannzeitpunkt ist: 84.200.21.982


    Also trage ich in die Tabelle folgenden Eintrag ein:


    Code
    Name				IP
    
    
    User1		84.200.21



    Und nun der Code:
    public OnPlayerConnect(playerid)
    {
    new IP[16];
    GetPlayerIP(playerid,IP,sizeof(IP));
    new string[128];
    mysql_format(0,string,"SELECT 1 FROM tabellenname WHERE ...",IP);
    mysql_function_query(0,string,"Detected","i",playerid);
    }


    forward Detected(playerid);
    public Detected(playerid)
    {
    new fields,rows;
    cache_get_data(rows,fields);
    if(rows>0)
    {
    Kick(playerid);
    }
    }




    Jetzt fehlt nurnoch der MySQL-Query ^^

    Danke für deine Hilfe, das funktioniert aber leider nicht..


    Beispiel:
    Ich habe folgende MySQL Tabelle:


    Code
    Name		IP
    
    
    User1		84.200.21
    User2		82.029.283


    Jetzt connected ein User mit der IP '84.200.21.982'.
    Ich möchte nun überprüfen ob ein Eintrag in der Tabelle vorhanden ist.



    Nur wie?

    Hallo,


    ich suche eine MySQL-Funktion mit der es möglich ist nur den gewissen Teil eines Strings zu überprüfen, ählnich wie bei strcmp.


    Beispiel I pawn:
    strcmp("Nur bis hier und nicht weiter","Nur bis hier",strlen("Nur bis hier")) // würde 0 ausgeben


    Beispiel II pawn:
    new rangebanip[16]="161.180.207";
    new IP[16];
    GetPlayerIP(playerid,IP,sizeof(IP)); // IP = 161.180.207.2
    if(strcmp(rangebanip,IP,rangebanip,strlen(rangebanip))==0)
    {
    Kick(playerid);
    }



    Das ganze natürlich nur in einer MySQL-Tabelle mit mehreren Einträgen.


    Für Fragen stehe ich zur Verfügung.



    Dank im Vorraus!
    LG
    Pille

    Eigentlich ganz einfach:


    Beim Einsteigen in das Auto:
    - die aktuelle Position in einer globalen Variable speichern


    In einem Timer (Sekundentimer):
    - die aktuelle Position in einer temporären Variable speichern
    - die Distanz zwischen den beiden Positionen berechnen
    - zu einer globalen Variable dazuaddieren


    Guck mal hier :)

    Ich habe bei der Installation einen Haken reingemacht, sodass der Server mit Windows startet.
    Jetzt funktionierts. Schade, wollte den eigentlich nicht immer laufen haben.


    Problem gelöst, danke trotzdem.

    Hallo,


    kurze Frage:
    Wenn ich einen Preview-Textdraw habe und mit TextDrawSetPreviewRot den Zoom verändere,
    zoomt mir SAMP ja inmitten dieses Textdraws.


    Kann ich nicht nur den oberen Abschnitt anzeigen lassen?
    Bei einem Skin beispielsweise nur den Kopf?


    LG
    Pille

    Guten ABend,


    ich wollte mir auf meinen neuen Computer einen Desktop-MySQL-Server herunterladen,
    jedoch wollte ich nicht XAMPP, wamp etc. benutzen, da ich bereits ein Client habe
    und nur den Server - ohne Zusatzprogramme - herunterladen wollte.


    Also habe ich hier den MySQL-Installer heruntergeladen
    und dort im Setup-Menu nur den MySQL-Server ausgewählt, ohne die anderen Komponente.


    Super - ich konnte mich dannach sowohl mit meinem MySQL Clienten als auch meinem SAMP-Server verbinden!



    Als ich jedoch meinen Computer neugestaret habe, war die MySQL Verbindung weg.
    Ich weiß leider nicht, wie ich den MySQL Server starten kann.



    Ich hoffe mir kann jemand helfen.


    LG
    Pille

    Create3DTextLabel gibt eine Text3D-Variable zurück.


    Beispiel aus der Wiki:
    public OnPlayerConnect(playerid)
    {
    new Text3D:label = Create3DTextLabel("Hello, I am new here!", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
    return 1;
    }

    Allerdings sind das nur X und Y Achse...die Z Achse fehlt ;)


    Für eine Sperre braucht man ja nur die Z-Koordinate des Spielers, + - ein paar Einheiten.


    Man könnte die Funktion etwas umschreiben, haste recht..:


    GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, &Float:z, Float:distance)
    {
    new Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    if (GetPlayerVehicleID(playerid))
    {
    GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    }
    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
    }


    Verwendung:


    new Float:x,Float:y,Float:z;
    GetXYInFrontOfPlayer(playerid,x,y,z,2.0);
    CreateObject(...,x,y,z-0.5,0.0,0.0,0.0);

    GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
    {
    new Float:a;
    GetPlayerPos(playerid, x, y, a);
    GetPlayerFacingAngle(playerid, a);
    if (GetPlayerVehicleID(playerid))
    {
    GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    }
    x += (distance * floatsin(-a, degrees));
    y += (distance * floatcos(-a, degrees));
    }


    Etwas einfacher gehalten.