Beiträge von German Ice

    Ansonsten sei gesagt, das man es natürlich nie allen Recht machen kann. Es wird keiner gezwungen auf dem Server zu spielen aber vlt hat man sich schon etwas dabei gedacht als man den Server gemacht hat.

    Würde ein

    Code
    1. pc.setqf("horselevelup", run)

    setzen, die ganze Quest über, diese dann am Ende löschen bzw auf 0 setzen...

    solang jetzt horselevelup auf run ist, kannst du am anfang der Quest per Abfrage den Timer neu setzen.
    Das bewirkt: Spieler bekommt kick und quest kann neu gestartet werden. Ist nicht der optimale fix für dein Problem aber es ist eine Lösung.
    Ich weiß das es verschiedene Timer gibt, vlt ist das der Fehler in deiner Quest, da kenne ich mich aber auch nicht so gut aus. Sollte sich aber einiges zu finden lassen. :)

    Hi.


    Code
    1. pc.setqf("bogikill", 30)
    2. q.set_counter("kills", 30)

    Damit setzt du einen festen Wert, also das ganze am besten über dem Bereich einbinden wo die Abfrage für den Kill gemacht wird.


    Code
    1. local count = pc.getqf("bogikill") - 1
    2. if count <= 30 then
    3. pc.setqf("bogikill", count)
    4. q.set_counter("kills", -count)
    5. end

    Das unter die When Bedingung für den Kill.


    Somit hast du schon mal erreicht das der Kill zählt.
    Wegen der Zeit:

    Hab nur kurz über deine Quest geschaut, aber ich meine dir fehlt der Wert für den Timer. Du brauchst ja was mit dem der Timer arbeiten kann.

    Code
    1. pc.setqf("limit_time", get_time()+30*60)


    Hoffe ich konnte dir etwas helfen. Wenn jetzt noch Klarheiten sein sollten kannst du mich gern anschreiben, dann beseitige ich die gern. :D

    ist das problem immer noch ?

    Hi, ja. Inzwischen habe ich aber glaub ich den Fehler gefunden, weiß nur noch nicht wie ich es in die Quest einbinde so das es dann auch funktioniert.
    Das GM_SKILL ... ist nicht definiert, so wie es DickeRatte vermutet hat. Allerdings nicht in der locale.lua, man kanns in der Quest selbst definieren.

    locale.lua im quest ordner nach "GM_SKILL_NAME_DICT" suchen halt kolleje da wird ein skill nicht definiert sein

    Die einzigste Datei in der ich "GM_SKILL_NAME_DICT" finden kann ist die questlib.lua und halt die Quest... Und was in der Questlib steht habe ich oben schon gepostet im "Code" :(

    Hallo,

    bekomme bei der grandmaster_skill.quest folgenden Fehler:

    Syslog:

    attempt to index field `GM_SKILL_NAME_DICT' (a nil value)


    Syserr

    RunState: LUA_ERROR: ...ermany/quest/object/state/training_grandmaster_skill:11: attempt to index field `GM_SKILL_NAME_DICT' (a nil value)

    SYSERR: Feb 3 12:56:55 :: WriteRunningStateToSyserr: LUA_ERROR: quest training_grandmaster_skill.start click


    Bin darauf gekommen das es evtl. die Funktion sein könnte... diese ist hier:


    Leider komme ich nicht weiter. Ich finde einfach den Fehler nicht. Könnt Ihr mir einen Tip geben?

    Kleiner Fehler, natürlich sollte da a == 1 stehen, tut aber nicht viel zur Sache, weil auch wenn da die 1 steht, die Funktion tut trotzdem nichts. Ich bekomme also auch dann nicht den Verkaufspreis meines Items angezeigt.


    Habe den Code nochmal etwas verändert, geht aber trotzdem nicht :(

    Code
    1. elseif a == 1 then
    2. local vnum = item.get_vnum()
    3. local queryresult = game.mysql_query("SELECT shop_buy_price FROM dev_player.item_proto WHERE vnum == '"..item.get_vnum().."';")
    4. for i,dataset in ipairs(queryresult) do
    5. chat(dataset[1])
    6. end
    7. end

    Hallo zusammen,


    vlt könnt Ihr mir helfen, komme mit der Suche nicht weiter.


    Aufgabe:
    Item auf NPC ziehen und die Auswahl zwischen Zerstören und Verkaufen treffen

    Item soll bei Verkauf verkauft werden ;)


    Problem:

    Um das Item zu verkaufen, benötige ich den Preis aus der Datenbank. Hier komme ich leider nicht weiter.

    Hier mal die Quest

    Ich vermute das meine Abfrage falsch ist, zumindest an der Stelle wo "..item.get_vnum().." steht. Ich weiss aber auch nicht wie ich die vnum des Items sonnst in die Abfrage übergeben kann.

    P.S.

    Die Quest ist schon mit hilfe der Suchen Funktion auf Google erstellt worden, daher say_title("Hier....") Zum testen sollte es also den Preis erstmal nur ausgeben.


    Vielen Dank im Voraus.

    Vielen Dank ihr beiden.


    Iwie hat es mir scho geholfen, dachte erst das man den Index iwie von 410004 auf 410000 setzen kann, was aber wohl nicht geht.

    So habe ich es etwas anders gelöst wie vorgeschlagen


    nimm für oben

    Code
    1. when 101.kill with pc.in_dungeon() and pc.get_map_index() >= 410000 and pc.get_map_index() < 410000 begin

    habs so gemacht >= 410000 and <=411000.


    Ist vielleicht nicht der eleganteste Weg und sicher kann man das sauberer schreiben, aber es funktioniert.

    Vielen Dank euch beiden. :)

    Hallo,


    ich hoffe einer von euch kann mir helfen.

    Ich habe einen Run geschrieben, soweit geht der auch. Das Problem ist, wenn man den Run fertig hat und nach dem Cooldown neu rein geht, spawnt er keine Mobs mehr.

    Wenn man per state Befehl den Mapindex ausliest, sieht man das der Mapindex auf 410005 steht, also eine Map höher wie die wo der Boss ist.

    Meine Frage ist nun:

    Welchen Befehl braucht es das der Run "resetet" wird?


    Hier noch der Teil der Quest wo der Run endet.


    Bei fliege sind es diese beiden Befehle die du in eine Quest schreiben musst:


    pc.give_item2_select(ItemID, 1) << gibt das Item


    --- item.set_attr(index, bonus, value) ---

    item.set_attr(0, 72, 30) --- 1 Boni --- 30 DSS << setzt die Boni


    sollte das bei deinen Files nicht gehen, kannst du dir die Funktion aus der questlib.lua von Fliege holen.

    Hallo Com,


    vlt kann mir einer von euch helfen, habe immer mal wieder das Problem das der SQL Server crascht.... wäre erstmal nicht schlimm, nur finde ich den Grund dafür leider nicht.

    Der Server läuft und läuft und läuft und iwann kann man nicht mehr auf die DB zugreifen und auch nicht mehr mit dem Client einloggen.

    Wenn man nun versucht den SQL neu zu starten, bekommt man die Meldung das dieser nicht mehr läuft. (Restart)


    Hier mal ein Screen was bei starten der Files gezeigt wird....
    Bitte melden Sie sich an, um diesen Anhang zu sehen.


    Habe noch den Log des SQL Server angehängt. Ich hoffe das mir einer von euch helfen kann.

    Vielen dank schonmal.


    Hi,


    das geht mittels Quest,

    mob.spawn(30122, 775, 730, 1) <<< Spawnt dir den Mob

    Wenn du das in ein if packst, kannst du es abhängig machen von einer anderen Sache.

    if pc.getqf("killdarkork") == 0 then

    mob.spawn(692, 1384, 1249, 1)


    Dazu musst du dann halt mit pc.getqf arbeiten, gibt aber sicher noch andere Möglichkeiten.

    Für das wegnehmen sollte es einen Befehl mit "purge" geben, kenne diesen aber nicht.

    Bin mir aber sicher das dies einer hier weis :)


    Edit:

    Hab es vergessen, hier in dem Beispiel ging die Aufgabe voraus einen Punkt auf einer Map zu finden worauf dann der Mob gespannt wurde

    Hallo Com,


    ich hätte einige fragen zu Questfunktionen. Ich bin mir nicht sicher ob meine Vorstellung umsetzbar ist.

    Problem:

    Die Quest vergibt ein Item, eine Rüstung mit speziellen Boni, diese wird benötigt und ich möchte das auch ungern alles umschreiben. Es ist nun aber so, das der Spiele diese im Moment nur mit einer Funktion der Quest auch wieder abgenommen bekommt. Was ist wenn der Spieler die Quest pausiert? Der dritte wird es verstanden haben und dann eben einfach Farmen gehen und die Quest später abgeben. Das will ich verhindern.


    Frage:

    Kann ich einer Rüstung einen Timestamp geben? Also z.B. 30min dann ist Sie weg. Wenn ja, wie geht das via Quest?

    Kann ich abfragen ob ein Spieler diese Rüstung trägt? Wenn ja, welche Funktion muss ich nutzen?

    Gibt es andere bessere Lösungen für mein Anliegen?


    Vielen Dank im Voraus