Beiträge von max93

    habe eine while schleife eingebaut,

    Code
    x=1
    y=1
    while x = 1 do
    if (Table[y].Spalte) then
    y=y+1
    [weiterer Code, nicht relevant...]
    else x=0 end
    end
    outputChatBox ("Es sind ".. y .. " Spalten mit dem Wert vorhanden")

    Die Funktion funktioniert, am Ende bekomme ich in der ChatBox den Wert 3 ausgegeben, bekomme aber immer (wenn die Schleife versucht, das 4. mal durchzulaufen) einen "attemt to index field [?] a nil value" error

    Ich finde, es bringt nix, noch ein forum zu erstellen... Oder muss ich ab jetzt alle fragen doppelt stellen?
    Einmal hier und einmal dort?
    Lasst uns alle hier bleiben, und wenn du einen vorschlag zur erweiterung dieses Forums hast, dann poste es doch einfach unter vorschläge... Das bringt mehr:)

    Hört sich blöd an, aber ist ernsthaft gemeint. Ich habe keine Ahnung, was man mit einem Clienthack alles machen kann, habe mir das bis jetzt so vorgestellt, dass man die Clientscripts angezeigt bekommt, und diese dann editieren kann. (Bzw. während man in einem Server ist, die Scripts ändern und neu laden lassen. Die Scripts finde ich, aber wenn ich sie änder, passiert nichts. Und wenn ich sie speicher und neu connecte, werden sie wieder überschrieben:P)

    Ich finde bis jetzt nur Sobeit, aber damit kann man ja nicht ein schon vorhandenes Clientscript verändern, oder???

    Code
    function giveWeaponfunc (player, command)
    giveWeapon(player, 31)
    end
    addCommandHandler("giveWeapon", giveWeaponfunc)


    Getestet, klappt.

    Man darf eine Function nicht nach einem Command benennen.
    Functions namens

    function createVehicle()
    function createPed ()
    function giveWeapon ()

    führen zum stack overflow.

    naja, er könnte das ganze ja so umdrehen, dass er NIE schaden bekommt:/
    EDIT:

    Ich schaffe es immer noch, einen Spieler trotz diesem Script, mit einer Bombe zu töten...

    Im Admin Panel kann man ja Skins ändern. Wenn jemand stirbt, ändert man einfach seinen Skin und er steht wieder da. Wie funktioniert das denn?
    Wenn ich setElementModel mache, dann wird der Spieler neu "gespawnt" und fällt aber sofort wieder tot um. Auch mit setElementHealth (source, 100) fällt er um...

    function Damaged ()
    Player = source
    Health = getElementHealth(Player)
    outputChatBox (Health)
    if (Health < 20) then
    setElementHealth (Player, 20)
    else outputChatBox (Health) end
    end
    addEventHandler ( "onPlayerDamage", getRootElement(), Damaged )


    Habs auch mit "onPlayerWasted" und setElementModel versucht, klappt ja so im Admin Panel. Leider blicke ich bei dem leider nicht durch, die Funktion "setElementModel" gibt es dort nur einmal und zwar für Fahrzeuge. Wie da der Skin geändert wird, weiß ich nicht, aber man wird ja sozusagen neu gespawnt, wenn man den Skin ändert, und das Leben wird auf 100 gesetzt...

    Also entweder ich habe das falsch verstanden, oder du.
    Hier ist meiner Meinung nach nur das Clientseitige Script zu sehen, falls u jetzt meinst, es müssen 3 Variablen hinter dem triggerServerEvent stehen.
    Und ansonsten ist da doch alles richtig, im serverscript muss nur das Event "triggerEvent" geadded und zugeordnet sein.

    function fenster(car, owner, clickedElement)
    fenster = guiCreateWindow(0.4, 0.4, 0.2, 0.2, "Das Fenster", true)
    ownerLabel = guiCreateLabel(0.05, 0.1, 0.5, 0.5, "Besitzer: "..owner, true, fenster)
    car1 = car
    clickedElement1 = clickedElement
    --[...]

    guiSetVisible(fenster, true)
    addEventHandler("onClientGUIClick", btnAbschliessen, aFunction, false)

    end
    addEvent("gotInfo", true)
    addEventHandler("gotInfo", getRootElement(), fenster)

    function aFunction()
    triggerServerEvent("triggerEvent", getRootElement(), clickedElement1, car1)--die ganzen variablen haben alle einen "nil" wert, muss aber der aus function "fenster" sein
    end
    addEventHandler("gotCarInfo", getRootElement(), aFunction)


    Änderungen:
    1. Das Label darf nicht owner heißen, ansonsten überschreibt es den Owner mit dem String des Besitzers.
    2. Nach dem onClientGUIClick muss am ende ein false stehen, ansonsten wird das event immer getriggert, sobald man irgendwohin ins gui klickt.
    3. Die lokalen Variablen werden in globalen variablen neu gespeichert und sind somit auch in der anderen funktion verfügbar.

    Poste doch auch mal das clientseitge script. Vielleicht sitzt du auch im falschen vehicle... Hast du das debugscript aktiviert?