[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Hey gibt es eine Möglichkeit Fahrzeuge tiefer zu legen? Also sozusagen auf den Boden zu drücken habe etwas vor.
    http://prntscr.com/l9heir zu http://prntscr.com/l9heof
    Habe schon überall geguckt habe nichts gefunden.


    So in der Art das manche Fahrzeug wenn sie geschlossen und unbesetzt sind so tief liegen und wenn man es öffnet und einsteigt fährt der Wagen hoch.
    In der Art wie der neue Audi A8. Ich bezweifle aber das man so etwas machen kann.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • sind so tief liegen und wenn man es öffnet und einsteigt fährt der Wagen hoch.

    Also es ist möglich, dass das Auto so tief liegt, das kannst du durch die Gravity erreichen.


    Allerdings ist das nicht trivial und hat einiges an Folgen mit sich xD


    Musst mal nach SetPlayerGravity suchen, vielleicht findest du ja was, ansonsten teste es mit der globalen xD


    Wenn du diese erhöhst, dann zieht sich das auf jeden Fall so runter und wenn die sie normal machst müsste das Fahrzeug wieder hoch gehen.


    Aber glaube das ging nur, wenn auch jemand im Fahrzeug saß.


    Ansonsten mal schauen wie das ist, wenn du die Reifen kaputt machst, sieht man dann einen Unterschied?


    Wenn beide meiner Ideen zu nichts führen, dann fällt mir keine weitere Möglichkeit dafür ein, leider.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Schade, es muss wirklich einer im Fahrzeug sein, sonst wäre das zu geil würde es SetVehicleGravity geben.
    Da jemand im Fahrzeug sitzen muss wird das nicht gehen, manchmal hat man so gute Ideen und man kann sie nicht umsetzten.
    Trotzdem ein sehr großes Dankeschön das du mir alles erklärt hast.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Moin Leuts,


    ich hab mal eine Frage...



    Funktioniert nicht wirklich ... Wenn ich Manuell unter OnGameModeInit:


    Code
    printf("%s", GetNameFromDB(1));

    kommt der richtige Name bei raus, wenn ich allerdings...



    Code
    GetNameFromDB(bInfo[i][biz_owner])



    nehme, dann funktioniert das mit dem Namen nicht. Letzendlich steht hinter dem bInfo[i][biz_owner] auch eine 1...


    MfG
    XonarZ

  • Nutze mysql_query anstatt mysql_pquery. Empfohlen ist das aber nicht, auf Grund der Performance

    Wenn ich das mit mysql_query mache, dann findet er die Biz namen nicht mehr^^


    Mysql Log:


    Das geht bis invalid row index '21' (sind ja 22 Einträge)



    Ich hoffe das dies jetzt keine "Große" Scripting Frage wird ...


    MfG
    XonarZ

  • Das ist doch jetzt ein ganz anderer Code. Wie stehen diese in Verbindung miteinander?

    Ganz Einfach, der Besitzer wird als Integer Gespeichert (Die Datenbank ID vom User). Ich möchte nämlich den Namen nicht als String speichern aus dem Grund, wenn sich jemand bsp. als "Niemand" Registriert und ich frage ab ob der String = Name ist, dann gehört diesem JEDE Biz bzw. ist überall Teilhaber. Somit möchte ich mit der Datenbank ID vom User arbeiten.


    Ich lade erst die Bizzen und da bei OnLoadBiz der Name aus der Datenbank (GetNameFromDB) aufgerufen wird um den Namen des eingetragenen Integers abzufragen Sprich welcher Name steckt hinter der Datenbank ID bsp. 1


    MfG
    XonarZ

  • Ganz Einfach, der Besitzer wird als Integer Gespeichert (Die Datenbank ID vom User). Ich möchte nämlich den Namen nicht als String speichern aus dem Grund, wenn sich jemand bsp. als "Niemand" Registriert und ich frage ab ob der String = Name ist, dann gehört diesem JEDE Biz bzw. ist überall Teilhaber. Somit möchte ich mit der Datenbank ID vom User arbeiten.
    Ich lade erst die Bizzen und da bei OnLoadBiz der Name aus der Datenbank (GetNameFromDB) aufgerufen wird um den Namen des eingetragenen Integers abzufragen Sprich welcher Name steckt hinter der Datenbank ID bsp. 1


    MfG
    XonarZ

    Das lässt sich deutlich einfacher mit einem LEFT JOIN verwirklichen. Dann kannst du dir das zusätzliche ermitteln des Namens sparen. Müsste in etwa so aussehen:



    SQL
    SELECT biz_tabelle.*, user.username FROM biz_tabelle LEFT JOIN user ON user.id = biz_tabelle.biz_owner

    user.username musst du noch an deinen Spaltennamen anpassen + per cache_get_value_name() dir den username holen.

  • Das lässt sich deutlich einfacher mit einem LEFT JOIN verwirklichen. Dann kannst du dir das zusätzliche ermitteln des Namens sparen. Müsste in etwa so aussehen:

    Ich habs nun so:



    Code
    new query[512];
    			mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte LEFT JOIN user ON geschaefte.biz_owner = user.id");
    			mysql_query(handle, query);
    			cache_get_value_name(0, "name", inhaber, MAX_PLAYER_NAME);


    Als ergebnis kommt allerdings "NULL" Raus ... woran könntes das liegen ? Ich hab mir den Query mal printen lassen:


    Code
    1 // <- das ist die Owner ID sprich in der user tabelle user.id 1 = Mein Name
    [13:45:54] SELECT * FROM geschaefte LEFT JOIN user ON geschaefte.biz_owner = user.id

    Ich arbeite in PHP selten (vielleicht sollte ich das mal ändern) mit LEFT JOIN daher ist das neuland für mich.


    Poste bitte den Code dazu, sonst ist das Problem nicht nachvollziehbar.

    Welchen genau meinst du ? von OnLoadBiz?:



  • @XonarZ: Das Statement hat weniger mit PHP, sondern mehr etwas mit SQL / mySQL zu tun :).


    Den Query den du oben ausgibst muss auch an eine andere Stelle hin. Nämlich dort, wo der Query für OnLoadBiz() aufgerufen bzw. gesendet wird. Irgendwo muss ja ein Code-ähnlicher Teil wie:



    Code
    mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte");
    	mysql_pquery(handle, query, "OnLoadBiz");

    sein, dort den Query mit den oberen ersetzen. Dann kannst du, wie deine anderen Werte gemütlich per cache_get_value_name*() aus den einzelnen rows ziehen.

  • noch ne idee?

    Dein Problem musst du schon etwas konkretisieren. Was ist immer 0? cache_get_row_count() oder gibt OnCarKeyCountCheck() immer 0 zurück? Schon mal versucht den Query manuell per phpMyAdmin auszuführen und zu schauen, ob und wie viele Zeilen du zurückbekommst? Alternativ, versuch mal die Funktion cache_num_rows() zu verwenden (weiß nicht, ob es diese Funktion bei deiner MySQL BlueG Version gibt).

  • Interior ( Ein & Ausgänge ) Probleme

    Sobald ein Spier das Ballas Interior betritt, welches derzeit ( noch "alle" die ID & Koordinaten vom CJ Interior besitzen, ) spawnt der Spieler beim heraus gehen an der "Grove Street" Base.
    Er soll ja "eigentlich" an dem Ballas Icon ( Draußen ) Spawnen, wie es im Code deklariert ist. !!!!!

    Muss ich überall noch die VirtuellenWelten auf 0 setzen, oder soll ich das System wie Mr.Monat als "Enum" System schreiben ?
    @Jeffry Villeicht kannst du mir ja helfen ? :D

  • Muss ich überall noch die VirtuellenWelten auf 0 setzen

    Ja, sonst sehen sich die Spieler danach nicht mehr.


    Außerdem, und daher der Fehler, musst du zusätzlich beim jeweiligen Ausgang, die virtuelle Welt abfragen.
    Beispiel:
    else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422)) // Grove Street Ausgang
    zu:
    else if(IsPlayerInRangeOfPoint(playerid,2.0,2495.9133,-1692.0834,1014.7422) && GetPlayerVirtualWorld(playerid) == 1) // Grove Street Ausgang



    soll ich das System wie Mr.Monat als "Enum" System schreiben ?

    Das wäre natürlich schöner und gegebenenfalls dynamisch aufbaubar, bei den bisher drei Ein-/Ausgängen aber auch nicht wirklich notwendig. Je mehr es werden, desto besser wäre es.