Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Metin2 > Metin2 Private Server
You last visited: Today at 08:26

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[SERVICE] Die Questkontrolle

Discussion on [SERVICE] Die Questkontrolle within the Metin2 Private Server forum part of the Metin2 category.

Reply
 
Old 12/24/2013, 23:14   #9421
 
ExoBiTe™'s Avatar
 
elite*gold: 130
Join Date: Dec 2012
Posts: 346
Received Thanks: 39
Hey ich habe mal wieder ein Problem...
Diese Quest funktioniert nicht...

Quest:

Code:
when doesnt have a begin end clause (and).
Quest1.quest:3:Error on compile Quest1.quest
ExoBiTe™ is offline  
Old 12/24/2013, 23:35   #9422
 
elite*gold: 0
Join Date: Jun 2010
Posts: 159
Received Thanks: 11
HTML Code:
quest Perlen begin
	state start begin
		when login or levelup with pc.get_level () >= 30 begin
			send_letter ("Perlen")
		end
		when button begin
			say("Hallo")
			say("")
			say("Ich bin auf der Suche")
			say("nach den verschwundenen Perlen")
			say("Ich habe vor aus den Perlen")
			say("die du mir bringen sollst")
			say("eine Kette herzustellen")
			wait()
			say"Willst du mir die Perlen bringen")
			
			locale e = select ("Ja", "Nein")
			
			if e == 1 then
				say_reward("Suche die Perlen")
				say("")
				say_reward("5x weiße Perle")
				say_reward("5x blaue Perle")
				say_reward("5x rote Perle")
				say("")
				say("Bitte bring sie mir so schnell es geht")
			end
			elseif 2 == 2 then
					return
			end
			
			
		end	
	end
end
was stimmt da nicht?

PS: ich fang gerade erst an zu lernen erste quest ^^
obi109 is offline  
Old 12/24/2013, 23:59   #9423
 
.Xilent's Avatar
 
elite*gold: 12
Join Date: Jun 2012
Posts: 978
Received Thanks: 860
quest Perlen begin
state start begin
when login or levelup with pc.get_level () >= 30 begin
send_letter ("Perlen")
end
when info or button begin
say("Hallo")
say("")
say("Ich bin auf der Suche")
say("nach den verschwundenen Perlen")
say("Ich habe vor aus den Perlen")
say("die du mir bringen sollst")
say("eine Kette herzustellen")
wait()
say("Willst du mir die Perlen bringen")

locale e = select ("Ja", "Nein")

if e == 1 then
say_reward("Suche die Perlen")
say("")
say_reward("5x weiße Perle")
say_reward("5x blaue Perle")
say_reward("5x rote Perle")
say("")
say("Bitte bring sie mir so schnell es geht")
elseif e == 2 then
return
end


end
end
end
.Xilent is offline  
Old 12/25/2013, 00:10   #9424

 
Oberst™'s Avatar
 
elite*gold: 776
Join Date: Nov 2008
Posts: 431
Received Thanks: 262
Pet Name

Gute Tag zusammen,

ich würde gerne wissen wo ich das jeweilige pet den Namen zuweisen kann

PHP Code:
quest haustiere begin
    state start begin
        
-- Setzt den neuen Petnamen in die Datenbank ein
        
function set_pet_name(name)
            
mysql_query("DELETE FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'")
            
mysql_query("INSERT INTO player.pet_name(id, name) VALUES(\\'"..pc.get_player_id().."\\', \\'"..name.."\\')")
        
end
        
-- Holt sich den Petnamen aus der Datenbank
        
function get_pet_name()
            
local pet_name mysql_query("SELECT * FROM player.pet_name WHERE id = \\'"..pc.get_player_id().."\\'")
            return (
pet_name.name or {pc.get_name().."'s Haustier"})[1]
        
end
        
-- Feuer-Phönix
        when 53001.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(22)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Rentierjunges
        when 53002.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(24)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Eis-Phönix
        when 53003.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(23)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Baby-Azrael
        when 53005.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(25)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Baby-Wolfs
        when 53006.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(26)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Baby-Löwen
        when 53007.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(27)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Baby-Keiler
        when 53008.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(28)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Baby-Tiger
        when 53009.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(29)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Baby-Eisbär
        when 53014.
use begin
            
if pet.is_summon() then
                pet
.unsummon()
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.remove_collect(apply.DEF_GRADE_BONUS10060*60*8)   
                
affect.remove_collect(apply.MAX_HP100060*60*8)
            else
                
local old_level horse.get_level()
                
local old_name horse.get_name()
                
horse.set_level(30)
                
horse.set_name(haustiere.get_pet_name())
                
pet.summon()
                
horse.set_level(old_level)
                
horse.set_name(old_name)
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.DEF_GRADE_BONUS10060*60*8)
                
affect.add_collect(apply.MAX_HP100060*60*8)
            
end
        end
        
-- Namenskette Namensändung des Haustiers
        when 71110.
use begin
            say_title
("Namenskette :")
            
say("")
            
say("Hier kannst du deinem Haustier einen neuen")
            
say("Namen geben. Damit kannst du dein Haustier")
            
say("über alle anderen hervorheben.")
            
say("")
            
            
akna haustiere.get_pet_name()
            
            if 
