Beiträge von d0ma

    Schön! Damit kann jeder wieder euren Server wie früher mit unsichtbaren Spielern auffüllen, damit niemand mehr den Server betreten kann (wegen "Server is full" Meldungen)


    Die richtige Lösung ist ein Timer, ende.


    Zudem solche Meldungen die kommen sind wichtig später für rechtliche Zwecke...


    Immer dieser "rechtliche" Blödsinn.

    Sehr unsicher umgesetzt, folgendes Beispiel:

    • Ein Spieler will sich einloggen und die mysql_query wird abgesendet (Threaded: Also arbeitet das ganze im Hintergrund, während der SA-MP Server weiter arbeitet)
    • Der Spieler geht nun Offline (Beispiel: ID = 5)
    • Ein anderer Spieler kommt online ( ID = 5 )
    • mysql_query vom ERSTEN Punkt wird nun fertig gestellt und ruft das Callback in PAWN für ID = 5 auf (zur Verarbeitung des Ergebnisses)
    • KABOOM ID = 5 ist ein ganz anderer Spieler! Du hast keine Überprüfung dafür, ob es sich noch um den selben Spieler nach Fertigstellung der Abfrage handelt
    • Account wurde erfolgreich gehackt


    Kann schnell passieren, sobald der mysql Server mal etwas langsamer reagiert

    backcolor = hintergrundfarbe -> http://wiki.sa-mp.com/wiki/SetObjectMaterialText


    Du meinst wohl diese hier:
    # Blank planes for text signs
    19475, Plane001, signsurf, 300, 2097284
    19476, Plane002, signsurf, 300, 2097284
    19477, Plane003, signsurf, 300, 2097284
    19478, Plane004, signsurf, 300, 2097284
    19479, Plane005, signsurf, 300, 2097284
    19480, Plane006, signsurf, 300, 2097284
    19481, Plane007, signsurf, 300, 2097284
    19482, Plane008, signsurf, 300, 2097284
    19483, Plane009, signsurf, 300, 2097284

    Muss ich wohl weiter ausholen das die Callbacks verstanden werden


    OnPlayerTakeDamage (funktioniert nicht für Bots)
    = Ein Spieler meldet dem Server, das er auf seinem eigenen Bildschirm von einer Kugel getroffen wurde
    Dies funktioniert bei BOTS/NPCs nicht, DA diese keine Schüsse registrieren


    OnPlayerGiveDamage (funktioniert für Bots)
    = Der Schütze meldet dem Server, das er auf dem eigenen Bildschirm einen Spieler/NPC-Bot getroffen hat.
    Die Betonung liegt GANZ stark auf *Der Schütze meldet*... und hängt deswegen überhaupt nicht von NPCs/Bots ab.
    Folge: OnPlayerGiveDamage funktioniert für NPCs

    Nein soviel ich weis wird OnPlayerTake/Give Damage bei Bots nicht ausgeführt benutz mal die SuFu du wirst sicherlich nicht der erste sein der diese Frage gestellt hat.


    Falsch...


    OnPlayerGiveDamage (Give = Geben = Wird vom Angreifer ausgeführt)
    und kann damit perfekt dafür verwendet werden ;)

    Y_ini wird meiner Meinung nach bei so gut wie allen Verwendungen in SA-MP schneller sein ;)


    Höchstens mit den aller neusten MySQL Versionen (threaded, cache, etc) könnte es möglich sein da ran zu kommen.
    Wenn man MySQL falsch verwendet kann es auch 1000000 langsamer sein :p



    Suchen/Updaten/Stats und all diese Vorteile von MySQL werden hier ja nicht diskutiert

    Hat jemand ne Funktion, mit der ich mit Hilfe von 2 Punkten die Angle raus bekomme?
    Also wenn ich X1,Y1,X2,Y2 angebe, will ich wissen was die angle wäre um von (x1/y1) zu (x2/y2) zu schauen.


    im Endeffkt kann man das berehnen, will aber die Funktion nicht neuschreiben wenn es die schon gibt.


    ZAngle, so dass Punkt1 richtung Punkt2 gedreht ist ?


    Float:GetZAngle(Float:fX,Float:fY,Float:tX,Float:tY)// f = From, t = To
    {
    return atan2( floatsub(fX, tX), floatsub(fY, tY) ) + 180.0;
    }

    Nabend.
    Eine Frage habe ich die mich schon länger beschäftigt.
    Warum ist hier im Breadfish so viel los und im offiziellen Deutschen Forum nicht? Was macht @d0.: anders als ihr hier? Warum ist dort nicht die Useranzahl vertreten wie hier, obwohl es ja das ofizielle Forum ist? Das würde mich mal interessieren.


    Weil dieses hier einfach schon viel viel länger existiert und an dieser Situation wird sich denke ich auch nichts ändern. Mein Sinn war nicht nicht 300 Leute auf dem von forum.sa-mp.com verlinktem Forum online zu haben ;)

    alles Schwachsinn... ;)


    es ist definitiv möglich, so wie du es gesehen hast!


    Und zwar folgendermaßen:
    public OnPlayerGiveDamage(...)
    das ist auch schon alles!


    OnPlayerGiveDamage: (orginal Schuss) Wird aufgerufen wenn der Schuss auf dem eigenen(Angreifer) Bildschirm trifft
    OnPlayerTakeDamage: (Schuss mit Verzögerung) Wird aufgerufen wenn der Schuss auf dem Gegner-Bildschirm trifft


    Mit dem wissen ergibt sich folgende Idee:

    • Alle Spieler mit SetPlayerTeam in das selbe Team setzen (Spieler können sich gegenseitig nicht mehr verletzen)
    • Schaden nun einfach mit OnPlayerGiveDamage handeln ;)


    (zu beachten ist, dass bei OnPlayerDeath die killerid manuell gescriptet werden muss)

    1. Warum sollte man sowas machen ?


    2. Einfach die Funktionsnamen ersetzen bringt NULL... es muss der ganze Aufbau umgeändert werden (komplett)


    viel Spaß


    Eine frage, benutze die PlayerTextdraws mit "new PlayerText:tScore" nicht wie im Wiki mit "new PlayerText:tScore[MAX_PLAYERS]" aber alles klappt super ohne fehler, weißt du villeicht wieso?


    das funktioniert nur solange ALLE textdraws in der GLEICHEN Reihenfolge für JEDEN Spieler erstellt werden.


    TextDraw A -> id 0
    TextDraw B -> id 1
    TextDraw C -> id 2


    sofern alle PlayerTextDraws nur in OnPlayerConnect erstellt werden ist das mit der gleichen Reihenfolge gegeben... wenn jetzt aber einzelne PlayerTextDraws für Spieler später durch Commands( etc. ) erstellt werden ist die gleiche Reihenfolge der IDs in Gefahr


    deshalb verwendet man lieber [MAX_PLAYERS] und ist auf der sicheren Seite


    so eher:
    erst vehicleid mit GetPlayerVehicleID holen und diese dann in GetVehicleModel verwenden :rolleyes:
    if(newstate == PLAYER_STATE_DRIVER)
    {
    if(GetVehicleModel( GetPlayerVehicleID( playerid ) ) == 462)
    ShowPlayerDialog(playerid, DIALOG_RENTROLLER, DIALOG_STYLE_MSGBOX, "Rollervermietung", "Möchtest du diesen Roller für 5$ mieten?","Ja","Nein");
    }
    unter OnPlayerStateChange


    php ?

    PHP
    $test = $item . " " . $plow . " " . $sit;


    Der Punkt verbindet jeweils die einzelnen Teile