[SERVICE] Die Questkontrolle

01/23/2016 01:48 36666669#12121
Quote:
Originally Posted by Rofelmau View Post
kannst es in ne quest rolle einbinden
kannst du mir das machen ;P?
01/23/2016 03:52 Noa_#12122
Quote:
Originally Posted by infinty04 View Post
Hallo wie kann ich den 6 skill in dieser quest mit einbinden?

das man auch diesen von M auf P setzen kann


regenbogenstein quest


Du musst die special.active_skill_list Tabelle bearbeiten und die skill Id eintragen.
Es müsste eigtl. in der questlib.lua sein
01/23/2016 04:10 36666669#12123
Moin... Hab hier n quest.. die mich net machen lassen will :D
so die quest geht an sich.. oder auch nicht . ich will das Item1 {50512} nur geht wenn ich item2 {50513} in mein i habe... aber ... wenn ich item1 anklicke zeigt er mir meine sachen an ich klick auf weiter um meine g skills zu machen.. nunja es geht nicht item2 geht weg und ich habe keine weiter g skill bekommen, wenn ich Item2 2 mal habe dan geht es.. aber ich will das es mit 1 mal item 2 geht..


Quote:
Originally Posted by Rofelmau View Post
kannst es in ne quest rolle einbinden
Quote:
Originally Posted by Noa_ View Post
Du musst die special.active_skill_list Tabelle bearbeiten und die skill Id eintragen.
Es müsste eigtl. in der questlib.lua sein
Hier
01/23/2016 04:37 infinty04#12124
Quote:
Originally Posted by Noa_ View Post
Du musst die special.active_skill_list Tabelle bearbeiten und die skill Id eintragen.
Es müsste eigtl. in der questlib.lua sein
danke das hat schon mal geklappt
Und wo muss ich den name eintragen in welcher liste?
Weil jetzt steht da nur 6
01/23/2016 05:03 36666669#12125
mit den namen schaue ich noch^^
01/23/2016 05:20 Noa_#12126
für die namen ist diese tabelle locale.GM_SKILL_NAME_DICT , diese findest du bei locale.lua

Quote:
Originally Posted by 36666669 View Post
Moin... Hab hier n quest.. die mich net machen lassen will :D
so die quest geht an sich.. oder auch nicht . ich will das Item1 {50512} nur geht wenn ich item2 {50513} in mein i habe... aber ... wenn ich item1 anklicke zeigt er mir meine sachen an ich klick auf weiter um meine g skills zu machen.. nunja es geht nicht item2 geht weg und ich habe keine weiter g skill bekommen, wenn ich Item2 2 mal habe dan geht es.. aber ich will das es mit 1 mal item 2 geht..






Hier
kannst du das bitte mal formatiert posten in php, so ist das anstrengender die quest zu kontrollieren
01/23/2016 05:35 36666669#12127
PHP Code:
quest training_grandmaster_skill begin    state start begin        when 50512.use begin            if pc.count_item(50513) >= 1 then                if pc.get_skill_group() == 0 then                    say_title(gameforge.training_grandmaster_skill._10_sayTitle)                    say(gameforge.training_grandmaster_skill._20_say)                    return                end
                
if get_time() < pc.getqf("next_time"then                    if pc.is_skill_book_no_delay() then                        say_title(gameforge.training_grandmaster_skill._10_sayTitle)                        say(gameforge.training_grandmaster_skill._30_say)                        wait()                    else                        say_title(gameforge.training_grandmaster_skill._10_sayTitle)                        say(gameforge.training_grandmaster_skill._40_say)                        return                    end                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_title(gameforge.training_grandmaster_skill._10_sayTitle)                say(gameforge.training_grandmaster_skill._50_say)                return            end            say_title(gameforge.training_grandmaster_skill._10_sayTitle)            say(gameforge.training_grandmaster_skill._60_say)
            
local menu_list = {}            table.foreach(name_list, function(inametable.insert(menu_listnameend)            table.insert(menu_listgameforge.locale.cancel
            
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 1000+500*(skill_level-30)
            
test_chat(string.format(gameforge.training_grandmaster_skill._70_chatcur_alignment..gameforge.training_grandmaster_skill._75_chat..need_alignment))
            
local title=string.format(gameforge.training_grandmaster_skill._80_stringFormatskill_nameskill_level-30+1)
            
say_title(gameforge.training_grandmaster_skill._10_sayTitle)            say(gameforge.training_grandmaster_skill._90_say)
            if 
cur_alignment<-19000+need_alignment then                say_reward(gameforge.training_grandmaster_skill._100_sayReward)                                return            end
            
if cur_alignment<0 thensay_reward(string.format(gameforge.training_grandmaster_skill._110_sayRewardneed_alignmentneed_alignment*2))                say_reward(gameforge.training_grandmaster_skill._120_sayReward)                need_alignment=need_alignment*2            elseif cur_alignment<need_alignment thensay_reward(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))                say_reward(gameforge.training_grandmaster_skill._140_sayReward)            elsesay_reward(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))            end                            local sselect(gameforge.locale.levelup.prev_quest_gogameforge.locale.cancel)                            if s==2 then                return            end

            
if cur_alignment>=and cur_alignment<need_alignment thensay_title(title)                say_reward(gameforge.training_grandmaster_skill._150_sayReward)                say(gameforge.training_grandmaster_skill._160_say)                say_reward(gameforge.training_grandmaster_skill._170_sayReward)                say(gameforge.training_grandmaster_skill._180_say)                local s=input()                string.gsub(s"(%a*)%s*""%1")                string.lower(string.gsub(s"(%a*)%s*""%1"))
                
local t string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1")                string.lower(string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1"))                                if s!=t then                    return                end            end
            