string.len(akna) == 0 then
                say_reward
("Dein Haustier besitzt bis jetzt keinen Namen.")
            else
                
say_reward("Der aktuelle Name deines Haustieres lautet: "..akna)
            
end
            
            say
("")
            
say("Möchtest du fortfahren?")
            
say("")
            
            
local s=select("Umbenennen""Abbrechen")
            if 
s==2 then
                
return
            
end
            
            say_title
("Namenskette :")
            
say("")
            
say("Bitte gib hier den neuen Namen deines")
            
say("Haustieres ein.")
            
            
local x input()
            
            if 
string.len(x) < 2 then
                say_title
("Namenskette :")
                
say("Der eingegeben Name ist zu kurz.")
                
say("")
                
say_reward("Der neue Name muss aus")
                
say_reward("mind. 2 Zeichen bestehen.")
                
say("")
                return
            elseif 
string.len(x) > 12 then
                say_title
("Namenskette :")
                
say("Der eingegeben Name ist zu lang.")
                
say("")
                
say_reward("Der neue Name darf max.")
                
say_reward("aus 12 Zeichen bestehen.")
                
say("")
                return
            
end
            
            haustiere
.set_pet_name(x)
            
chat("Haustier erfolgreich umbenannt")
            
pc.remove_item(711101)
        
end
    end
end 
Sie heissen bei mir alle "Haustier"
Oberst™ is offline  
Old 12/25/2013, 00:28   #9425
 
DerForenLeser's Avatar
 
elite*gold: 40
Join Date: Nov 2009
Posts: 1,159
Received Thanks: 442
Quote:
Originally Posted by .Xilent View Post
quest Perlen begin
state start begin
when login or levelup with pc.get_level () >= 30 begin
send_letter ("Perlen")
end
when info or button begin
say("Hallo")
say("")
say("Ich bin auf der Suche")
say("nach den verschwundenen Perlen")
say("Ich habe vor aus den Perlen")
say("die du mir bringen sollst")
say("eine Kette herzustellen")
wait()
say("Willst du mir die Perlen bringen")

locale e = select ("Ja", "Nein")

if e == 1 then
say_reward("Suche die Perlen")
say("")
say_reward("5x weiße Perle")
say_reward("5x blaue Perle")
say_reward("5x rote Perle")
say("")
say("Bitte bring sie mir so schnell es geht")
elseif e == 2 then
return
end


end
end
end
locale ohne " e ", zudem sind abgeschlossene if's besser, da sie übersichtlicher sind.

PHP Code:
quest Perlen begin
    state start begin
        when login 
or levelup with pc.get_level () >= 30 begin
            send_letter 
("Perlen")
        
end
        when info 
or button begin
            say
("Hallo")
            
say("")
            
say("Ich bin auf der Suche")
            
say("nach den verschwundenen Perlen")
            
say("Ich habe vor aus den Perlen")
            
say("die du mir bringen sollst")
            
say("eine Kette herzustellen")
            
wait()
            
say("Willst du mir die Perlen bringen")
            
            
local e=select("Ja""Nein")
            
            if 
== 1 then
                say_reward
("Suche die Perlen")
                
say("")
                
say_reward("5x weiße Perle")
                
say_reward("5x blaue Perle")
                
say_reward("5x rote Perle")
                
say("")
                
say("Bitte bring sie mir so schnell es geht")
            
end
            
if == 2 then
                    
return
            
end
            
            
        end    
    end
end 
DerForenLeser is offline  
Thanks
1 User
Old 12/25/2013, 09:38   #9426

 
Oberst™'s Avatar
 
elite*gold: 776
Join Date: Nov 2008
Posts: 431
Received Thanks: 262
Bei der Quest habe ich das Problem das er nur 3 Punkte vom Rang abzieht beim benutzen von Seelenstein. Wo kann ich das in der Quest ändern ?

PHP Code:
quest training_grandmaster_skill begin
    state start begin
    when 50513.
use begin
        say_title
("Großmeister")
        
local seelicount pc.count_item(50513)
        if 
pc.get_skill_group() == 0 then
        say
("Du hast keine Fertigkeiten "..pc.get_skill_group())
        return
        
end

        
if get_time() < pc.getqf("next_time"then -- and not is_test_server() then
        
if pc.is_skill_book_no_delay() then
            say
("Du hast eine Exo-Rolle Gelesen!")
            
say("Nun kannst du einen weiteren")
            
say("Seelenstein lesen!")
                  
say("")
            
wait()
            
say_title("Großmeister")
        else
            
say("Du hast heute Bereits einen Seelenstein gelesen!")
            return
        
end
        end

        local result 
training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())

        
local vnum_list result[1]
        
local name_list result[2]

        if 
table.getn(vnum_list) == 0 then
        say
("Du hast keine Fertigkeiten")
        return
        
end

        say
("Fertigkeit Auswählen")
        
say("")

        
local menu_list = {}
        
