LUA -Fragen

12/03/2011 14:32 [SoLow]#1
Hallo Community,
Weiß nicht ob es nun der richtige Bereich ist, aber da es um Metin2 Quests geht, denke ich das es klar geht.

Ich hätte ein paar Fragen zu bestimmten "Funktionen" bzw. wie man sowas hinkriegt.

1. Wenn ich eine Quest schreiben möchte, in der man bestimmte Items droppen soll, die man nur während der Quest droppen kann - Wie stellt man das an?

2. Wenn man ein Item droppen soll, aber nicht 100% - Schreibt man das in die Quest, oder muss man das in der Datenbank regeln?

3. Wie setze ich es um, das man nach beenden einer Quest 24h warten muss um dann seine belohnung zu bekommen?

Soo, hoffe mir kann jemand helfen - Ich habe keinen Server und möchte auch keinen, das Questwriten interessiert mich nur, also kommt nicht mit "wenn du keine Ahnung davon hast, mach kein Server" :P
12/03/2011 17:47 xPrivate#2
Nummer 2 und 3 kannst du dir aus den Bio Quests abgucken, hatte ich damals bei meinen ersten Quests auch gemacht.

Soweit ich weiss heißen die: collect_count.quest oder so ähnlich.

Die entscheidende Stelle bei Nummer 2 ist die, wo:

Code:
number(xx,xx)
if ..
...
..
steht, damit meine ich ab Number und der If-Block.

Viel Spaß!

Mit freundlichen Grüßen
xPrivate
12/03/2011 18:00 .Delta#3
1. Wenn ich eine Quest schreiben möchte, in der man bestimmte Items droppen soll, die man nur während der Quest droppen kann - Wie stellt man das an?
PHP Code:
when kill with npc.get_race() == MOBVNUM begin
    game
.drop_item(VNUM1)
end 
z.b.^^

2. Wenn man ein Item droppen soll, aber nicht 100% - Schreibt man das in die Quest, oder muss man das in der Datenbank regeln?
PHP Code:
when kill with npc.get_race() == MOBVNUM begin
    
if number(1100) <= 20 then
        game
.drop_item(VNUM1)
    
end
end 
sind 20%^^

3. Wie setze ich es um, das man nach beenden einer Quest 24h warten muss um dann seine belohnung zu bekommen?
PHP Code:
...
set_state(reward)
pc.setqf("reward"get_time()+60*60*24)
...-- 
aktuellen state korrekt beenden
state reward begin
    when login with get_time
() > pc.getqf("reward"begin
        say
("Hier deine Belohnung")
        
pc.change_gold(2999)
        
set_state(complete)
    
end
end
state complete begin
end
end    
-- letztes end für quest beenden 
Soo, hoffe mir kann jemand helfen - Ich habe keinen Server und möchte auch keinen, das Questwriten interessiert mich nur, also kommt nicht mit "wenn du keine Ahnung davon hast, mach kein Server" :P