Beiträge von IPrototypeI

    Nun möchte ich auch das die Leader angezeigt werden die Offline sind könntet ihr mir eventuell Tipps geben wie ich das am schlausten mache?
    mfg.
    Luis


    Solltest du MySQL nutzen so kannst du ganz einfach ein query abschicken und alle leader auslesen und diese mit denen , welche online sind vergleichen. Solltest du jedoch dein Login und Register file basierend sein so müsstest du dieses plugin http://forum.sa-mp.com/showthread.php?t=92246 nutzen und alle Files durchgehen oder die Leader in einem seperaten file speichern.

    Er spuckt nichts aus. 2x den Debug angeschaltet.
    hier mal welches Plugin ich benutze:
    MySQL-R5 Plugin von G-sTyLeZzZ


    du hast schon unter OnGameModeInit


    mysql_debug(true);


    und zwar musst du die Funktion bevor du eine verbindung aufbaust nutzen.


    oder du bindest dieses Callback ein


    public OnQueryError(errorid, error[], resultid, extraid, callback[], query[], connectionHandle)
    {
    printf("%d: %s %s",errorid,error, query);
    return 1;
    }

    Du musst einzelnt ein query ausführen , da das Plugin mit mehreren Befehlen nicht zurechtkommt.


    stock CreateTables()
    {
    new query[1500];
    strcat(query,"CREATE TABLE IF NOT EXISTS `Accounts` (`ID` int(11) NOT NULL AUTO_INCREMENT, `pName` varchar(24), `pPasswort` varchar(24), `pAlter` int(2), `pGeburtsdatum` varchar(20), `pGeschlecht` int(2), `pAdminlevel` int(10), `pFraktion` int(11), `pFrakLeader` int(11),");
    strcat(query,"`pFrakRang` int(11), `pFrakSkin` int(11), `pFrakDuty` int(11), `pBanned` int(12), `pBargeld` int(11), `pKontoguthaben` int(11), `pLastLogin` varchar(60), `pRegDatum` varchar(60), `pWarns` int(3), `pLeben` float(10), PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
    mysql_function_query(DBHandle,query,false,"","");
    mysql_function_query(DBHandle,"CREATE TABLE IF NOT EXISTS `Banned` (`IP` varchar(16) NOT NULL, `Name` varchar(24) NOT NULL, `Grund` varchar(126) NOT NULL, `Admin` varchar(24) NOT NULL, `Zeit` int(25) NOT NULL, `Datum` date NOT NULL, `Uhrzeit` time NOT NULL, PRIMARY KEY (`IP`))",false,"","");
    mysql_function_query(DBHandle,"CREATE TABLE IF NOT EXISTS `FraktionsVerwaltung` (`ID` int(11) NOT NULL AUTO_INCREMENT, `Leader` varchar(24), `Members` int(11), `Kasse` int(11), `Skins` int(11), `Gehalt` int(11), `FrakLimit` int(11), PRIMARY KEY (`ID`))",false,"","");
    return 1;
    }


    den string musst du mit strdel nicht leeren, da bei lokalen variablen sich der Speicher dynamisch genommen und wieder freigegeben wird.


    //edit


    Nebensächlich jedoch anzumerken ist das du mit ; dafür sorgst das ein SQL Befehl damit abgeschlossen ist das ist nach , PRIMARY KEY (`IP`)) nicht der Fall, sowas wird meist auch noch als Syntaxfehler erkannt.

    Ein Tipp vn mir ich würde das streamer plugin dafür verwenden , diese bietet die Funktion
    native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);


    Damit werden Zonen erstellt, diese sind natürlich nicht sichtbar erfüllt den selben Zweck wie die Abfrage isPlayerinArea, jedoch benötigst du keinen Timer.


    forward OnPlayerEnterDynamicArea(playerid, areaid);
    forward OnPlayerLeaveDynamicArea(playerid, areaid);


    Die oben genannten Callbacks, werden aufgerufen , wenn der Spieler eine Zone verlässt, daher kannst du den Spieler zum Beispiel aus dem Aut entfernen oder den Motor des Fahrzeugs ausmachen.


    http://forum.sa-mp.com/showthread.php?t=102865


    Anwendungsbeispiel:


    falls du diese Zonen für etwas anderes auch nutzen möchtest



    new gZones[10];


    gZone[0] = CreateDynamicRectangle(0.0, 0.0, 10.0, 10.0);


    Wenn der Spieler im Auto sitzt
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(IsPlayerInAnyDynamicArea(playerid))return SendClientMessage(playerid,-1,"Dieses Fahrzeug dürftest du nicht fahren");
    }


    oder falls du diese Zonen für etwas anderes auch nutzen möchtest


    if(newstate == PLAYER_STATE_DRIVER) {
    for(new i; i != sizeof(gZone); ++i)if(IsPlayerInDynamicArea(playerid,gZone[i]))return SendClientMessage(playerid,-1,"Dieses Fahrzeug dürftest du nicht fahren");
    }


    public OnPlayerEnterDynamicArea(playerid, areaid) {
    return SendClientMessage(playerid,-1,"Zone betreten");
    }
    public OnPlayerLeaveDynamicArea(playerid, areaid) {
    return SendClientMessage(playerid,-1,"Zone verlassen");
    }

    Ich denke mal du willst darauf hinaus das ich den php tag genutzt habe, allerdings auch nur wegen der schleife ^^


    Naja, meine Antwort hat es nicht genau beantwortet, aber du der aussage was den php tag betrifft , du kannst auch den inhalt den du übergeben willst an ein array übergeben und dieses als templatesvariable registrieren und via foreach- schleife ausgeben. Aber zurück zu meiner Frage, ich hab vor paar Tagen auch angefangen mich mit Templateengines auseinander zu setzen, darunter auch Smarty und mir wurde gesagt das es eine bessere Templateengine gäbe, diese wäre Blade, welches in der Laravel Framework enthalten ist ^^.

    Um die Aussage der count Funktion aufzugreifen ein Beispiel könnte so aussehen.

    <ul class="mainMenuItems">
    {foreach from=$mainMenuItems item=itemID}
    {counter print=false assign=value}
    <li {if $value == 1} class="active" {/if}>
    <a href="#">{$itemID}</a>
    </li>
    {/foreach}
    </ul>


    print steht für eine direkte Ausgabe , via assign kannst du dem counter eine Bezeichnung geben hier value. du kannst jedoch dem counter auch ein anfangswert zuweisen und diesen runter zählen lassen.


    Code
    {counter start=10 skip=2 direction =down print=false assign=value}


    siehe dazu auch
    http://www.smarty.net/docsv2/d…uage.function.counter.tpl


    // Nebenfrage


    Dürfte ich dich Fragen Slash wieso du Smarty verwendest ^^ ?

    Also ich hab auch nur meine Daten, welche variabel bleiben sollten in der Datenbank gespeichert.
    Nach dem auslesen der Daten habe ich diese im dynamischen Speicher abgelegt, dies geht gut mit dem memory access plugin oder mit setproperty. Anschließend ließ ich den Inhalt in regelmäßigen Abständen updaten.

    Habe das bekommen beim "Einfügen":

    Code
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /var/customers/webs/ni543958_2/home.php on line 5 Spieler: Level: Geld: Adminlevel: bool(false) Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in /var/customers/webs/ni543958_2/home.php on line 13 bool(false)

    IPrototypeI:


    Das liegt daran das mysql_query false zurück gibt => Das query konnte nicht ausgeführt werden, daher solltest du dir den Fehler ausgeben mit mysql_error()

    $userSQL = mysql_query("SELECT * FROM `accounts ` WHERE `Name` LIKE 'FerienFreak' LIMIT 1;");
    $user = mysql_fetch_object($userSQL);


    echo("Spieler: ".$user->Name);
    echo("Level: ".$user->Level);
    echo("Geld: ".$user->Geld);
    echo("Adminlevel: ".$user->Adminlevel);


    mysql_free_result($userSQL);


    Sollte nichts kommen bitte die das var_dump($user); einfügen und den Inhalt hier posten.


    //edit eventuell sollte man dazu sagen das man bei echo "Beispiel"; auch direkt die php variable reinschreiben kann ohne den string zu öffnen

    Code
    $example = "Hallo";
    echo "$example Welt";


    Funktioniert jedoch nur bei der verwendung von den doppelten Anführungszeichen bei echo

    bool(false) steht da
    ChristianW:
    Edgar: da steht nichts


    Dir wird keiner richtig helfen können , wenn die Person nicht weiß , ob MySQLi nutzst oder die standart MySQL Funktionen


    da du mit MySQLi eine verbindung aufbaust


    Code
    $verbindung = mysqli_connect("localhost", "*ZENSIERT*", "*ZENSIERT*")
    or die("Verbindung zur Server nicht möglich");


    wenn man 3 Seiten zurück schaut.


    //edit sind 3 Seiten hab mich verschätzt

    @|Prototype|: Ich habe gelesen das man die triangle backgrounds auch mit CSS lösen kann. Sonst wäre das nicht das Problem das eben gleichzuschalten. :) Danke für den Tipp :thumbup:


    Also mir ist bekannt das man ein Dreieck via CSS erstellen kann, aber mehrer hintereinander ohne zusätzliche Elemente zu nutzen darüber weiß ich nix , jedoch falls das funktionieren sollte und du noch zufällig den Link zu der Seite hast , wäre es nett wenn du mir diese mal schicken könntest ^^.

    Als kleiner Tipp, wenn du das Sidepanel mit dieser Grafik belegst, wird dieses beim Coden dank der Grafik etwas ugly aussehen, bedeutet um einen fließenden Übergang zu haben sollte der obere Bereich gleich aussehen wie der untere Bereich.

    Warum werden tabellen nicht erstellt?
    stock CreateTables()
    {
    mysql_tquery(DBHandle,"CREATE TABLE IF NOT EXISTS `friends` (`username` varchar(24), `friend` varchar(24), `accepted` int(11), `sqlidersteller` int(11), PRIMARY KEY (`sqlidersteller`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;","","");
    return 1;
    }


    Also einen Fehler hast du laut http://de.piliapp.com/mysql-syntax-check/ nicht rufst du diese Funktion überhaupt auf ? Gibt es eventuell ein Fehler in der MySQL.log

    Nein hast du nicht ;b Versuch mal if($verbindung = mysql...) { mysql_select_db...}


    Schau das deine Daten richtig sind zu dem wird bei MySQLi die Datenbank direkt bei der funktion mysqli_connect als letzter funktionsparameter hinzugefügt


    Code
    $verbindung = mysqli_connect("localhost", "*ZENSIERT*", "*ZENSIERT*","ni543958_2sql1") or die("Verbindung zur Server nicht möglich");


    Als kleiner Tipp , falls du Funktionen suchst mit beispielen kannst du auch hier nachschauen http://php.net/manual/de


    http://php.net/manual/de/function.mysqli-connect.php


    //edit


    Ich sollte vllt noch erwähnen das du die Funktion nicht einfach mischen darfst , als mysqli funktionen funktionieren nicht so mit den normalen mysql funktionen die php bietet.

    Kaliber: Ich melde mich bei dir :)


    IPrototypeI: Nicht schlimm wenn's nicht Online ist, habe mega guten Kontakt mit Slice bzw. bin auf allen seinen Servern Admins könnte den Notfalls fragen..


    Hätte da noch ne Frage, ist es Möglich die 0.3.7 Objekte auf einem Server zu verwenden nachdem man sie in einem Script eingefügt hat, in einer älteren Version zu benutzen?


    Nee das geht leider nicht da die Objekte sich in der custom.txd sich nicht befinden.