[SERVICE] Die Questkontrolle

02/26/2011 17:20 .Risan.#1546
@Dazden
1. Du hast bei den states das begin vergessen.
2. das pc_givitem2 gibs nicht, sondern pc.give_item2
3. bei SONVNUM hab ich die nummer eingetragen.

Habs dir angepasst.

Code:
quest adateforgemi begin
    state run begin
        when login with pc.level>=55 begin
            set_state(information)
        end
    end
    state information begin --State Information
         when letter begin -- Wenn alle Quest Briefe aufgerufen werden.
            send_letter("Bitte hilf mir!") -- Sende neuen Quest Brief "Bitte helft mir!"
        end
        when button or info begin
            say_title("Bitte hilf mir!") --  Den Titel des Briefes sagen

            ----"12345678901234567890123456789012345678901234567890"|
            say("Ich habe mich in einen Jungen verliebt.")
            say("Sein Name ist Soon, ich traue mich nicht")
            say("ihn anzusprechen. Kommt bitte zu mir")
            say("ich werde euch auch reich belohnen.")
            set_state(gotogemi) -- Wechsele den State zu gotogemei
        end
    end
    state gotogemi begin 
          when letter begin
            local v=find_npc_by_vnum(9003) -- mache v zu Gemi
            if 0==v then -- Wenn keine Gemi gefunden wurde dann mach nichts
            else
                target.vid("__TARGET__", v, "Geh zur Gemi") -- setze die Gemi als neues Ziel
            end
        end
        when letter begin
            send_letter("Komm zu mir!")
        end
        when button or info begin
            say_title("Kom zu mir!")
            say("Geh zur Gemi")
            say("")
        end
        when __TARGET__.target.click begin
            target.delete("__TARGET__")
            say("Gemi :")

            ----"12345678901234567890123456789012345678901234567890"|
            say("Ich habe mich in einen Jungen verliebt.")
            say("Sein Name ist Soon, ich traue mich nicht")
            say("ihn anzusprechen. Könntet ihr bitte zu Soon")
            say("gehen und ihn für mich nach eine Date fragen?")
            say("Ich würde euch reichlich belohnen.")
            say("Bitte helft mir!")
            say("")
            local s = select("Ich helfe doch gerne","Nein, keine Zeit")
            if s ==1 then
                set_state(gotosoon)
            else
                say("Schade...")
                say("")
                clear_letter()
                q.done()
            end
        end
    end
	state gotosoon begin
        when letter begin
            local v=find_npc_by_vnum(20023)
            if 0==v then
            else
                target.vid("__TARGET__", v, "Geh zu Soon")
            end
        end
        when letter begin
            send_letter("Komm zu mir!")
        end
        when button or info begin
            say_title("Geh zu Soon!")
            say("Beweg dich zz Soon")
            say("")
        end
        when __TARGET__.target.click begin
            target.delete("__TARGET__")
            say("Gemi :")

            ----"12345678901234567890123456789012345678901234567890"|
            say("Die Gemi will ein Date von mir?")
            say("So ein zufall ich wollt grad zu ihr gehen.")
            say("und sie nach einem Date fragen")
            say("")
           -- set_state(backtogemi)
        end
    end
	

    state backtogemi begin
        when letter begin
            local v=find_npc_by_vnum(20023)
            if 0==v then
            else
                target.vid("__TARGET__", v, "Geh zur Gemi")
            end
        end
        when letter begin
            send_letter("Geh zur Gemi!")
        end
        when button or info begin
            say_title("Geh zur Gemi!")
            say("Berichte der Gemi")
            say("")
        end
        when __TARGET__.target.click begin
            target.delete("__TARGET__")
            say("Gemi :")

            ----"12345678901234567890123456789012345678901234567890"|
            say("Was?!")
            say("Er will!!, Ich danke dir .")
            say("Als belohnung gebe ich dir das Perd meines Vaters.")
            say("")
            say_reward("Die Gemi gibt dir Stein der Hast+4")
            say_reward("Die Gemi gibt dir Militär-Pferdebuch")
            pc.give_item2(28443)
            pc.give_item2(50053)
            pc.get_horse_level(21)
            clear_letter()
            set_state(__COMPLETE__)
        end
    end
	

    state __COMPLETE__ begin
    end
