[SERVICE] Die Questkontrolle

08/12/2013 12:29 qimi44#8716
Quote:
Originally Posted by qimi44 View Post
PHP Code:
quest mobdrop begin
    state start begin
        when kill with not npc
.is_pc() begin
            local drop_items 
= {
--                {
MOB_RACEITEM_VNUMITEM_COUNTDROP_CHANCEPC_MIN_LEVELPC_MAX_LEVEL}, (kannst du hier stehen lassen)
                {
10119188.551120},
                {
802630198188.551120},
                {
802630199188.551120},
                {
802727992188.551120},
                {
802727993188.551120},
                {
802727994188.551120},
            }
            for 
1table.getn(drop_items), do
                
local dropRacedropItemdropCountdropChancedropMinLeveldropMaxLevel tonumber(drop_items[i][1]), drop_items[i][2], drop_items[i][3], tonumber(drop_items[i][4]), tonumber(drop_items[i][5]), tonumber(drop_items[i][6])
                if 
npc.get_race() == dropRace and pc.get_level() >= dropMinLevel and pc.get_level() <= dropMaxLevel and dropChance >= number(010000) / 100 then
                    pc
.give_item2(dropItemdropCount)
                
end
            end
        end
    end
end 
Problem:
Ich drope von dem Wildhund das gewollene Schwert+9.
Aber von den Metinsteinen drope ich nichts.
Problem steht immernoch
08/12/2013 13:00 #Zyten#8717
Quote:
Originally Posted by .мαяfυ™ View Post
PHP Code:
quest Mbs begin 
    state start begin 
        when 50034.
use begin 
        local 1 

        
if pc.job == 0 then 
            local r 