table.foreach(name_list, function(inametable.insert(menu_listnameend)
        
table.insert(menu_list"Abbrechen"
        
local s=select_table(menu_list)
        if 
table.getn(menu_list) == s then
        
return
        
end

        local skill_name
=name_list[s]
        
local skill_vnum=vnum_list[s]
        
local skill_level pc.get_skill_level(skill_vnum)
        
local cur_alignment pc.get_real_alignment()
        
local need_alignment 1+1*(skill_level-30)

        
test_chat("Momentaner Rang: "..cur_alignment)
        
test_chat("Benötigter Rang: "..need_alignment)

        
local title=string.format("%s auf Großmeister  %d lesen"skill_nameskill_level-30+1)
        if 
pc.count_item(50513) != seelicount then
        say
("Stfu Buguser!")
        return
        
end
        pc
.remove_item(505131)
        
say_title(title)
        
say("Das lesen eines Seelensteines")
        
say("kostet Rangpunke.")
        
say("")

        if 
cur_alignment<-19000+need_alignment then
        say_reward
("Du hast zu wenig Rang!")
        return
        
end

        
if cur_alignment<0 then
        say_reward
(string.format("Benötigter Rang: %d -> %d"need_alignmentneed_alignment*2))
        
say_reward("Beim klappen des Seelensteins wird dir")
              
say_reward("das doppelte an Rangpunkten abgezoegn!")

        
need_alignment=need_alignment*2
        
elseif cur_alignment<need_alignment then
        say_reward
(string.format("Benötigter Rang: %d"need_alignment))
        
say_reward("Beim klappen des Seelensteins wird dir")
              
say_reward("das doppelte an Rangpunkten abgezoegn!")
        else
        
say_reward(string.format("Benötigter Rang: %d"need_alignment))
        
end
        say
("")

        
local s=select("Lesen""Abbrechen")    
        if 
s==2 then
        
return
        
end


        
if cur_alignment>=and cur_alignment<need_alignment then
        say_title
(string.format("%s -Bestätigen"title))
        
say("Das Lesen eines Seelensteines kostet Rang,")
        
say("wenn du diesen Seelenstein ließt,")
        
say("kommst du in -Rang")
        
say("Bitte Bestätige das du diesen Seelenstein")
        
say("wirklich lesen möchtest!")
        
say("")
        
say_reward("Bestätigen")
        
say("")
        
say("Bitte gebe 'Trainieren' ein!")
        
local s=input()
        if 
s!="Trainieren" then
            
return
        
end
        end

        
if get_time() < pc.getqf("next_time"then -- and not is_test_server() then
        
if pc.is_skill_book_no_delay() then
            pc
.remove_skill_book_no_delay()
        else
            
say("Seelitest1")
            return
        
end
        end

        pc
.setqf("next_time"get_time()+time_hour_to_sec(number(812)))

        if 
need_alignment>0 then
        
if pc.learn_grand_master_skill(skill_vnumthen
            pc
.change_alignment(-need_alignment)


            
say_title(string.format("%s -Erfolgreich"title))
            if 
40 == pc.get_skill_level(skill_vnumthen
            say
(string.format("%s Seelitest2."skill_name))
            else
            
say(string.format("Dein Seelenstein war Erfolgreich!"skill_nameskill_level-30+1+1))
            
end
            say
("")
            
say_reward("Erfolgreich!")
            
say_reward(string.format("Kosten an Rang: %d "need_alignment))
            
say("")
        else
            
say_title(string.format("%s -Fehlgeschlagen"title))
            
say("Dein Seelenstein hat nicht geklappt.")
            
say("")
            
say_reward("Fehlgeschlagen!")
            
say("")
            
pc.change_alignment(-number(need_alignment/3need_alignment/2))
        
end
        end
    end
    
function BuildGrandMasterSkillList(jobgroup)
        
GRAND_MASTER_SKILL_LEVEL 30
        PERFECT_MASTER_SKILL_LEVEL 
40

        local skill_list 
special.active_skill_list[job+1][group]
        
local ret_vnum_list = {}
        
local ret_name_list = {}

        -- 
test_chat(string.format("job=%d, group=%d"jobgroup))

        
table.foreach(skill_list
        function(
iskill_vnum
        
local skill_level pc.get_skill_level(skill_vnum)

        -- 
test_chat(string.format("[%d]=%d"skill_vnumskill_level))
        if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level PERFECT_MASTER_SKILL_LEVEL then

            table
.insert(ret_vnum_listskill_vnum)
            
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
            if 
name == nil then name=skill_vnum end
            table
.insert(ret_name_listname)
        
end
        end
)
        return {
ret_vnum_listret_name_list}


        --return {
ret_vnum_listret_name_list}
    
end
    



     when 50512.
use begin
    local regencount 
pc.count_item(50512)
        
say_title("Perfekter Meister")
        if 
pc.get_skill_group() == 0 then
        say
("Du hast keine Fertigkeiten "..pc.get_skill_group())
        return
        
end
        local result 
training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())

        
local vnum_list result[1]
        
local name_list result[2]

        if 
table.getn(vnum_list) == 0 then
        say
("Du hast keine Fertigkeiten")
        return
        
end

        say
("Fertigkeit Auswählen")
        
say("")

        
local menu_list = {}
        
table.foreach(name_list, function(inametable.insert(menu_listnameend)
        
table.insert(menu_list"Abbrechen"
        
local s=select_table(menu_list)
        if 
table.getn(menu_list) == s then
        
return
        
end

        local skill_name
=name_list[s]
        
local skill_vnum=vnum_list[s]
        
local skill_level pc.get_skill_level(skill_vnum)
    
say("Der Regenbogenstein wird die gewählte Fertigkeit")
    
say("sofort auf P setzen")
    
say("Möchtest du forfahren?")
        
local s=select("Lesen""Abbrechen")    
        if 
s==2 then
        
return
        
end
        
if pc.count_item(50512) != regencount then
        say
("stfu buguser!")
        return
        
end
    pc
.remove_item(505121)
    
pc.set_skill_level(skill_vnum59)
    
say("Herzlichen Glückwunsch![ENTER]")
    
say("Der Skill "..skill_name.." wurde auf P gesetzt!")
    
say_reward(" "..skill_name.." P")
    
end
    end
end 
Oberst™ is offline  
Old 12/25/2013, 11:58   #9427
 
DerForenLeser's Avatar
 
elite*gold: 40
Join Date: Nov 2009
Posts: 1,159
Received Thanks: 442
Quote:
Originally Posted by Aliano View Post
Bei der Quest habe ich das Problem das er nur 3 Punkte vom Rang abzieht beim benutzen von Seelenstein. Wo kann ich das in der Quest ändern ?

PHP Code:
quest training_grandmaster_skill begin
    state start begin
    when 50513.
use begin
        say_title
("Großmeister")
        
local seelicount pc.count_item(50513)
        if 
pc.get_skill_group() == 0 then
        say
("Du hast keine Fertigkeiten "..pc.get_skill_group())
        return
        
end

        
if get_time() < pc.getqf("next_time"then -- and not is_test_server() then
        
if pc.is_skill_book_no_delay() then
            say
("Du hast eine Exo-Rolle Gelesen!")
            
say("Nun kannst du einen weiteren")
            
say("Seelenstein lesen!")
                  
say("")
            
wait()
            
say_title("Großmeister")
        else
            
say("Du hast heute Bereits einen Seelenstein gelesen!")
            return
        
end
        end

        local result 
training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())

        
local vnum_list result[1]
        
local name_list result[2]

        if 
table.getn(vnum_list) == 0 then
        say
("Du hast keine Fertigkeiten")
        return
        
end

        say
("Fertigkeit Auswählen")
        
say("")

        
local menu_list = {}
        
table.foreach(name_list, function(inametable.insert(menu_listnameend)
        
table.insert(menu_list"Abbrechen"
        
local s=select_table(menu_list)
        if 
table.getn(menu_list) == s then
        
return
        
end

        local skill_name
=name_list[s]
        
local skill_vnum=vnum_list[s]
        
local skill_level pc.get_skill_level(skill_vnum)
        
local cur_alignment pc.get_real_alignment()
        
local need_alignment 1+1*(skill_level-30)

        
test_chat("Momentaner Rang: "..cur_alignment)
        
test_chat("Benötigter Rang: "..need_alignment)

        
local title=string.format("%s auf Großmeister  %d lesen"skill_nameskill_level-30+1)
        if 
pc.count_item(50513) != seelicount then
        say
("Stfu Buguser!")
        return
        
end
        pc
.remove_item(505131)
        
say_title(title)
        
say("Das lesen eines Seelensteines")
        
say("kostet Rangpunke.")
        
say("")

        if 
cur_alignment<-19000+need_alignment then
        say_reward
("Du hast zu wenig Rang!")
        return
        
end

        
if cur_alignment<0 then
        say_reward
(string.format("Benötigter Rang: %d -> %d"need_alignmentneed_alignment*2))
        
say_reward("Beim klappen des Seelensteins wird dir")
              
say_reward("das doppelte an Rangpunkten abgezoegn!")

        
need_alignment=need_alignment*2
        
elseif cur_alignment<need_alignment then
        say_reward
(string.format("Benötigter Rang: %d"need_alignment))
        
say_reward("Beim klappen des Seelensteins wird dir")
              
say_reward("das doppelte an Rangpunkten abgezoegn!")
        else
        
say_reward(string.format("Benötigter Rang: %d"need_alignment))
        
end
        say
("")

        
local s=select("Lesen""Abbrechen")    
        if 
s==2 then
        
return
        
end


        
if cur_alignment>=and cur_alignment<need_alignment then
        say_title
(string.format("%s -Bestätigen"title))
        
say("Das Lesen eines Seelensteines kostet Rang,")
        
say("wenn du diesen Seelenstein ließt,")
        
say("kommst du in -Rang")
        
say("Bitte Bestätige das du diesen Seelenstein")
        
say("wirklich lesen möchtest!")
        
say("")
        
say_reward("Bestätigen")
        
say("")
        
say("Bitte gebe 'Trainieren' ein!")
        
local s=input()
        if 
s!="Trainieren" then
            
return
        
end
        end

        
if get_time() < pc.getqf("next_time"then -- and not is_test_server() then
        
if pc.is_skill_book_no_delay() then
            pc
.remove_skill_book_no_delay()
        else
            
say("Seelitest1")
            return
        
end
        end

        pc
.setqf("next_time"get_time()+time_hour_to_sec(number(812)))

        if 
need_alignment>0 then
        
if pc.learn_grand_master_skill(skill_vnumthen
            pc
.change_alignment(-need_alignment)


            
say_title(string.format("%s -Erfolgreich"title))
            if 
40 == pc.get_skill_level(skill_vnumthen
            say
(string.format("%s Seelitest2."skill_name))
            else
            
say(string.format("Dein Seelenstein war Erfolgreich!"skill_nameskill_level-30+1+1))
            
end
            say
("")
            
say_reward("Erfolgreich!")
            
say_reward(string.format("Kosten an Rang: %d "need_alignment))
            
say("")
        else
            
say_title(string.format("%s -Fehlgeschlagen"title))
            
say("Dein Seelenstein hat nicht geklappt.")
            
say("")
            
say_reward("Fehlgeschlagen!")
            
say("")
            
pc.change_alignment(-number(need_alignment/3need_alignment/2))
        
end
        end
    end
    
function BuildGrandMasterSkillList(jobgroup)
        
GRAND_MASTER_SKILL_LEVEL 30
        PERFECT_MASTER_SKILL_LEVEL 
40

        local skill_list 
special.active_skill_list[job+1][group]
        
local ret_vnum_list = {}
        
local ret_name_list = {}

        -- 
test_chat(string.format("job=%d, group=%d"jobgroup))

        
table.foreach(skill_list
        function(
iskill_vnum
        
local skill_level pc.get_skill_level(skill_vnum)

        -- 
test_chat(string.format("[%d]=%d"skill_vnumskill_level))
        if 
skill_level >= GRAND_MASTER_SKILL_LEVEL and skill_level PERFECT_MASTER_SKILL_LEVEL then

            table
.insert(ret_vnum_listskill_vnum)
            
local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
            if 
name == nil then name=skill_vnum end
            table
.insert(ret_name_listname)
        
end
        end
)
        return {
ret_vnum_listret_name_list}


        --return {
ret_vnum_listret_name_list}
    
end
    



     when 50512.
use begin
    local regencount 
pc.count_item(50512)
        
say_title("Perfekter Meister")
        if 
pc.get_skill_group() == 0 then
        say
("Du hast keine Fertigkeiten "..pc.get_skill_group())
        return
        
end
        local result 
training_grandmaster_skill.BuildGrandMasterSkillList(pc.get_job(), pc.get_skill_group())

        
local vnum_list result[1]
        
local name_list result[2]

        if 
table.getn(vnum_list) == 0 then
        say
("Du hast keine Fertigkeiten")
        return
        
end

        say
("Fertigkeit Auswählen")
        
say("")

        
local menu_list = {}
        
table.foreach(name_list, function(inametable.insert(menu_listnameend)
        
table.insert(menu_list"Abbrechen"
        
local s=select_table(menu_list)
        if 
table.getn(menu_list) == s then
        
return
        
end

        local skill_name
=name_list[s]
        
local skill_vnum=vnum_list[s]
        
local skill_level pc.get_skill_level(skill_vnum)
    
say("Der Regenbogenstein wird die gewählte Fertigkeit")
    
say("sofort auf P setzen")
    
say("Möchtest du forfahren?")
        
local s=select("Lesen""Abbrechen")    
        if 
s==2 then
        
return
        
end
        
if pc.count_item(50512) != regencount then
        say
("stfu buguser!")
        return
        
end
    pc
.remove_item(505121)
    
pc.set_skill_level(skill_vnum59)
    
say("Herzlichen Glückwunsch![ENTER]")
    
say("Der Skill "..skill_name.." wurde auf P gesetzt!")
    
say_reward(" "..skill_name.." P")
    
end
    end
end 
PHP Code:
        local need_alignment 1+1*(skill_level-30
In der normalen Regenbogenstein.quest steht für diese Zeile das hier drin:
PHP Code:
            local need_alignment 1000+500*(skill_level-30
Weiß gerade nicht, ob es dafür ausschlaggebend ist, da es eigentlich nur der need ist.
Kannst es ja mal ausprobieren.
DerForenLeser is offline  
Old 12/25/2013, 17:54   #9428
 
elite*gold: 0
Join Date: Aug 2013
Posts: 816
Received Thanks: 339
PHP Code:
quest pet_system begin
    state start begin
        
function get_pet_info(itemVnum)
            
pet_info_map = {
            --  [
ITEM VNUMMOB_VNUM, DEFAULT NAMEbuff_idxspawn_effect_idx
                
[53001]     = { 20121"'s Fire Phoenix"0},
                [
53002]     = { 20128"'s Baby Reindeer"0},
                [
53003]     = { 20123"'s Ice Phoenix"0},
                [
53005]     = { 20129"'s Baby Azrael"0},
                [
53006]     = { 20134"'s Rufus"0},
                [
53007]     = { 20135"'s Leonidas"0},
                [
53008]     = { 20140"´s Porky"0},
                [
53009]     = { 20141"´s Khan"0},
          [
53010]     = { 20141"´s Knuud"0},
          [
53011]     = { 23323"´s BaoBao"0},
            }

            
itemVnum tonumber(itemVnum)

            return 
pet_info_map[itemVnum]
        
end
        
function get_spawn_effect_file(idx)
            
effect_table = {
                [
0] = nil,
                [
1] = "d:\\\\ymir work\\\\effect\\\\etc\\\\appear_die\\\\npc2_appear.mse",
            }
            return 
effect_table [idx]
        
end
        when 53009.
use or 53008.use or 53007.use or 53006.use or 53005.use or 53004.use or 53003.use or 53002.use or 53001.use or 53010.use or 53011.use begin
            local pet_info 
pet_system.get_pet_info(item.vnum)

            if 
null != pet_info then

                local mobVnum 
pet_info[1]
                
local petName pet_info[2]
                
local spawn_effect_file_name pet_system.get_spawn_effect_file(pet_info[3])

                if 
true == pet.is_summon(mobVnumthen
                    
if spawn_effect_file_name != nil then
                        pet
.spawn_effect (mobVnumspawn_effect_file_name)
                    
end
                    pet
.unsummon(mobVnum)
                else
                    if 
pet.count_summoned() < 1 then
                        pet
.summon(mobVnumpetNamefalse)
                    else
                        
syschat("Du hast schon ein Haustier gerufen.")
                    
end
                    
if spawn_effect_file_name != nil then
                        pet
.spawn_effect(mobVnumspawn_effect_file_name)
                    
end
                end 
-- if pet.is_summon
            end  
-- if null != pet_info
        end 
-- when
    end 
-- state
end 
-- quest 
Könnte mir jemand i-welche random bonis für die pets reinmachen die auch nach dem recall eines pets verschwinden?
Danke
xFliege is offline  
Thanks
1 User
Old 12/26/2013, 07:52   #9429
 
Naru.Chan's Avatar
 
elite*gold: 0
Join Date: Nov 2012
Posts: 151
Received Thanks: 7
Ohne pet habe ich 80k TP wenn ich Rentierjunges nehme habe ich 95k TP
So nun logge ich mich aus und wieder ein bleiben die 95k TP und kann das
Rentierjunges wieder rufen und habe 110k TP

Kann sich das mal bitte wer anschauen?

Danke im Vorraus.

--------------------------------------------------------------------------------------------------------------
PHP Code:
        when 53002.use with pc.getqf("firephoenix") == and pc.getqf("icephoenix") == and pc.getqf("pwahuang") == and pc.getqf("dog") == and pc.getqf("lion") == and pc.getqf("pig") == and pc.getqf("tiger") == 0 begin
            
if pc.getqf("reindeer") == 0 then
                local old_horse_name 
horse.get_name() ;
                    if 
string.len(old_horse_name) == 0 then
                    end
                chat
("15k TP & 25% Giftwiederstand & 100 Angrifswert!")
                
local your_horse_level horse.get_level()
                
pc.setqf("horse_level_save"your_horse_level)
                
pc.setqf("reindeer_use"1)
                
pc.setqf("reindeer"1)
                
affect.add_collect(apply.MAX_HP1500060*60*8)
                
affect.add_collect(apply.POISON_REDUCE2560*60*8)    
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
horse.set_level("24")
                
horse.unsummon() horse.summon()
                
                
local horse_settings pc.getqf("horse_level_save")
                
horse.set_level(horse_settings)
            else
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.MAX_HP1500060*60*8)
                
affect.remove_collect(apply.POISON_REDUCE2560*60*8)    
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)      
                
horse.unsummon()
                
pc.setqf("reindeer_use"0)
                
pc.setqf("reindeer"0)
                
                
local horse_settings pc.getqf("horse_level_save")
                
horse.set_level(horse_settings)
            
            
end
        end
        when logout 
or shutdown or disconnect or login with pc.getqf("reindeer_use") == 1 begin 
Naru.Chan is offline  
Old 12/26/2013, 12:03   #9430
 
DerForenLeser's Avatar
 
elite*gold: 40
Join Date: Nov 2009
Posts: 1,159
Received Thanks: 442
Quote:
Originally Posted by Naru.Chan View Post
Ohne pet habe ich 80k TP wenn ich Rentierjunges nehme habe ich 95k TP
So nun logge ich mich aus und wieder ein bleiben die 95k TP und kann das
Rentierjunges wieder rufen und habe 110k TP

Kann sich das mal bitte wer anschauen?

Danke im Vorraus.

--------------------------------------------------------------------------------------------------------------
PHP Code:
        when 53002.use with pc.getqf("firephoenix") == and pc.getqf("icephoenix") == and pc.getqf("pwahuang") == and pc.getqf("dog") == and pc.getqf("lion") == and pc.getqf("pig") == and pc.getqf("tiger") == 0 begin
            
if pc.getqf("reindeer") == 0 then
                local old_horse_name 
horse.get_name() ;
                    if 
string.len(old_horse_name) == 0 then
                    end
                chat
("15k TP & 25% Giftwiederstand & 100 Angrifswert!")
                
local your_horse_level horse.get_level()
                
pc.setqf("horse_level_save"your_horse_level)
                
pc.setqf("reindeer_use"1)
                
pc.setqf("reindeer"1)
                
affect.add_collect(apply.MAX_HP1500060*60*8)
                
affect.add_collect(apply.POISON_REDUCE2560*60*8)    
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
horse.set_level("24")
                
horse.unsummon() horse.summon()
                
                
local horse_settings pc.getqf("horse_level_save")
                
horse.set_level(horse_settings)
            else
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.MAX_HP1500060*60*8)
                
affect.remove_collect(apply.POISON_REDUCE2560*60*8)    
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)      
                
horse.unsummon()
                
pc.setqf("reindeer_use"0)
                
pc.setqf("reindeer"0)
                
                
local horse_settings pc.getqf("horse_level_save")
                
horse.set_level(horse_settings)
            
            
end
        end
        when logout 
or shutdown or disconnect or login with pc.getqf("reindeer_use") == 1 begin 

PHP Code:
        when 53002.use with pc.getqf("firephoenix") == and pc.getqf("icephoenix") == and pc.getqf("pwahuang") == and pc.getqf("dog") == and pc.getqf("lion") == and pc.getqf("pig") == and pc.getqf("tiger") == 0 begin
            
if pc.getqf("reindeer") == 0 then
                local old_horse_name 
horse.get_name() ;
                    if 
string.len(old_horse_name) == 0 then
                    end
                chat
("15k TP & 25% Giftwiederstand & 100 Angrifswert!")
                
local your_horse_level horse.get_level()
                
pc.setqf("horse_level_save"your_horse_level)
                
pc.setqf("reindeer_use"1)
                
pc.setqf("reindeer"1)
                
affect.add_collect(apply.MAX_HP1500060*60*8)
                
affect.add_collect(apply.POISON_REDUCE2560*60*8)    
                
affect.add_collect(apply.ATT_GRADE_BONUS10060*60*8)
                
horse.set_level("24")
                
horse.unsummon() horse.summon()
                
                
local horse_settings pc.getqf("horse_level_save")
                
horse.set_level(horse_settings)
            else
                
chat("Dein Haustier verabschiedet sich nun von dir!")
                
affect.remove_collect(apply.MAX_HP1500060*60*8)
                
affect.remove_collect(apply.POISON_REDUCE2560*60*8)    
                
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)      
                
horse.unsummon()
                
pc.setqf("reindeer_use"0)
                
pc.setqf("reindeer"0)
                
                
local horse_settings pc.getqf("horse_level_save")
                
horse.set_level(horse_settings)
            
            
end
        end
        when logout 
or login with pc.getqf("reindeer_use") == 1 begin
            
            pc
.setqf("reindeer_use"0)
            
pc.setqf("reindeer"0)
                
            
local horse_settings pc.getqf("horse_level_save")
            
horse.set_level(horse_settings)
            
            
chat("Dein Haustier verlässt dich nun!")
                
affect.remove_collect(applyMAX_HP1500060*60*8)
        
affect.remove_collect(apply.POISON_REDUCE2560*60*8)   
        
affect.remove_collect(apply.ATT_GRADE_BONUS10060*60*8)
        
end 
Viel Spaß.
DerForenLeser is offline  
Old 12/26/2013, 12:52   #9431
 
elite*gold: 300
Join Date: Apr 2013
Posts: 3,234
Received Thanks: 1,205
PHP Code:
when 71124.use begin
            
if pc.get_level() >= 35 then
                
if pc.is_riding() then
                    pc
.unmount()
                    
affect.remove_collect(apply.ATT_GRADE_BONUS20060*60*60)
                    
affect.remove_collect(apply.DEF_GRADE_BONUS20060*60*60)
                else
                    
chat("Du hast nun einen Weißen Löwen als Reittier!"
                    
chat("Dein Angriff und deine Verteidigung steigen um 200 Punkte!"
                    
pc.mount(20114200000
                    
affect.add_collect(apply.ATT_GRADE_BONUS20060*60*60)
                    
affect.add_collect(apply.DEF_GRADE_BONUS20060*60*60)
                
end
            end
        end 
Warum werden die Bonis nicht entfernt und "stappeln" sich immer wieder?
#Saiirex is offline  
Old 12/26/2013, 14:23   #9432
 
elite*gold: 71
Join Date: Dec 2011
Posts: 598
Received Thanks: 149
So hätte ich es gemacht:
PHP Code:
when 71124.use begin
            
if pc.get_level() >= 35 then
                
if pc.is_riding() then
                    pc
.unmount()
                    
affect.add_collect(apply.ATT_GRADE_BONUS, -20060*60*60)
                    
affect.add_collect(apply.DEF_GRADE_BONUS, -20060*60*60)
                else
                    
chat("Du hast nun einen Weißen Löwen als Reittier!"
                    
chat("Dein Angriff und deine Verteidigung steigen um 200 Punkte!"
                    
pc.mount(20114200000
                    
affect.add_collect(apply.ATT_GRADE_BONUS20060*60*60)
                    
affect.add_collect(apply.DEF_GRADE_BONUS20060*60*60)
                
end
            end
        end 
Ist zwar nicht die beste Variante aber funktioniert..
MrPlayboy is offline  
Old 12/26/2013, 14:36   #9433
 
.Soυzα's Avatar
 
elite*gold: 0
Join Date: Dec 2011
Posts: 1,891
Received Thanks: 1,244
Hallo, ich wollte Fragen ob das richtig ist so?
Ich will mehrere Kordinanten also Map ports hinmachen 3x genau gesagt ist das so korrekt?

PHP Code:
quest capewarp begin
    state start begin
        when 20080.
use begin
            say_title
("capewarp"
            
say("Wohin möchtest du Teleportiert werden?")
        
local empire pc.get_empire() 
                    
local selectmap select("Capedragonhead","Goblin City","BlaBla","Abbrechen")
            if 
empire == 1 then
            pc
.warp(599400756300)
            if 
empire == 2 then
            pc
.warp(599400756300)
            if 
empire == 3 then
            pc
.warp(xxxxxxx)
              
end
           end
        end
     end
  end 
.Soυzα is offline  
Old 12/26/2013, 14:46   #9434
 
elite*gold: 71
Join Date: Dec 2011
Posts: 598
Received Thanks: 149
Du hast nicht angegeben was passieren soll wenn man beim select eine Map auswählt, außerdem muss JEDES if beendet werden:
PHP Code:
quest capewarp begin
    state start begin
        when 20080.
use begin
            local empire 
pc.get_empire() 
            
say_title("capewarp"
            
say("Wohin möchtest du Teleportiert werden?")
            
local a select("Capedragonhead","Goblin City","BlaBla","Abbrechen")
            if 
a==1 then
                
if empire == 1 then
                    pc
.warp(XY)
                elseif 
empire == 2 then
                    pc
.warp(XY)
                elseif 
empire == 3 then
                    pc
.warp(XY)
                
end
            
elseif a==2 then
                
if empire == 1 then
                    pc
.warp(XY)
                elseif 
empire == 2 then
                    pc
.warp(XY)
                elseif 
empire == 3 then
                    pc
.warp(XY)
                
end
            
elseif a==3 then
                
if empire == 1 then
                    pc
.warp(XY)
                elseif 
empire == 2 then
                    pc
.warp(XY)
                elseif 
empire == 3 then
                    pc
.warp(XY)
                
end
            
elseif a==4 then
                
return
            
end
        end
    end
end 
MrPlayboy is offline  
Thanks
1 User
Old 12/26/2013, 16:26   #9435
 
elite*gold: 71
Join Date: Dec 2011
Posts: 598
Received Thanks: 149
PHP Code:
quest pferd begin 
    state start begin     
        when 20349.chat
."Pferd(lv.1)" with horse.get_level() < and pc.get_level() >= 10 begin 
            say_title
('Hallo lieber Spieler'
            
say(''
            
say('Du bist also schon über Level 10?'
            
say('Du kannst dir von mir einen Pony abholen, wenn'
            
say('du mir eine Pferdemedaille bringst?'
            
say_reward('Pferd steigern'
            if 
select('Ja','Nein') == 2 then return end 
            
if pc.count_item(50050) < 1 then 
                say
('Du hast keine Pm.'
                
say('Bitte besorge mir eine PM'
                return 
            
end 
            say_title
(''..pc.get_name()..' Dein Pferde level wurde erfolgreich erhöht.'
            
say('Herzlichen Glückwunsch![ENTER]Dein Pferde Level ist um 1 gestiegen.'
            
horse.set_level(horse.get_level()+1
            if 
horse.get_level() == 1 then 
                pc
.give_item2(50051
                
pc.remove_item(500501)
            
end 
        end 
        when 20349.chat
."Kampfpferd(lv.11)" with horse.get_level() < 11 and pc.get_level() >= 25 begin 
            say_title
('Hallo lieber Spieler'
            
say(''
            
say('Du bist also schon über Level 25?'
            
say('Du kannst dir von mir einen Kampfgaul abholen, wenn'
            
say('du mir 11 Pferdemedaillen bringst?'
            
say_reward('Pferd steigern'
            if 
select('Ja','Nein') == 2 then return end 
            
if pc.count_item(50050) < 11 then 
                say
('Du hast keine Pm.'
                
say('Bitte besorge mir eine PM'
                return 
            
end 
            say_title
(''..pc.get_name()..' Dein Pferde level wurde erfolgreich erhöht.'
            
say('Herzlichen Glückwunsch![ENTER]Dein Pferde Level ist um 1 gestiegen.'
            
horse.set_level(horse.get_level()+1
            if 
horse.get_level() == 11 then 
                pc
.give_item2(50052
            
end 
        end     
        when 20349.chat
."Millitärpferd(lv.21)" with horse.get_level() < 21 and pc.get_level() >= 50 begin 
            say_title
('Hallo lieber Spieler'
            
say(''
            
say('Du bist also schon über Level 50?'
            
say('Du kannst dir von mir einen Milligaul abholen, wenn'
            
say('du mir 21 Pferdemedaillen bringst?'
            
say_reward('Pferd steigern'
            if 
select('Ja','Nein') == 2 then return end 
            
if pc.count_item(50050) < 21 then 
                say
('Du hast keine Pm.'
                
say('Bitte besorge mir eine PM'
                return 
            
end 
            say_title
(''..pc.get_name()..' Dein Pferde level wurde erfolgreich erhöht.'
            
say('Herzlichen Glückwunsch![ENTER]Dein Pferde Level ist um 1 gestiegen.'
            
horse.set_level(horse.get_level()+1)     
            if 
horse.get_level() == 21 then 
                pc
.give_item2(50053
            
end 
        end     
    end 
end 
MrPlayboy is offline  
Reply




All times are GMT +1. The time now is 08:26.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.