end

@~АLeЖ~

Ja fast,
Code:
-- Spendeninfo (aktivert über /e spenden 1)
    quest pep begin
    state start begin
        when login with game.get_event_flag("spenden")== 1 begin
        set_state(lesen)
        send_letter("Spendeninfo")
        end
    end
            state lesen begin
            when button or info begin
            
            say_reward("Geplante Wartungarbeit:")
            say_title("Spendeninfo")
            say("")
            say("Ihr könnt dem Server eine kleine")
            say("Spende zukommen lassen und dafür")
            say("erhaltet ihr Coins. Damit könnt ihr")
            say("Euch im Itemshop etwas kaufen!")
            say("")
            say_title("Coins pro Spende:")
            say("")
            say_reward("Hier seht ihr eine Liste wie viele")
            say_reward("Coins ihr pro Spende bekommt.")
            say("10 €: 150 Coins")
            say("25 €: 400 Coins")
            say("50 €: 900 Coins")
            local i = select("ja habe ich", "Ja, und Später nochmal daran erinnern")
            if 1 == i then
            set_state( __COMPLETE__ )
			end
            if 2 == i then
                return
            end    
        end
    end
    state __COMPLETE__ begin
	end
	end
Best Regards,
Woody
02/26/2011 17:22 bl4ckd3v1l#1547
Quote:
Originally Posted by Delta619 View Post
probiers mal so, habs nicht getestet
PHP Code:
quest player_kill begin
    state start begin
        when login with pc
.get_level() == 1 begin
            pc
.setqf("state", 0)
            
set_state(killen)
        
end
    end
    state killen begin
        when kill with npc
.is_pc() begin
            local count 
= pc.getqf("state") + 1
            chat
( "Du hast "..pc.getqf("state").." Spieler besiegt.")
        
end
    end
end 
Klappt leider nicht
Woody du weißt doch alles über quests. Warum gehts nicht ? xD
Er schreibt leider nicht im chat wie viele pvp kills man hat :/
02/26/2011 17:27 ExCiiTE.HD#1548
Sieht nice aus, wenn ich mehr Zeit habe werde ich mal meine Quests abloaden, dabei ist vll auch eine Pferdezucker Quest, mal sehen wie ich es zeitlich schaffe und ob ich das hinbekomme, denke aber ja ;)
02/26/2011 17:33 .Delta#1549
PHP Code:
quest player_kill begin
    state start begin
        when login with pc
.get_level() == 1 begin
            pc
.setqf("state", 0)
            
set_state(killen)
        
end
    end
    state killen begin
        when kill with npc
.is_pc() begin
            local count 
= pc.getqf("state") + 1
            pc
.setqf("state", count)
            
chat( "Du hast "..pc.getqf("state").." Spieler besiegt.")
        
end
    end
end 
-.-
02/26/2011 17:33 .Risan.#1550
@Delta, deine Quest hat noch kleinen fehler.. <.<

@bl4ckd3v1l
Nimm meine ;D

Code:
quest player_kill begin
    state start begin
        when login with pc.get_level() >= 15 begin
            pc.setqf("state", 0)
            set_state(killen)
        end
    end
    state killen begin
        when kill begin
			if npc.is_pc() then
            local count = pc.getqf("state") + 1  
			pc.setqf("state",count)			
			chat( "Du hast "..pc.getqf("state").." Spieler besiegt.")
			end
		end
    end
end
meine Funzt zu 100% :)
02/26/2011 17:46 bl4ckd3v1l#1551
Quote:
Originally Posted by Woody° View Post
@Delta, deine Quest hat noch kleinen fehler.. <.<

@bl4ckd3v1l
Nimm meine ;D

Code:
quest player_kill begin
    state start begin
        when login with pc.get_level() >= 15 begin
            pc.setqf("state", 0)
            set_state(killen)
        end
    end
    state killen begin
        when kill begin
			if npc.is_pc() then
            local count = pc.getqf("state") + 1  
			pc.setqf("state",count)			
			chat( "Du hast "..pc.getqf("state").." Spieler besiegt.")
			end
		end
    end