number(110
            if 
== 1 then 
                pc
.give_item(50401,1
             
            elseif 
== 2 then 
                pc
.give_item(50402,1
            
            elseif 
== 3 then 
                pc
.give_item(50403,1
            
            elseif 
== 4 then 
                pc
.give_item(50404,1
            
            elseif 
== 5 then 
                pc
.give_item(50405,1
            
            elseif 
== 6 then 
                pc
.give_item(50416,1
            
            elseif 
== 7 then 
                pc
.give_item(50417,1
            
            elseif 
== 8 then 
                pc
.give_item(50418,1
             
            elseif 
== 9 then 
                pc
.give_item(50419,1
            
            elseif 
== 10 then 
                pc
.give_item(50420,1)             
            
end 

        
elseif pc.job == 1 then 
            local r 
number(110
            if 
== 1 then 
                pc
.give_item2(50431,1
             
            elseif 
== 2 then 
                pc
.give_item2(50432,1
            
            elseif 
== 3 then 
                pc
.give_item2(50433,1
            
            elseif 
== 4 then 
                pc
.give_item2(50434,1
            
            elseif 
== 5 then 
                pc
.give_item2(50435,1
            
            elseif 
== 6 then 
                pc
.give_item2(50446,1
            
            elseif 
== 7 then 
                pc
.give_item2(50447,1
            
            elseif 
== 8 then 
                pc
.give_item2(50448,1
            
            elseif 
== 9 then 
                pc
.give_item2(50449,1
            
            elseif 
== 10 then 
                pc
.give_item2(50450,1
            
end          

        
elseif pc.job == 2 then 
            local r 
number(112
            if 
== 1 then 
                pc
.give_item3(50461,1
            
            elseif 
== 2 then 
                pc
.give_item3(50462,1
            
            elseif 
== 3 then 
                pc
.give_item3(50463,1
            
            elseif 
== 4 then 
                pc
.give_item3(50464,1
            
            elseif 
== 5 then 
                pc
.give_item3(50465,1
            
            elseif 
== 6 then 
                pc
.give_item3(50466,1
            
            elseif 
== 7 then 
                pc
.give_item3(50476,1
            
            elseif 
== 8 then 
                pc
.give_item3(50478,1
            
            elseif 
== 9 then 
                pc
.give_item3(50479,1
            
            elseif 
== 10 then 
                pc
.give_item3(50480,1
            
            elseif 
== 11 then 
                pc
.give_item3(50481,1
                
            elseif 
== 12 then 
                pc
.give_item3(50477,1
            
end                             

        
elseif pc.job == 3 then 
            local r 
number(112
            if 
== 1 then 
                pc
.give_item4(50491,1
            
            elseif 
== 2 then 
                pc
.give_item4(50492,1
            
            elseif 
== 3 then 
                pc
.give_item4(50493,1
            
            elseif 
== 4 then 
                pc
.give_item4(50494,1
            
            elseif 
== 5 then 
                pc
.give_item4(50495,1
            
            elseif 
== 6 then 
                pc
.give_item4(50496,1
            
            elseif 
== 7 then 
                pc
.give_item4(50506,1
            
            elseif 
== 8 then 
                pc
.give_item4(50507,1
            
            elseif 
== 9 then 
                pc
.give_item4(50508,1
            
            elseif 
== 10 then 
                pc
.give_item4(50509,1
            
            elseif 
== 11 then 
                pc
.give_item4(50510,1
            
            elseif 
== 12 then 
                pc
.give_item4(50511,1
            
end                     
        end 
         
        end     
    end         
end 
MfG

Jetzt kommt aber dieser Fehler.

syntax error : [string "start"]:1: <name> expected near `1'
Mbs.quest:150:Error occured on compile Mbs.quest

Liebe Grüße.
08/12/2013 13:25 Nunuh91#8718
Quote:
Originally Posted by D33XHD View Post
Jetzt kommt aber dieser Fehler.

syntax error : [string "start"]:1: <name> expected near `1'
Mbs.quest:150:Error occured on compile Mbs.quest

Liebe Grüße.
Try Removing 1 end




Quote:
Originally Posted by Mrkholyo View Post
Welcome to all


I made kill quest


But I have a problem


" must start with 'quest'
KillQuest.quest:61;Abort (core dumped) "


and this is the quest :


Code:
quest KillQuest begin
	state start begin
		when login or levelup or enter with pc.get_level() >= 1 begin
            set_state(kholyo_kill)
        end
    end

    state kholyo_kill begin
        when letter begin
            send_letter(" ماتين الأسى ")
        end

        when button or info begin
            say(" إن ماتينات الأسى تسبب الأذى ") 
            say(" للتجار وتعترض طريقهم وتنهب ") 
            say(" اموالهم وأغراضهم يجب ان تضع ") 
            say(" حد لهذه الماتينات ") 
            say(" يجب ان تقوم بتكسير 5 ماتينات أسى ") 
            pc.setqf("state", 5)
            q.set_counter(" قتلت حتى الآن ", 5 )
            set_state (kill)
        end
    end
      
       state kill begin
        when letter begin
            send_letter(" ماتين الأسى ")
        end
        
        when button or info begin
            say_title(" ماتين الأسى : ")
            say_reward( "  العدد المتبقي  "..pc.getqf("state").." ")
            say("")
        end

        when 8001.kill begin
            local count = pc.getqf("state") - 1 
            if count <= 5 then 
			pc.setqf("state", count) 
            q.set_counter(" المتبقي ", count) 
            end 
           if count == 0 then
                say_title(" ماتين الأسى ")
                say(" لقد انتصرت على هذه الماتينات ") 
                say(" انت شجاع حقا ") 
                say(" قم باختيار هديتك ") 
                say("")
                say_reward("2.000.000.000 خبره ")
                say_reward("100.000.000 يانغ ")
				affect.add_collect(apply.DEF_GRADE_BONUS,200,60*60*24*365*60)
                pc.change_money(100000000)
                pc.give_exp2(200000000)
                clear_letter()
                set_state(__COMPLETE__)

            end
        end
    end

    state __COMPLETE__ begin
    end
end


I think that is wrong in this Command :

set_state (kill)

^

The wrong place
set_state("kill")

When I create quest's i have always the same error -.-
nested ==0

Why this happens?
Here is the quest:

PHP Code:
quest m2hjobs begin
    state start begin
        when 20094.chat
."Profissao" with pc.get_level() >= 30 begin
            
if game.get_event_flag("job") == 1 then
                say_title
("Hong_Hae")
                
say("Já tens uma profissão, não podes ter outra.")
                return
            else
                
say_title("Hong-Hae")
                
say("Ola, em M2Halma é possível ter uma profissão")
                
say("e com uma profissão é possível ganhar algum")
                
say("dinheiro e construir objectos nos quais podes")
                
say("usufruir ou vender para outros jogadores")
                
say_gold("Esolhe uma das profissões nas quais queres")
                
say_gold("fazer parte!")
                
say_red("Só podes ter apenas 1 profissão.")
                
local job select("Mineiro" "Sair")
                if 
job == 2 then
                    
return
                elseif 
job == 1 then
                    say_blue2
("Parabéns apartir de agora és mineiro.")
                    
say_blue2("Consulta o fórum para ver o que podes")
                    
say_blue2("fazer com esta profissão.")
                    
set_state("mineiro")
                    
game.set_event_flag("job",1)
                
end
            end
        end
    end

    state mineiro begin
        when 20015.chat
."Profissão de Mineiro" begin
            say_title
("Deokbae")
            
say("Bem Vindo Mineiro, escolhe uma das opções:")
            
local ma select("Ferramentas" "Produções" "Vender Minérios" "Sair")
            if 
ma == 4 then
                
return
            elseif 
ma == 1 then
                npc
.open_shop(999)
                
setskin(NOWINDOW)
            elseif 
ma == 2 then
                local prod 
select ("Caixa Citrina" "Nada")
                if 
prod == 2 then
                    
return
                elseif 
prod == 1 then
                    say_red
("Necessário:")
                    
say("200 - Minério de Ouro")
                    
say("200 - Minério de Cobre")
                    
say_blue2("Queres Produzir?")
                    
local z select("Sim" "Não")
                    if 
== 2 then
                        
return
                    else if 
== 1 then
                        
if pc.count_item(20050) <= 199 and pc.count_item(20052) <= 199 then
                            say
("Não tens os materias necessários!")
                        else
                            
pc.give_item2(501371)
                            
pc.remove_item(20050200)
                            
pc.remove_item(20052200)
                        
end
                    end
                end
            end
        end
    end
end 
08/12/2013 16:07 √π.#8719
Quote:
Originally Posted by qimi44 View Post
Problem steht immernoch
Das Problem liegt irgendwie an den Metinsteinen, hatte das selbe Problem mal. Bei den Vnums wird anscheinend kein kill Event ausgelöst, aus welchem Grund auch immer. Also entweder Metins auf andere Vnum legen, es per mob_drop_item machen oder ne Lösung für das ganze finden. Solltest du letzteres schaffen darfst du mich gerne aufklären^^
08/12/2013 16:28 xXNice18Xx#8720
hi was müsste ich in meiner quest reinschreiben, damit die quest alleine startet ? ( links der brief ) die quest soll mich zum hauptmann führen.. pls help

PHP Code:
quest jobquest begin
    state start begin
        when 20355.chat
."Rekrutenausbildung" with pc.get_level() >= 30 begin
            say_title
("Rekrutenausbildung:")
            
say("")
            
say(""..pc.get_name().." sei gegrüßt!")
            
say("Du kannst bei mir eine Ausbildung beginnen")
            
say("je nach Wahl bekommst du andere Vorteile.")
            
say("Doch eins muss ich dir sagen wähle klug, denn")
            
say("es gibt anderen Spielern gegenüber")
            
say("Vor - und Nachteile.")
            
say("")
            
say("")
            
wait()
            
say_title("Rekrutenausbildung:")
            
say("")
            
say("Ich zähle dir nun auf was in Frage kommen würde")
            
say("bei den Ausbildungen. Du kannst wählen")
            
say("zwischen:")
            
say("")
            
say_gold("Soldat - 3k TP und 20 Stärke")
            
say_gold("Heiliger - 3k TP und 20 Int")
            
say_gold("Ninja - 3k TP und 20 Dex")
            
say_gold("Farmer - 3k TP und 20 Stark gegen Monster")
            
say("")
            
wait()
            
say_title("Rekrutenausbildung:")
            
say("")
            
say("Nun wähle weise und entscheide dich")
            
say("welchen Weg du beschreiten möchtest.")
            
say("")
            
local wahl select ("Soldat""Heiliger""Ninja""Farmer""Abbrechen")
            if 
wahl == 5 then
                
return
            elseif 
wahl == 1 then
                say_title
("Ausbildung zum Soldat:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Soldaten entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Stärke")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.STR2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 2 then
                say_title
("Ausbildung zum Heiligen:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Heiligen entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Int")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.INT2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 3 then
                say_title
("Ausbildung zum Ninja:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Ninja entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Dex")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.DEX2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 4 then
                say_title
("Ausbildung zum Farmer:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Farmer entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Gegen Monster")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.ATT_BONUS_TO_MONSTER2060*60*24*365*60)
                
set_state(__COMPLETE__)
            
end
        end
    end
    state __COMPLETE__ begin
    end
end 
08/12/2013 16:46 qimi44#8721
Quote:
Originally Posted by √π. View Post
Das Problem liegt irgendwie an den Metinsteinen, hatte das selbe Problem mal. Bei den Vnums wird anscheinend kein kill Event ausgelöst, aus welchem Grund auch immer. Also entweder Metins auf andere Vnum legen, es per mob_drop_item machen oder ne Lösung für das ganze finden. Solltest du letzteres schaffen darfst du mich gerne aufklären^^
ich probiere es mal mit einer anderen vnum
08/12/2013 16:49 G.I Duke#8722
Quote:
Originally Posted by D33XHD View Post
Jetzt kommt aber dieser Fehler.

syntax error : [string "start"]:1: <name> expected near `1'
Mbs.quest:150:Error occured on compile Mbs.quest

Liebe Grüße.
PHP Code:
quest Mbs begin  
    state start begin  
        when 50034.
use begin
        
if pc.job == 0 then  
            local r 
number(110)  
            if 
== 1 then  
                pc
.give_item2(50401,1)
            elseif 
== 2 then  
                pc
.give_item2(50402,1)
            elseif 
== 3 then  
                pc
.give_item2(50403,1)
            elseif 
== 4 then  
                pc
.give_item2(50404,1)
            elseif 
== 5 then  
                pc
.give_item2(50405,1
            elseif 
== 6 then  
                pc
.give_item2(50416,1
            elseif 
== 7 then  
                pc
.give_item2(50417,1)
            elseif 
== 8 then  
                pc
.give_item2(50418,1)
            elseif 
== 9 then  
                pc
.give_item2(50419,1)
            elseif 
== 10 then  
                pc
.give_item2(50420,1)              
            
end  
        
elseif pc.job == 1 then  
            local r 
number(110)  
            if 
== 1 then  
                pc
.give_item2(50431,1)
            elseif 
== 2 then  
                pc
.give_item2(50432,1)
            elseif 
== 3 then  
                pc
.give_item2(50433,1)
            elseif 
== 4 then  
                pc
.give_item2(50434,1)
            elseif 
== 5 then  
                pc
.give_item2(50435,1)
            elseif 
== 6 then  
                pc
.give_item2(50446,1)
            elseif 
== 7 then  
                pc
.give_item2(50447,1)
            elseif 
== 8 then  
                pc
.give_item2(50448,1)
            elseif 
== 9 then  
                pc
.give_item2(50449,1)
            elseif 
== 10 then  
                pc
.give_item2(50450,1)  
            
end
        
elseif pc.job == 2 then  
            local r 
number(112)  
            if 
== 1 then  
                pc
.give_item2(50461,1)
            elseif 
== 2 then  
                pc
.give_item2(50462,1)
            elseif 
== 3 then  
                pc
.give_item2(50463,1)
            elseif 
== 4 then  
                pc
.give_item2(50464,1)
            elseif 
== 5 then  
                pc
.give_item2(50465,1)  
            elseif 
== 6 then  
                pc
.give_item2(50466,1
            elseif 
== 7 then  
                pc
.give_item2(50476,1)
            elseif 
== 8 then  
                pc
.give_item2(50478,1)
            elseif 
== 9 then  
                pc
.give_item2(50479,1)
            elseif 
== 10 then  
                pc
.give_item2(50480,1)     
            elseif 
== 11 then  
                pc
.give_item2(50481,1
            elseif 
== 12 then  
                pc
.give_item2(50477,1)  
            
end
        
elseif pc.job == 3 then  
            local r 
number(112)  
            if 
== 1 then  
                pc
.give_item2(50491,1)
            elseif 
== 2 then  
                pc
.give_item2(50492,1)
            elseif 
== 3 then  
                pc
.give_item2(50493,1)
            elseif 
== 4 then  
                pc
.give_item2(50494,1)
            elseif 
== 5 then  
                pc
.give_item2(50495,1)  
            elseif 
== 6 then  
                pc
.give_item2(50496,1)  
            elseif 
== 7 then  
                pc
.give_item2(50506,1)  
            elseif 
== 8 then  
                pc
.give_item2(50507,1)  
            elseif 
== 9 then  
                pc
.give_item2(50508,1)   
            elseif 
== 10 then  
                pc
.give_item2(50509,1)  
            elseif 
== 11 then  
                pc
.give_item2(50510,1)  
            elseif 
== 12 then  
                pc
.give_item2(50511,1)  
            
end                      
        end  
          
        end      
    end          
end 
wie kommst du auf pc.give_item3 und pc.give_item4?

Quote:
Originally Posted by xXNice18Xx View Post
hi was müsste ich in meiner quest reinschreiben, damit die quest alleine startet ? ( links der brief ) die quest soll mich zum hauptmann führen.. pls help

PHP Code:
quest jobquest begin
    state start begin
        when 20355.chat
."Rekrutenausbildung" with pc.get_level() >= 30 begin
            say_title
("Rekrutenausbildung:")
            
say("")
            
say(""..pc.get_name().." sei gegrüßt!")
            
say("Du kannst bei mir eine Ausbildung beginnen")
            
say("je nach Wahl bekommst du andere Vorteile.")
            
say("Doch eins muss ich dir sagen wähle klug, denn")
            
say("es gibt anderen Spielern gegenüber")
            
say("Vor - und Nachteile.")
            
say("")
            
say("")
            
wait()
            
say_title("Rekrutenausbildung:")
            
say("")
            
say("Ich zähle dir nun auf was in Frage kommen würde")
            
say("bei den Ausbildungen. Du kannst wählen")
            
say("zwischen:")
            
say("")
            
say_gold("Soldat - 3k TP und 20 Stärke")
            
say_gold("Heiliger - 3k TP und 20 Int")
            
say_gold("Ninja - 3k TP und 20 Dex")
            
say_gold("Farmer - 3k TP und 20 Stark gegen Monster")
            
say("")
            
wait()
            
say_title("Rekrutenausbildung:")
            
say("")
            
say("Nun wähle weise und entscheide dich")
            
say("welchen Weg du beschreiten möchtest.")
            
say("")
            
local wahl select ("Soldat""Heiliger""Ninja""Farmer""Abbrechen")
            if 
wahl == 5 then
                
return
            elseif 
wahl == 1 then
                say_title
("Ausbildung zum Soldat:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Soldaten entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Stärke")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.STR2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 2 then
                say_title
("Ausbildung zum Heiligen:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Heiligen entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Int")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.INT2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 3 then
                say_title
("Ausbildung zum Ninja:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Ninja entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Dex")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.DEX2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 4 then
                say_title
("Ausbildung zum Farmer:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Farmer entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Gegen Monster")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.ATT_BONUS_TO_MONSTER2060*60*24*365*60)
                
set_state(__COMPLETE__)
            
end
        end
    end
    state __COMPLETE__ begin
    end
end 
PHP Code:
quest jobquest begin
    state start begin
        when levelup with pc
.get_level() == 90 begin 
        set_state
(lv90)
        
end
    end
    
    state lv90 begin
        when letter begin
            send_letter
("Der Hauptmann sucht dich!")
            
local v find_npc_by_vnum(hauptmann_vnum)  -- hier noch die Hauptmann Vnum Eintrag
            
if != 0 then target.vid("__TARGET__"v"Hauptmann")
            
end
        end
        
        when button 
or info begin
            say_title
("Information:")
            
say()
            
say("Der Hauptmann ist auf der Suche nach dir,")
            
say("geh zu ihm und sieh nach was er will.")
            
say()
        
end
        
        when __TARGET__
.target.click or 20355.chat."Rekrutenausbildung" with pc.get_level() >= 30 begin
            target
.delete("__TARGET__")
            
say_title("Rekrutenausbildung:")
            
say("")
            
say(""..pc.get_name().." sei gegrüßt!")
            
say("Du kannst bei mir eine Ausbildung beginnen")
            
say("je nach Wahl bekommst du andere Vorteile.")
            
say("Doch eins muss ich dir sagen wähle klug, denn")
            
say("es gibt anderen Spielern gegenüber")
            
say("Vor - und Nachteile.")
            
say("")
            
say("")
            
wait()
            
say_title("Rekrutenausbildung:")
            
say("")
            
say("Ich zähle dir nun auf was in Frage kommen würde")
            
say("bei den Ausbildungen. Du kannst wählen")
            
say("zwischen:")
            
say("")
            
say_gold("Soldat - 3k TP und 20 Stärke")
            
say_gold("Heiliger - 3k TP und 20 Int")
            
say_gold("Ninja - 3k TP und 20 Dex")
            
say_gold("Farmer - 3k TP und 20 Stark gegen Monster")
            
say("")
            
wait()
            
say_title("Rekrutenausbildung:")
            
say("")
            
say("Nun wähle weise und entscheide dich")
            
say("welchen Weg du beschreiten möchtest.")
            
say("")
            
local wahl select ("Soldat""Heiliger""Ninja""Farmer""Abbrechen")
            if 
wahl == 5 then
                
return
            elseif 
wahl == 1 then
                say_title
("Ausbildung zum Soldat:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Soldaten entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Stärke")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.STR2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 2 then
                say_title
("Ausbildung zum Heiligen:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Heiligen entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Int")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.INT2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 3 then
                say_title
("Ausbildung zum Ninja:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Ninja entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Dex")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.DEX2060*60*24*365*60)
                
set_state(__COMPLETE__)
            elseif 
wahl == 4 then
                say_title
("Ausbildung zum Farmer:")
                
say("")
                
say("Du hast dich zu einer Ausbildung zum")
                
say("Farmer entschieden "..pc.get_name()..".")
                
say("Eine sehr kluge Wahl.")
                
say("")
                
say_gold("Folgende Werte sind nun gestiegen:")
                
say("")
                
say_gold("+3k TP")
                
say_gold("+20 Gegen Monster")
                
affect.add_collect(apply.MAX_HP300060*60*24*365*60)
                
affect.add_collect(apply.ATT_BONUS_TO_MONSTER2060*60*24*365*60)
                
set_state(__COMPLETE__)
            
end
        end
    end
    state __COMPLETE__ begin
    end
end 
MfG

Quote:
Originally Posted by Mrkholyo View Post
Welcome to all


I made kill quest


But I have a problem


" must start with 'quest'
KillQuest.quest:61;Abort (core dumped) "


and this is the quest :


Code:
quest KillQuest begin
	state start begin
		when login or levelup or enter with pc.get_level() >= 1 begin
            set_state(kholyo_kill)
        end
    end

    state kholyo_kill begin
        when letter begin
            send_letter(" ماتين الأسى ")
        end

        when button or info begin
            say(" إن ماتينات الأسى تسبب الأذى ") 
            say(" للتجار وتعترض طريقهم وتنهب ") 
            say(" اموالهم وأغراضهم يجب ان تضع ") 
            say(" حد لهذه الماتينات ") 
            say(" يجب ان تقوم بتكسير 5 ماتينات أسى ") 
            pc.setqf("state", 5)
            q.set_counter(" قتلت حتى الآن ", 5 )
            set_state (kill)
        end
    end
      
       state kill begin
        when letter begin
            send_letter(" ماتين الأسى ")
        end
        
        when button or info begin
            say_title(" ماتين الأسى : ")
            say_reward( "  العدد المتبقي  "..pc.getqf("state").." ")
            say("")
        end

        when 8001.kill begin
            local count = pc.getqf("state") - 1 
            if count <= 5 then 
			pc.setqf("state", count) 
            q.set_counter(" المتبقي ", count) 
            end 
           if count == 0 then
                say_title(" ماتين الأسى ")
                say(" لقد انتصرت على هذه الماتينات ") 
                say(" انت شجاع حقا ") 
                say(" قم باختيار هديتك ") 
                say("")
                say_reward("2.000.000.000 خبره ")
                say_reward("100.000.000 يانغ ")
				affect.add_collect(apply.DEF_GRADE_BONUS,200,60*60*24*365*60)
                pc.change_money(100000000)
                pc.give_exp2(200000000)
                clear_letter()
                set_state(__COMPLETE__)

            end
        end
    end

    state __COMPLETE__ begin
    end
end


I think that is wrong in this Command :

set_state (kill)

^

The wrong place
PHP Code:
quest KillQuest begin
    state start begin
        when login 
or levelup or enter with pc.get_level() >= 1 begin
            set_state
(kholyo_kill)
        
end
    end

    state kholyo_kill begin
        when letter begin
            send_letter
(" ماتين الأسى ")
        
end

        when button 
or info begin
            say
(" إن ماتينات الأسى تسبب الأذى "
            
say(" للتجار وتعترض طريقهم وتنهب "
            
say(" اموالهم وأغراضهم يجب ان تضع "
            
say(" حد لهذه الماتينات "
            
say(" يجب ان تقوم بتكسير 5 ماتينات أسى "
            
pc.setqf("state"5)
            
q.set_counter(" قتلت حتى الآن ")
            
set_state(kill)
        
end
    end
      
    state kill begin
        when letter begin
            send_letter
(" ماتين الأسى ")
        
end
        
        when button 
or info begin
            say_title
(" ماتين الأسى : ")
            
say_reward"  العدد المتبقي  "..pc.getqf("state").." ")
            
say("")
        
end

        when 8001.kill begin
            local count 
pc.getqf("state") - 
            pc
.setqf("state"pc.getqf("state")-1
            
q.set_counter(" المتبقي "count)
            if 
pc.getqf("state") < 1 then
                say_title
(" ماتين الأسى ")
                
say(" لقد انتصرت على هذه الماتينات "
                
say(" انت شجاع حقا "
                
say(" قم باختيار هديتك "
                
say("")
                
say_reward("2.000.000.000 خبره ")
                
say_reward("100.000.000 يانغ ")
                
affect.add_collect(apply.DEF_GRADE_BONUS,200,60*60*24*365*60)
                
pc.change_money(100000000)
                
pc.give_exp2(200000000)
                
clear_letter()
                
set_state(__COMPLETE__)
            
end
        end
    end

    state __COMPLETE__ begin
    end
end 
08/13/2013 08:42 #Zyten#8723
Quote:
Originally Posted by .мαяfυ™ View Post
PHP Code:
quest Mbs begin  
    state start begin  
        when 50034.
use begin
        
if pc.job == 0 then  
            local r 
number(110)  
            if 
== 1 then  
                pc
.give_item2(50401,1)
            elseif 
== 2 then  
                pc
.give_item2(50402,1)
            elseif 
== 3 then  
                pc
.give_item2(50403,1)
            elseif 
== 4 then  
                pc
.give_item2(50404,1)
            elseif 
== 5 then  
                pc
.give_item2(50405,1
            elseif 
== 6 then  
                pc
.give_item2(50416,1
            elseif 
== 7 then  
                pc
.give_item2(50417,1)
            elseif 
== 8 then  
                pc
.give_item2(50418,1)
            elseif 
== 9 then  
                pc
.give_item2(50419,1)
            elseif 
== 10 then  
                pc
.give_item2(50420,1)              
            
end  
        
elseif pc.job == 1 then  
            local r 
number(110)  
            if 
== 1 then  
                pc
.give_item2(50431,1)
            elseif 
== 2 then  
                pc
.give_item2(50432,1)
            elseif 
== 3 then  
                pc
.give_item2(50433,1)
            elseif 
== 4 then  
                pc
.give_item2(50434,1)
            elseif 
== 5 then  
                pc
.give_item2(50435,1)
            elseif 
== 6 then  
                pc
.give_item2(50446,1)
            elseif 
== 7 then  
                pc
.give_item2(50447,1)
            elseif 
== 8 then  
                pc
.give_item2(50448,1)
            elseif 
== 9 then  
                pc
.give_item2(50449,1)
            elseif 
== 10 then  
                pc
.give_item2(50450,1)  
            
end
        
elseif pc.job == 2 then  
            local r 
number(112)  
            if 
== 1 then  
                pc
.give_item2(50461,1)
            elseif 
== 2 then  
                pc
.give_item2(50462,1)
            elseif 
== 3 then  
                pc
.give_item2(50463,1)
            elseif 
== 4 then  
                pc
.give_item2(50464,1)
            elseif 
== 5 then  
                pc
.give_item2(50465,1)  
            elseif 
== 6 then  
                pc
.give_item2(50466,1
            elseif 
== 7 then  
                pc
.give_item2(50476,1)
            elseif 
== 8 then  
                pc
.give_item2(50478,1)
            elseif 
== 9 then  
                pc
.give_item2(50479,1)
            elseif 
== 10 then  
                pc
.give_item2(50480,1)     
            elseif 
== 11 then  
                pc
.give_item2(50481,1
            elseif 
== 12 then  
                pc
.give_item2(50477,1)  
            
end
        
elseif pc.job == 3 then  
            local r 
number(112)  
            if 
== 1 then  
                pc
.give_item2(50491,1)
            elseif 
== 2 then  
                pc
.give_item2(50492,1)
            elseif 
== 3 then  
                pc
.give_item2(50493,1)
            elseif 
== 4 then  
                pc
.give_item2(50494,1)
            elseif 
== 5 then  
                pc
.give_item2(50495,1)  
            elseif 
== 6 then  
                pc
.give_item2(50496,1)  
            elseif 
== 7 then  
                pc
.give_item2(50506,1)  
            elseif 
== 8 then  
                pc
.give_item2(50507,1)  
            elseif 
== 9 then  
                pc
.give_item2(50508,1)   
            elseif 
== 10 then  
                pc
.give_item2(50509,1)  
            elseif 
== 11 then  
                pc
.give_item2(50510,1)  
            elseif 
== 12 then  
                pc
.give_item2(50511,1)  
            
end                      
        end  
          
        end      
    end          
end 
wie kommst du auf pc.give_item3 und pc.give_item4?
Naja Mijago hat mal ihn einen Thema mal geschrieben das schon "pc.give_item" existiert und man einfach hinter "pc.give_item" eine 1 schreiben soll oder halt die 2 etc.

Ich habe jetzt ein Problem bei der Quest. Undzwar ich möchte ja das wenn man die Truhe anklickt das sie auch gleich verschwindet.
Da brauch ich mal hilfe.

Liebe Grüße
08/13/2013 14:48 arakel112#8724
Code:
quest time_notice begin 
    state start begin 
        when 9009.chat."Automatische Nachricht" with pc.is_gm() begin 
            say_title(mob_name(npc.get_race())) 
            say() 
            say("Serverzeit: "..os.date("%H:%M:%S")) 
            say("Nachricht system ist gerade "..({[0]="Aus",[1]="An"})[game.get_event_flag("loop_time")]) 
            say("was möchtest du tun?") 
            local s= select("Anschalten","Ausschalten","Abbrechen") 
            if s==3 then return end 
            if s==1 then 
                game.set_event_flag("loop_time",1) 
                server_loop_timer("loop_time",2,get_server_timer_arg()) 
            else 
                game.set_event_flag("loop_time",0) 
                clear_server_timer("loop_time") 
            end 
            say("Nachricht system "..({"An","Aus"})[s]) 
        end 
        when loop_time.timer begin 
            local time_notice={ 
                ['hour']={  
                    ['min']={ 
                        [16]='Hallo liebe Spieler, vergesst nicht Täglich zu Voten', 
                        [16]='Damit mehr User kommmen und den Server erhalten bleiben kann', 
                        [30]='Hilft uns mit der Homepage indem ihr Spendet! Oder sofort beim Hoster: http://server.nitrado.net/donations/donate/237997', 
                    }, 
                } 
            } 
            if game.get_event_flag("hour_time")!=tonumber(os.date("%H")) and game.get_event_flag("min_time")!=tonumber(os.date("%M")) then 
                game.set_event_flag("hour_time",0) game.set_event_flag("min_time",0) 
                for zeit,text in pairs(time_notice.hour) do 
                    if type(zeit)=='number' then 
                        if zeit==tonumber(os.date("%H")) then 
                            notice_all(text) 
                            game.set_event_flag("hour_time",tonumber(os.date("%H"))) 
                        end 
                    end 
                    if type(text)=='table' then 
                        table.foreach(time_notice['hour']['min'], 
                        function(t_ime,t_ext) 
                            if t_ime==tonumber(os.date("%M")) then 
                                notice_all(t_ext) 
                                game.set_event_flag("min_time",tonumber(os.date("%M"))) 
                            end 
                        end) 
                    end 
                end 
            end 
        end  
    end 
end

Fehler: (siehe Anhang)
08/13/2013 15:20 Mijago#8725
Quote:
Originally Posted by D33XHD View Post
Naja Mijago hat mal ihn einen Thema mal geschrieben das schon "pc.give_item" existiert und man einfach hinter "pc.give_item" eine 1 schreiben soll oder halt die 2 etc.

Ich habe jetzt ein Problem bei der Quest. Undzwar ich möchte ja das wenn man die Truhe anklickt das sie auch gleich verschwindet.
Da brauch ich mal hilfe.

Liebe Grüße
Klar, schön auf mich schieben.

Quote:
Originally Posted by arakel112 View Post
Code:
quest time_notice begin 
    state start begin 
        when 9009.chat."Automatische Nachricht" with pc.is_gm() begin 
            say_title(mob_name(npc.get_race())) 
            say() 
            say("Serverzeit: "..os.date("%H:%M:%S")) 
            say("Nachricht system ist gerade "..({[0]="Aus",[1]="An"})[game.get_event_flag("loop_time")]) 
            say("was möchtest du tun?") 
            local s= select("Anschalten","Ausschalten","Abbrechen") 
            if s==3 then return end 
            if s==1 then 
                game.set_event_flag("loop_time",1) 
                server_loop_timer("loop_time",2,get_server_timer_arg()) 
            else 
                game.set_event_flag("loop_time",0) 
                clear_server_timer("loop_time") 
            end 
            say("Nachricht system "..({"An","Aus"})[s]) 
        end 
        when loop_time.timer begin 
            local time_notice={ 
                ['hour']={  
                    ['min']={ 
                        [16]='Hallo liebe Spieler, vergesst nicht Täglich zu Voten', 
                        [16]='Damit mehr User kommmen und den Server erhalten bleiben kann', 
                        [30]='Hilft uns mit der Homepage indem ihr Spendet! Oder sofort beim Hoster: http://server.nitrado.net/donations/donate/237997', 
                    }, 
                } 
            } 
            if game.get_event_flag("hour_time")!=tonumber(os.date("%H")) and game.get_event_flag("min_time")!=tonumber(os.date("%M")) then 
                game.set_event_flag("hour_time",0) game.set_event_flag("min_time",0) 
                for zeit,text in pairs(time_notice.hour) do 
                    if type(zeit)=='number' then 
                        if zeit==tonumber(os.date("%H")) then 
                            notice_all(text) 
                            game.set_event_flag("hour_time",tonumber(os.date("%H"))) 
                        end 
                    end 
                    if type(text)=='table' then 
                        table.foreach(time_notice['hour']['min'], 
                        function(t_ime,t_ext) 
                            if t_ime==tonumber(os.date("%M")) then 
                                notice_all(t_ext) 
                                game.set_event_flag("min_time",tonumber(os.date("%M"))) 
                            end 
                        end) 
                    end 
                end 
            end 
        end  
    end 
end

Fehler: (siehe Anhang)
Füg die 2 Funktionen (pairs etc) in die quest_functions c: einfach untereinander reihen
08/13/2013 15:33 arakel112#8726
@Mijago
Ich verstehe grad wirklick Bahnhof !

Füg die 2 Funktionen (pairs etc) in die quest_functions c: einfach untereinander reihen ? Kannst du es bitte nicht einfach selber machen .. bin grad nicht der beste in Quest Writen!
08/13/2013 16:48 G.I Duke#8727
Quote:
Originally Posted by D33XHD View Post
Naja Mijago hat mal ihn einen Thema mal geschrieben das schon "pc.give_item" existiert und man einfach hinter "pc.give_item" eine 1 schreiben soll oder halt die 2 etc.

Ich habe jetzt ein Problem bei der Quest. Undzwar ich möchte ja das wenn man die Truhe anklickt das sie auch gleich verschwindet.
Da brauch ich mal hilfe.

Liebe Grüße
einfach so weiter machen
PHP Code:
local r number(110)   
            if 
== 1 then   
                pc
.give_item2(50401,1)
                
pc.remove_item(50034)
            elseif 
== 2 then   
                pc
.give_item2(50402,1)
                
pc.remove_item(50034
08/13/2013 17:13 qimi44#8728
Quote:
Originally Posted by qimi44 View Post
PHP Code:
quest mobdrop begin
    state start begin
        when kill with not npc
.is_pc() begin
            local drop_items 
= {
--                {
MOB_RACEITEM_VNUMITEM_COUNTDROP_CHANCEPC_MIN_LEVELPC_MAX_LEVEL}, (kannst du hier stehen lassen)
                {
10119188.551120},
                {
802630198188.551120},
                {
802630199188.551120},
                {
802727992188.551120},
                {
802727993188.551120},
                {
802727994188.551120},
            }
            for 
1table.getn(drop_items), do
                
local dropRacedropItemdropCountdropChancedropMinLeveldropMaxLevel tonumber(drop_items[i][1]), drop_items[i][2], drop_items[i][3], tonumber(drop_items[i][4]), tonumber(drop_items[i][5]), tonumber(drop_items[i][6])
                if 
npc.get_race() == dropRace and pc.get_level() >= dropMinLevel and pc.get_level() <= dropMaxLevel and dropChance >= number(010000) / 100 then
                    pc
.give_item2(dropItemdropCount)
                
end
            end
        end
    end
end 
Problem:
Ich drope von dem Wildhund das gewollene Schwert+9.
Aber von den Metinsteinen drope ich nichts.
Problem steht immernoch ...
08/13/2013 17:19 G.I Duke#8729
Quote:
Originally Posted by qimi44 View Post
Problem steht immernoch ...
Regel dass doch über die mob_drop_item.txt .. viel simpler
08/13/2013 17:24 qimi44#8730
Die funktioniert bei mir ja auch nicht -.-