Beiträge von Goldkiller

    Habe so ein Ungleichung auch noch nie gesehen. Ich kenne es nur mit Beträgen oder kleiner/größer Vergleichen . Ich denke daher auch,dass er die Aufgabe falsch abgeschrieben hat.

    Zitat

    Wikipedia:
    Jede Ungleichung besteht aus zwei Termen, die durch eines der Verhältniszeichen < (Kleinerzeichen), ≤ (Kleinergleichzeichen), ≥ (Größergleichzeichen) oder > (Größerzeichen) verbunden sind.


    Jedenfalls solltest du es bei oberprima lernen können. Habe die Seite früher auch häufig genutzt.

    GetVehicleParamsEx(vid,engines,lights,alarm,doors,bonnet,boot,objective);
    if(lightss == VEHICLE_PARAMS_OFF || lightss == VEHICLE_PARAMS_UNSET)

    Benutz mal bessere Namen für die Variablen. Die Namen lights und lightss sind schwer zu unterscheiden ;).
    Die Variable lights scheint bei dir aber Global zu sein.

    Was für ein Script versuchst du denn da in deines einzubauen ?

    Zitat

    //Goldkiller: Du hast die richtig durchnummeriert ? Zeig uns doch noch mal ein paar Zeilen darüber bzw darunter ( zusätzlich ).


    Zeile 1 - 12 ist nämlich völlig unrealisitisch für den Code, da mindestens vorher noch Include kommen muss und das Callback.


    Kannst du bei "Weiterführung des Scripts" nicht einfach via Kommentar die Zeilen mit den Fehlern markieren ?
    So:
    new bla = 5 // <--- Fehler < markieren >

    Er vergleicht an der Stelle ja auch keinen String, sondern lediglich den Character ( Quasi Char )


    'b' = Der Buchstabe b als Character ( ASCII 98 )
    "b" = Der String mit dem Text b


    Ob jetzt
    if( irgendwas == 'b' )
    // oder
    if( irgendwas == 98 )
    ist egal. Am Ende ist es identisch.


    Im Endeffekt hat [DMT]Silent die Zeilen mit den Fehlern sowieso nicht markiert.


    //Edit:


    Auch an folgender Stelle ist es nicht korrekt:
    [/font][/color]
    if(inputtext[8] != '\0')


    Übrigens, Strings können mit Integer-Werten verglichen werden,
    aber nicht mit anderen String durch den Operator ==.
    :thumbup:


    Quatsch.
    Natürlich kann man auf '\0' abfragen. '\0' bedeutet soviel wie "EndOfString" und hat den ASCII Wert 0 , Null character.
    In dem Fall wäre es egal auf '\0' oder 0 abzufragen.

    Dann ist die Tabelle vllt leer.

    Zitat

    wenn ich einen mysql_query(); Befehl noch in die while- Schleife reinpacke folgende Meldung:


    Warum solltest du das überhaupt machen ? Würde sowieso nicht funktionieren und spiegelt aber auch nicht den von dir geposteten Code wieder.



    Zitat

    while (mysql_fetch_row(data))
    {
    mysql_fetch_field("houseID", houseID); // <-- macht keinen sinn
    mysql_fetch_field("owner", owner); // <-- macht keinen sinn
    mysql_fetch_field("level", houseLevel); // <-- macht keinen sinn ... usw usf


    Wie Mellnik bereits geschrieben hat,könntest du mit sscanf data aufteilen. Alle Informationen stehen im String data.
    sscanf(data,"p<|>sdsdsdsdsdsdsdsd", .... )


    //Edit:
    Okay,sehe jetzt erst du hast tatsächlich in der while-Schleife ein mysql_query.
    Das kannst du dort nicht machen.

    Zitat

    mysql_query("UPDATE houses SET price = price + 1 WHERE houseID = 2");


    Ich hatte irgendwo mal ausführlich beschrieben wieso,finde den Post aber gerade nicht.
    Kurz gesagt, führst du dort einen SQL Befehl aus ( mysql_query ) ,wird dein altes Ergebnis überschrieben.Du speicherst zwar das Ergebnis nicht ( store_result ) , anscheinend geht aber das alte Ergebnis verloren.
    Ganz sicher bin ich mir aber dabei auch nicht.


    Da dein Query sowieso mehr oder weniger statisch ist, mach es doch einfach nach der while-Schleife.

    new timestamp = gettime(); // <---
    new tbanzeit = SpielerInfo[playerid][pTimeban];
    if(timestamp > gettime()) // <---

    Macht natürlich nur sehr sehr wenig Sinn.


    Du solltest tbanzeit gegen timestamp prüfen.

    Das sieht soweit eigentlich richtig aus.
    Ich würde mir als nächste einfach mal kompletten Query ausgeben lassen.


    In der Funktion mysql_setint()

    format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    print(query); // <---
    mysql_query(query);

    Füg mal ein print hinzu für's Query. Dann kannst auch selber den mal versuchen an der Datenbank auszuführen ( phpmyadmin o.Ä. ). Poste ihn aber auch einfach mal hier.


    Ok Quatsch.


    mysql_SetInt("accounts", "Timeban", timestamp, "Name", sName(playerid));
    SavePlayer(pID); // <--- REFERENZ ***

    mysql_SetInt("accounts", "Timeban", SpielerInfo[playerid][pTimeban], "Name", SpielerInfo[playerid][pName]); <-- REFERENZ ***
    Du überschreibst den alten Eintrag wieder direkt. Du müsstest wohl noch den Timeban in die Variable des Spielers ( SpielerInfo ) schreiben.


    Scroll auch mal nach rechts,da ist noch eine Anmerkung bei der Zeile mit sscanf.

    Ob es auch mit Objekten funktioniert die durch das Skript erstellt wurden,keine Ahnung. Vom Prinzip her müsste es aber funktionieren.
    Kannst es ja mal ausprobieren. Gleiche Position wie die Umkleide nur eine andere InteriorID. Lässt am besten die Seite wo der Spiegel wäre offen.


    Goldkiller: ist das forum nicht dafür gedacht hilfe beim scripten zu bekommen aber du machst dich nur über ihn lustig das er nicht scripten kann. find ich scheisse !


    Hab ich etwa nicht geholfen ? Wie kommst du darauf ? Nur weil ich keine fertige Lösung gepostet habe ? Hast du doch auch nicht getan.


    Ich mache mich auch nicht über ihn lustig. Es ist nur sehr frakwürdig,wieso er seinen eigenen Code nicht versteht. Die Lösung ist leicht umzusetzen, da siehst du wohl auch.
    Er ist aber hier gefordert und nicht Andere User. Der Bereich Scripting Base ist kein "Hey,mach mir die Lösung bitte fertig". Hier wird Hilfe bei der Problemlösung angeboten, genau das habe ich getan. Ob du das scheisse findest ist mir egal. Man lernt indem man Probleme selber löst, nicht Anders.


    In Bezug auf Einladung/Einladender gebe ich dir aber recht.


    Du verstehst also deinen eigenen Code nicht ?
    Wäre definitiv für dich angebracht sich nochmal die Grundlagen der Programmierung genau durchzulesen. Wenn du deinen eigenen Code nicht mal verstehst, wie soll man dir helfen :| .


    Bist du dir da ganz sicher mit "<=" ?
    Ich würde das nochmal überdenken. Denn wieso sollte ich Admin sein, wenn 1 doch kleiner ist als 4 :-O.


    Die 10 bei strcmp ist übrigens nicht richtig. Dort müsste 6 hin, denn /ahelp sind 6 Zeichen



    Zitat

    if(SAccount[playerid][Adminlevel] = 1))


    Weil das sowieso falsch ist.
    1. Vergleicht man mit == .
    2. Eine Klammer zu viel.

    Ich mach dir den Code definitiv nicht fertig.
    Du hast den Code bereits teilweise /invite , musst ihn nur richtig umdrehen.


    Zitat

    Einladender[pID] = playerid;


    Wo liegt denn jetzt das Problem den Wert auslesen den du dort ( ^ Code hier drüber ) benutzt um ihn weiter zu verarbeiten ? Du willst doch die "playerid" auslesen, die sich hinter der Variable des Spielers verbirgt der /annehmen bzw /ablehnen eingibt.


    Ja, ich vermute du hast die Grundlagen nicht drauf.

    Wie löst du was ?
    Ich hab dir die Fehler doch genannt. Die zu beheben sollte doch kein Problem sein. Für denn Fall du verstehst es doch nicht, was verstehst du nicht.


    Zitat

    Darf der Spieler mit der ID 0 etwa niemanden Einladen ? Benutzt für ungültige Spieler ID's INVALID_PLAYER_ID. Damit gibt es keine Verwechslung oder Probleme.


    INVALID_PLAYER_ID soll bedeuten,dass kein Spieler den Spieler eingeladen hat. Denn zZt ist bei dir ID 0 ungültig und bedeutet,dass man von Niemanden eingeladen wurde.


    Zitat

    Bei /ablehnen und /annehmen benutzt du teilweise die Variable pID. Du weist dieser Variable aber nie einen Wert zu. Daher ist pID immer 0. Dort müsste der Fehler liegen.


    Du benutzt pID obwohl du niemals sagst,was pID sein soll. Überleg doch mal,was bei dir bei /ablehnen und /annehmen pID sein soll. Eventuell der Spieler, von dem man eingeladen wurde ?!

    Zitat

    if(Einladung[pID]!=0)return SendClientMessage(playerid,Gelb,"[Info]: Der Spieler wurde schon eingeladen!");


    Darf der Spieler mit der ID 0 etwa niemanden Einladen ? Benutzt für ungültige Spieler ID's INVALID_PLAYER_ID. Damit gibt es keine Verwechslung oder Probleme.
    Bei /ablehnen und /annehmen benutzt du teilweise die Variable pID. Du weist dieser Variable aber nie einen Wert zu. Daher ist pID immer 0. Dort müsste der Fehler liegen.

    Ich versteh nicht wirklich den Sinn dahinter.
    Wenn ich also /skaufen mache und auch in der nähe von einem Binco bin,dann werden 20 neue Klassen hinzugefügt. Die sind aber für jeden Spieler vorhanden und jeder kann sie nutzen. Probier ich nochmal /skaufen aus,werden wieder 20 neue Klassen hinzugefügt. Ich hätte jetzt also mindestens 41. Jeder würde diese Klassen sehen und du kannst sie auch nicht mehr löschen. Was bringt mir also dieses "Skinauswahl" ? :|