end
meine Funzt zu 100% :)
leider nicht xD
Er zeigts nicht im Chat an :/
02/26/2011 17:49 .Risan.#1552
Dann hast du was Falsch, bei mir funktioniert es.
Du musst min lvl 15 sein.
02/26/2011 18:06 bl4ckd3v1l#1553
Quote:
Originally Posted by Woody° View Post
Dann hast du was Falsch, bei mir funktioniert es.
Du musst min lvl 15 sein.
€: Klappt jetzt.

Wenn du Zeit hast Woody, könntest du mir ne Quest schreiben die nach einem Spieler per Questfunktion sucht und dann anzeigt wie viele Kills der Spieler hat ?
Währe super.
02/26/2011 20:27 .Risan.#1554
Quote:
Originally Posted by bl4ckd3v1l View Post
€: Klappt jetzt.

Wenn du Zeit hast Woody, könntest du mir ne Quest schreiben die nach einem Spieler per Questfunktion sucht und dann anzeigt wie viele Kills der Spieler hat ?
Währe super.
Nein.

Ich muss für mich selbr Quests schreiben und sitze gerade an den Bio quests ^.^

Versuch du erstmal selber, wenn echt nicht weiterkommst, kannst ja immer noch posten.
02/27/2011 19:23 glubara#1555
hi,
hab eine quest da verwandelt man sich in wilden ergebenen und bekommt + 3000 angriffswert.
PHP-Code:
Quote:
quest vwk3 begin
state start begin
when 71124.use begin
affect.remove_collect()
pc.polymorph(502, 600)
affect.add_collect(apply.ATT_GRADE_BONUS,3000,600)
end
when kill begin
if npc.is_pc() then
affect.remove_collect(apply.ATT_GRADE_BONUS,3000,6 00)
affect.remove_collect()
end
end
end
end
Mit dem unteren Teil wollte ich eignlich, falls man gekillt wird, dass der angriffswert weg ist. geht leider nicht. also lässt man sich killn und dann trotzdem imba Angriff...
Weiß einer wie ich des wegbekomm wenn man gekillt wird?
Habs auch mit einer extra quest probiert also den unteren Teil als eine eigene quest genommen ging abba alles nicht... mfG
02/27/2011 22:30 LxR'EsoZiaL#1556
Wir das funktionieren oder war ich wieder zu blöd :awesome: ?
PHP Code:
 -- Gewinnspiel (aktivert über /e gewinnspiel1 1)
 
quest pep begin
    state start begin
        when login with game
.get_event_flag("gewinnspiel1")== 1 begin
        set_state
(gewinnspiel1)
        
send_letter("Gewinnspiel")
        
end
    end
            state gewinnspiel1 begin
            when button 
or info begin
            say_title
("Gewinnspiel")
            
say("Es naht der 1. Monat wo Future World3 online ist")
            
say("damit es nicht gerade langweilig werden soll")
            
say("hatt das Team eini Gewinnspiel auf der Homepage hinterlassen,")
            
say("was dir tolle Items verschaft beim Gewinn.")
            
say("")
            
say_reward("Wähle eine Aufgabe!")
            
local s = select("Wie funkioniert das?","Ich will mein Gewinn abholen","Ich habe noch keinen Code")
            if 
s == 3 then
                send_letter
("Gewinnspiel")
                return
            
end
            
if s == 1 then
                say_title
("Gewinnspiel")
                
say("Soso..du möchest also Erfahren, wie das ")
                
say("ganze Funktioniert! Also..zuerst musst du auf")
                
say_reward("http://Gewinnspiel.FutureWorld3.eu")
                
say("Und löse das Spiel.")
                
say("Wen du mit den Spiel fertig bist bekommst du ein Code.")
                
say("den kannt du in dieser Questrolle eingeben")
                
say("und ein tolles Item bekommen")
                
wait()
                
send_letter("Gewinnspiel")
                return
            
end
            
if s == 2 then
                say_title
("Gewinnspiel")
                