if get_time() < pc.getqf("next_time"then                if pc.is_skill_book_no_delay() then                    pc.remove_skill_book_no_delay()                else                    say_title(gameforge.training_grandmaster_skill._10_sayTitle)                    return                end            end
            pc
.setqf("next_time"get_time()+time_hour_to_sec(number(812)))

            if 
need_alignment>0 then                if pc.count_item(50513) > 0 then                    if pc.learn_grand_master_skill(skill_vnumthen                        pc.change_alignment(-need_alignment)                                        say_title(title)                        say_reward(gameforge.training_grandmaster_skill._190_sayReward)
                        if 
40 == pc.get_skill_level(skill_vnumthen                            say(gameforge.training_grandmaster_skill._200_say)                            say(string.format(gameforge.training_grandmaster_skill._210_sayskill_name))                            say(gameforge.training_grandmaster_skill._220_say)                        else                            say(gameforge.training_grandmaster_skill._230_say)                            say(string.format(gameforge.training_grandmaster_skill._240_sayskill_nameskill_level-30+1+1))                        end                        say_reward(gameforge.training_grandmaster_skill._250_sayReward)                        say_reward(string.format(gameforge.training_grandmaster_skill._260_sayRewardneed_alignment))                    else                        say_title(title)                        say_reward(gameforge.training_grandmaster_skill._270_sayReward)                        say(gameforge.training_grandmaster_skill._280_say)                        say_reward(gameforge.training_grandmaster_skill._290_sayReward)                        pc.change_alignment(-number(need_alignment/3need_alignment/2))                    end                    pc.remove_item(50513)                else                    char_log(0"HACK 50513"pc.getname())                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 = {}
            
table.foreach(skill_list,             function(iskill_vnum)             local skill_level pc.get_skill_level(skill_vnum)
            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)                    pc.remove_item(505131)                end            end)            return {ret_vnum_listret_name_list}        end    endend 
Hier :)

Quote:
Originally Posted by Noa_ View Post
Du musst die special.active_skill_list Tabelle bearbeiten und die skill Id eintragen.
Es müsste eigtl. in der questlib.lua sein
Quote:
Originally Posted by infinty04 View Post
danke das hat schon mal geklappt
Und wo muss ich den name eintragen in welcher liste?
Weil jetzt steht da nur 6
habs ;P
01/23/2016 05:57 Noa_#12128
Quote:
Originally Posted by 36666669 View Post
PHP Code:
quest training_grandmaster_skill begin    state start begin        when 50512.use begin            if pc.count_item(50513) >= 1 then                if pc.get_skill_group() == 0 then                    say_title(gameforge.training_grandmaster_skill._10_sayTitle)                    say(gameforge.training_grandmaster_skill._20_say)                    return                end
                
if get_time() < pc.getqf("next_time"then                    if pc.is_skill_book_no_delay() then                        say_title(gameforge.training_grandmaster_skill._10_sayTitle)                        say(gameforge.training_grandmaster_skill._30_say)                        wait()                    else                        say_title(gameforge.training_grandmaster_skill._10_sayTitle)                        say(gameforge.training_grandmaster_skill._40_say)                        return                    end                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_title(gameforge.training_grandmaster_skill._10_sayTitle)                say(gameforge.training_grandmaster_skill._50_say)                return            end            say_title(gameforge.training_grandmaster_skill._10_sayTitle)            say(gameforge.training_grandmaster_skill._60_say)
            
local menu_list = {}            table.foreach(name_list, function(inametable.insert(menu_listnameend)            table.insert(menu_listgameforge.locale.cancel
            
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 1000+500*(skill_level-30)
            
test_chat(string.format(gameforge.training_grandmaster_skill._70_chatcur_alignment..gameforge.training_grandmaster_skill._75_chat..need_alignment))
            
local title=string.format(gameforge.training_grandmaster_skill._80_stringFormatskill_nameskill_level-30+1)
            
say_title(gameforge.training_grandmaster_skill._10_sayTitle)            say(gameforge.training_grandmaster_skill._90_say)
            if 
cur_alignment<-19000+need_alignment then                say_reward(gameforge.training_grandmaster_skill._100_sayReward)                                return            end
            
if cur_alignment<0 thensay_reward(string.format(gameforge.training_grandmaster_skill._110_sayRewardneed_alignmentneed_alignment*2))                say_reward(gameforge.training_grandmaster_skill._120_sayReward)                need_alignment=need_alignment*2            elseif cur_alignment<need_alignment thensay_reward(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))                say_reward(gameforge.training_grandmaster_skill._140_sayReward)            elsesay_reward(string.format(gameforge.training_grandmaster_skill._130_sayRewardneed_alignment))            end                            local sselect(gameforge.locale.levelup.prev_quest_gogameforge.locale.cancel)                            if s==2 then                return            end

            
if cur_alignment>=and cur_alignment<need_alignment thensay_title(title)                say_reward(gameforge.training_grandmaster_skill._150_sayReward)                say(gameforge.training_grandmaster_skill._160_say)                say_reward(gameforge.training_grandmaster_skill._170_sayReward)                say(gameforge.training_grandmaster_skill._180_say)                local s=input()                string.gsub(s"(%a*)%s*""%1")                string.lower(string.gsub(s"(%a*)%s*""%1"))
                
local t string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1")                string.lower(string.gsub(gameforge.training_grandmaster_skill._10_answer"(%a*)%s*""%1"))                                if s!=t then                    return                end            end
            
if get_time() < pc.getqf("next_time"then                if pc.is_skill_book_no_delay() then                    pc.remove_skill_book_no_delay()                else                    say_title(gameforge.training_grandmaster_skill._10_sayTitle)                    return                end            end
            pc
.setqf("next_time"get_time()+time_hour_to_sec(number(812)))

            if 
need_alignment>0 then                if pc.count_item(50513) > 0 then                    if pc.learn_grand_master_skill(skill_vnumthen                        pc.change_alignment(-need_alignment)                                        say_title(title)                        say_reward(gameforge.training_grandmaster_skill._190_sayReward)
                        if 
40 == pc.get_skill_level(skill_vnumthen                            say(gameforge.training_grandmaster_skill._200_say)                            say(string.format(gameforge.training_grandmaster_skill._210_sayskill_name))                            say(gameforge.training_grandmaster_skill._220_say)                        else                            say(gameforge.training_grandmaster_skill._230_say)                            say(string.format(gameforge.training_grandmaster_skill._240_sayskill_nameskill_level-30+1+1))                        end                        say_reward(gameforge.training_grandmaster_skill._250_sayReward)                        say_reward(string.format(gameforge.training_grandmaster_skill._260_sayRewardneed_alignment))                    else                        say_title(title)                        say_reward(gameforge.training_grandmaster_skill._270_sayReward)                        say(gameforge.training_grandmaster_skill._280_say)                        say_reward(gameforge.training_grandmaster_skill._290_sayReward)                        pc.change_alignment(-number(need_alignment/3need_alignment/2))                    end                    pc.remove_item(50513)                else                    char_log(0"HACK 50513"pc.getname())                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 = {}
            
table.foreach(skill_list,             function(iskill_vnum)             local skill_level pc.get_skill_level(skill_vnum)
            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)                    pc.remove_item(505131)                end            end)            return {ret_vnum_listret_name_list}        end    endend 
Hier :)





habs ;P

du möchtest dass das item 50512 nur verschwindet, wenn man das item 50513 im Inventar hat, wenn man 50513 nicht hat, soll 50512 bleiben und trotzdem G Skills machen?
und beide sollen verschwinden wenn man geskillt hat?
01/23/2016 06:01 36666669#12129
Quote:
Originally Posted by Noa_ View Post
du möchtest dass das item 50512 nur verschwindet, wenn man das item 50513 im Inventar hat, wenn man 50513 nicht hat, soll 50512 bleiben und trotzdem G Skills machen?
und beide sollen verschwinden wenn man geskillt hat?
es soll nur g skills machen wenn 50513 im inventar is
01/23/2016 06:14 Noa_#12130
Du musst mal in halbwegs deutliche Sätze schreiben, vom Codeformat ganz zu schweigen, mehr Informationen wäre gut und nicht immer alles aus der Nase ziehen lassen.
ja, es ist spät/für mich << aber versuchen kann man es.

zur quest:

ich würde mir die Variabelnhinterlegung nochmal angucken
>>> say_reward(gameforge.training_grandmaster_skill._1 00_sayReward)
ist ein Fehler, weil "gameforge.training_grandmaster_skill._1 00_sayReward" ist ein Leerzeichen zwischen der 1 und der 0 "_1 00_sayReward"


PS: ist bei fast jede Variable getrennt


Denke, ich hab alle erwischt :

01/23/2016 12:02 IzeBreakzz#12131
Hey Leute :),

habe Probleme mit folgender Quest:
PHP Code:
quest Postfach begin    
    state start begin
        when login with tonumber
(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
            
notice("Du hast ungelese Nachrichten. Gehe zum Briefkasten um dir die Nachrichten aufzurufen.")
        
end 
ich möchte praktisch dass der Spieler die Anzahl(in dem Fall der Nachricht, also ob er ungelesene hat) im Chat als Notiz angezeigt bekommt. Bloß bringt er mir einen compile error..

Und ja ich wei Sensi hat ein sehr gutes offline msg system released. Aber das klappt bei mir in mysql nicht. Nachrichten die da gesendet werden, werden einfach nicht angezeigt, bzw. kann er sie nicht senden.
01/23/2016 16:01 DasSchwarzeT#12132
Quote:
Originally Posted by IzeBreakzz View Post
Hey Leute :),

habe Probleme mit folgender Quest:
PHP Code:
quest Postfach begin    
    state start begin
        when login with tonumber
(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
            
notice("Du hast ungelese Nachrichten. Gehe zum Briefkasten um dir die Nachrichten aufzurufen.")
        
end 
ich möchte praktisch dass der Spieler die Anzahl(in dem Fall der Nachricht, also ob er ungelesene hat) im Chat als Notiz angezeigt bekommt. Bloß bringt er mir einen compile error..

Und ja ich wei Sensi hat ein sehr gutes offline msg system released. Aber das klappt bei mir in mysql nicht. Nachrichten die da gesendet werden, werden einfach nicht angezeigt, bzw. kann er sie nicht senden.
Code:
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
Da fehlt eine Klammer am Ende..

Code:
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;"))
01/23/2016 23:14 bzyHac#12133
Diese Quest bekommt beim kompilieren einen Fehler:

Fehler:

Ich komme nicht klar damit Habe einfach meine shopquest von nem anderen pc genommen und darauf basierend erweitert.
Bestimmt ist da einiges falsch also nicht wundern.
So sieht die Shopquest aus (sie funktioniert):

01/24/2016 12:18 .UNLTD.#12134
Ich benötige jemanden, der mir diese Quest
So umschreiben kann, dass die Hochzeitsmap nicht benötigt wird.

Man klickt auf die Alte Frau ("Ich möchte Heiraten")
Danach kommt ("Gebe den Namen des Partners ein")
Danach ("Anfrage des Partners annehmen")
Danach ("Du bist nun verheiratet")
Man sollte jedoch dennoch Verlobungsring & Smoking / Brautkleid benötigen..
Wäre lieb
01/24/2016 15:43 IzeBreakzz#12135
Quote:
Originally Posted by DasSchwarzeT View Post
Code:
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;")
Da fehlt eine Klammer am Ende..

Code:
when login with tonumber(mysql_query("SELECT count(*) FROM account.postfach where gelesen = 0;"))
Jetzt bringt er mir folgendes:
[php count(*) FROM account.pos..."]:1: `then' expected near `notice'
Error occured on compile postfach.quest
[/php]

Und wenn ich ein then hinter die letzte Klammer setze, gibt er den gleichen Fehler aus, nur dass er dann ein begin neben then will, was auch nicht geht.