say("Nungut, du hast also einen Code für den")
                
say("aktuellen Monat..")
                
say("")
                
say_reward("Gebe den Code ein:")
                
local string = input()
                if 
string <= 4 then
                    say_title
("Gewinnspiel")
                    
say_reward("Der Code ist zu kurz.")
                    
send_letter("Gewinnspiel")
                    return
                
end
                
if string >= 10 then
                    say_title
("Gewinnspiel")
                    
say_reward("Der Code ist zu lang.")
                    
send_letter("Gewinnspiel")
                    return
                
end
                
if string == "deine_mudda" then
                    say_title
("Gewinnspiel")
                    
say_reward("Du hast den Code erfolgreich eingegeben!")
                    
say("")
                    
say("F")
                    
say("")
                    
say("Für diesen Monat erhällst du:")
                    
say_item_vnum(142)
                    
pc.setqf("erstergewinn",1)
                    
wait()
                    
send_letter("Gewinnspiel")
                    return
                
end
                say_title
("Gewinnspiel")
                
say_reward("Dieser Code wurde von dir bereits")
                
say_reward("eingegeben oder er war falsch!")
            
end
        end
    end
end 
02/28/2011 01:41 lekiller#1557
Halo :)

Warum ist diese Quest nicht funktioniert?
Warp funktioniert nicht.

PHP Code:
----------------------------------
--      
Tutorial         
----------------------------------
quest main_quest_lv1 begin
   state start begin
      when login 
or levelup with pc.get_level() == 1 begin
         local pohlavi 
= pc.get_sex()
         
local rise = pc.getempire()
         
set_state(teleport)
      
end
   end

   state teleport begin
      when pc
.getcurrentmapindex != 200 begin
         pc
.warp(832,0)
         
set_state(uvod)
      
end
   end
   
   state uvod begin
      when pc
.getcurrentmapindex == 200 begin
         say_title
("Vítej na serveru MT2Supreme!")
         
say("---------------------------")
         if 
pohlavi == 0 then
            say
("Ještě než začneš hrát, by sis měla")
         else
            
say("Ještě než začneš hrát, by sis měl")
         
end
         say
("přečíst pravidla hry a kdo pro tebe")
         
say("tento server přichystal.")
         
say(" ")
         
wait()
         
say("Máš zájem? Dostaneš za to odměnu!")
         
local precist_pravidla = select("Tak dobře","Ne, díky")
         if 
precist_pravidla == 1 then
            say_title
("Pravidla hry:")
            
say("1. Chovej se tady slušně, nekaz hru jiným hráčům.")
            
say("2. Neotravuj zbytečně Game Mastery.")
            
say("3. Za používání hacků a botů jsou přísné tresty.")
            
say("4. Jakékoliv zneužívání pravidel ohlas na webu.")
            
say("5. Uzij si hru :)")
            
say(" ")
            
say("Web hry - http://mt2supreme.jecool.net")
            
wait()
            
say_title("Na serveru se podíleli:")
            
say("ADMIN, TVŮRCE MT2SUPREME")
            
say(" lekiller")
            
say(" ")
            
say("VÝPOMOC")
            
say(" 93jakub93")
            
wait()
            if 
pohlavi == 0 then
               say
("Za to, že sis tohle vše přečetla,")
            else
               
say("Za to, že sis tohle vše přečetl,")
            
end
            say
("dostaneš 20.000 Yang.")
            
say(" ")
            
pc.change_money(20000)
            if 
pohlavi == 0 then
               say_reward
("Obdržela jsi 20.000 Yangů.")
            else
               
say_reward("Obdržel jsi 20.000 Yangů.")
            
end
         
else
            
say("Tak ne, no. Jak chceš.")
            
say("Ale i tak budeš potřebovat trochu yang.")
            
say("5.000 yang ti bude ze začátku stačit.")
            
say(" ")
            if 
pohlavi == 0 then
               say_reward
("Obdržela jsi 5.000 Yangů.")
            else
               
say_reward("Obdržel jsi 5.000 Yangů.")
            
end
         end
         wait
()
         
say("Yangy jsou zdejším platidlem.")
         
say("Můžeš je získat z příšer nebo za plnění úkolů.")
         
say("Pak je můžeš utratit za vybavení...")
         
say(" ")
         
say("Ale dost řečí!")
         if 
rise == 1 then
            say
("Vůdce vojenských sil říše Shinsoo shání")
         elseif 
rise == 2 then
            say
("Vůdce vojenských sil říše Chunjo shání")
         else
            
say("Vůdce vojenských sil říše Jinno shání")
         
end
         
if pohlavi == 0 then
            say
("do svých řad všechny bojeschopné muže a")
            
say("hlavně vnadné ženy!")
         else
            
say("do svých řad všechny bojeschopné lidi!")
            
say("Hlavně silné muže!")
         
end
         wait
()
         
say("Proto běž a promluv si s ním.")
         
say("Najdeš ho, když půjdeš po schodech nahoru.")
         
say("Všichni mu říkáme Velitel.")
         
say(" ")
         
say_reward("Hezkou zábavu při hraní ti přeje celý")
         
say_reward("MT2Supreme tým.")
         
set_state(velitel_1)
      
end
   end
   
   state velitel_1 begin
      when letter begin
         local v 
= find_npc_by_vnum(20355)
         
target.vid("__TARGET__", v, "Jdi za Velitelem")
         
send_letter("Jdi za Velitelem")
      
end
      when button 
or info begin
         say_title
("Jdi za Velitelem")
         
say(" ")
         if 
pohlavi == 0 then
            say
("Aby ses stala bojovnicí za svou říši,")
         else
            
say("Aby ses stal bojovníkem za svou říši")
         
end
         say
("Musíš navštívit Velitele.")
         
say("Najdeš ho podle minimapy.")
         
say("Je to ta blikající značka.")
      
end
      when __TARGET__
.target.click begin
         target
.delete("__TARGET__")
         
say_title("Velitel")
         
say(" ")
         
say("Ahoj!")
         
say("Vítej ve výcvikovém středisku, kde")
         
say("připravujeme všechny vojáky a bojovnice")
         
say("na tvrdý válečný život a boj za svou říši.")
         
wait()
         if 
pohlavi == 0 then
            say
("Přišla jsi za mnou, protože chceš bojovat")
         else
            
say("Přišel jsi za mnou, protože chceš bojovat")
         
end
         
if rise == 1 then
            say
("za naši říší - SHINSOO!")
         elseif 
rise == 2 then
            say
("za naši říši - CHUNJO!")
         else
            
say("za naši říši - JINNO!")
         
end
         say
("A jako takový dík, ode mě teď dostaneš")
         
say("základní kapitál - 50.000 Yang.")
         
say(" ")
         
pc.change_money(50000)
         if 
pohlavi == 0 then
            say_reward
("Obdržela jsi 50.000 Yangů.")
         else
            
say_reward("Obdržel jsi 50.000 Yangů.")
         
end
         wait
()
         
say("Za tyto prostředky si nyní pořídíš")
         
say("základní vybavení pro boj a pustíš se do")
         
say("tvrdého tréninku.")
         
say(" ")
         
say("Nyní běž za obchodníky a řekni jim, že")
         
say("tě za nimi posílám, dají ti slevněné sady")
         if 
pohlavi == 0 then
            say
("pro nové bojovnice.")
         else
            
say("pro nové bojovníky.")
         
end
         wait
()
         
say("Najdeš je podle mini-mapy tak,")
         if 
pohlavi == 0 then
            say
("jako jsi našla mě.")
         else
            
say("jako jsi našel mě.")
         
end
         say
("Až budeš mít vybavení, vrať se")
         
say("za mnou. Řeknu ti co dál.")
         
say("Nyní běž za obchodnicí smíš. zboží.")
         
clear_letter()
         
set_state(obchodnik_1)
      
end
   end
   
   state obchodnik_1 begin
      when letter begin
         local f 
= find_npc_by_vnum(9003)
         
target.vid("__TARGET2__", f, "Jdi za Obchodnicí")
         
send_letter("Jdi za Obchodnicí")
      
end
      when button 
or info begin
         say_title
("Jdi za Obchodnicí")
         
say(" ")
         
say("Jdi za obchodnicí smíš. zboží")
         
say("a nakup si u ní základní vybavení")
         
say("za peníze, které ti dal Velitel.")
         
say(" ")
         
say("Najdeš ji podle mini-mapy.")
      
end
      when __TARGET2__
.target.click begin
         target
.delete("__TARGET2__")
         
say_title("Obchodnice smíš. zboží")
         
say(" ")
         
say("Ahoj! Co potřebuješ?")
         
say("Aha! Tebe posílá Velitel!")
         
say("Tak to si určitě jdeš pro zlevněné")
         
say("vybavení!")
         
wait()
         
say("Dodělat - i že pokud nemá yangy...")
         
clear_letter()
         
set_state(__COMPLETE__)
      
end
   end
end 
02/28/2011 12:04 rebery11#1558
Hallo Leute ich will eine Quest einbauen unzwar eine Teleporter den ich immer mit habe in einer Questrolle ?!
könnte jmd drüberschauen und gucken ob da was Falsch ist ?
weil sie nicht geht :/
mfg rbery11
PS : kriegt ein Dickes THX

PHP Code:
    state start begin
        when login begin
            send_letter
("Teleportieren")
        
end
            
if main_set == 2 then
                say
("Du willst dich also Teleportieren?")
                
say("")
                
local j = select("Ja","Nein")
                if 
j == 2 then
                    
return
                
end
                
if j == 1 then
                    say_reward
("Wo möchtest du hin:")
                    
local k = select("Map1-Rot","Map1-Blau","Map1-Gelb","Nirgens")
                    if 
k == 4 then
                        
return
                    
end
                    
if k == 1 then
                        pc
.warp(469300, 964200)
                    
end
                    
if k == 2 then
                        pc
.warp(969600, 278400)
                    
end
                    
if k == 3 then
                        pc
.warp (55700, 157900)
                    
end
                end    
            end 
02/28/2011 12:15 .Delta#1559
Hab dich nicht vergessen keine Angst ;)

Hatte gestern nur nicht viel Zeit, sry dafür
02/28/2011 17:37 P_Server#1560
Hey, wenn ich meine Quest einfüge dann kommt folgenenes im VPC :
giftplattenpanzer.quest wird umgewandelt
assertion failure : nested ==00
Abort trap (core dumped)
wird umgewandelt
wird umgewandelt
Mcncc#

Okay und hier die Quest:
PHP Code:
quest giftplattenpanzer begin
    state start begin
        when 30224.
use begin
            say_title
("Giftplattenpanzer")
            
say("Um dir diese Waffe zuerstellen,")
            
say("brauchst du folgende Items:")
            
say("")
            
say_reward("1x Schwarzstahlplattenpanzer+9, 2x Weiße Perle,")
            
say_reward("2x Blaue Perle, 2x Rote Perle,")
            
say_reward("3x Wassersteine")
            
say("")
            
say_reward("Möchtest du dieses Item erstellen?")
            
local s = select("Ja","Nein")
            if 
s == 2 then
                
return
            
end
            
if s == 1 then
                
if pc.count_item(27992) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei weißen Perlen!")
                    return
                
end
                
if pc.count_item(27993) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei blauen Perlen!")
                    return
                
end
                
if pc.count_item(27994) < 2 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine zwei roten Perlen!")
                    return
                
end
                
if pc.count_item(90005) < 3 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast keine drei Wassersteine!")
                    return
                
end
                
if pc.count_item(11299) < 1 then
                    say_title
("Giftplattenpanzer")
                    
say_reward("Du hast kein Schwarzstahlplattenpanzer+9!")
                    return
                
end
                pc
.remove_item(27992,2)
                
pc.remove_item(27993,2)
                
pc.remove_item(27994,2)
                
pc.remove_item(90005,3)
                
pc.remove_item(11299,1)
                
item.remove()
                
pc.give_item2(42020,1)
                
say_title("Giftplattenpanzer")
                
say_reward("Du hast erfolgreich hergestellt:")
                
say_item_vnum(42020)
            
end
        end