Domanda Npc che da skill a G in base ad oggetti portati

Stato
Discussione chiusa ad ulteriori risposte.

IlNabboYT

Bannato
11 Novembre 2013
532
89
108
310
Buongiorno.
Come da titolo mi servirebbe una quest da assegnare ad un npc generale che dia appunto delle skill a g, una volta portati ad esempio 10 libri maledizione a quell'npc.
Ovviamente si parla di singola skills e non di tutte.
Grazie per chi potrà darmi una manina.
 
Puoi scaricare da una qualsiasi locale la quest della pda perfetta e impostare una condizione che determina che bisogna avere quella quantità di item
Oppure più semplicemente scaricare semplicemente la quest della pda perfetta e poi mettere che si può ottenere in gioco per 10 item via cube
 
Puoi scaricare da una qualsiasi locale la quest della pda perfetta e impostare una condizione che determina che bisogna avere quella quantità di item
Oppure più semplicemente scaricare semplicemente la quest della pda perfetta e poi mettere che si può ottenere in gioco per 10 item via cube
Mmm il value della skill a G dove lo prendo però? che quasi tutte le guide comandi gm sono incomplete?
 
Mmm il value della skill a G dove lo prendo però? che quasi tutte le guide comandi gm sono incomplete?

Qua trovi la quest che ti occorre, per modificare il grado della skill basta che modifichi il 40
pc.set_skill_level (skill_vnum, 40)
Poi per farla ottenere in gioco, puoi stabilire la condizione dentro la quest o più semplicemente tramite un craft

Codice:
--**
quest pda_perf_quest begin
    state start begin

----------********** PDA perfetta (cambiare vnum eventualmente) **********----------
      
        when 50512.use begin
            say_title ("PDA Perfetta")     
            if pc.get_skill_group() == 0 then
                say("Non hai ancora preso la dottrina.[ENTER]")
                return
            end     
            local vnum_list, name_list = pda_perf_quest.GetSkillList(1)
            say("Con questo oggetto potrai portare un'abilita'")
            say("di livello superiore o uguale a 1 direttamente")
            say("a maestro perfetto.[ENTER]")
            if table.getn(vnum_list) == 0 then
                say_reward ("Non hai abilita' da migliorare.[ENTER]")
                return
            end
            wait()
            say_title ("PDA Perfetta")
            say("Scegli l'abilita' da migliorare:[ENTER]")
            table.insert(name_list, "Annulla")
            local s = select_table(name_list)
            if s == table.getn(name_list) then
                return
            end     
            local skill_name = name_list[s]
            local skill_vnum = vnum_list[s]
            say_title ("PDA Perfetta")
            say("Hai scelto: "..skill_name)
            say("Sei sicuro di voler continuare?[ENTER]")
            local a = select("Si","No")
            if a == 2 then
                return
            end
            say_title ("PDA Perfetta")
            say (skill_name, " portata a maestro perfetto.[ENTER]")
            pc.set_skill_level (skill_vnum, 40)
            pc.remove_item(item.get_vnum(), 1)
        end     
  
----------********** Funzione **********----------     
  
        function GetSkillList(min_level)
            local skill_list = special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]
            local vnum_list = {}
            local name_list = {}
            for i = 1,table.getn(skill_list) do
                local skill_vnum = skill_list[i]
                local skill_level = pc.get_skill_level(skill_vnum)
                if skill_level >= min_level and skill_level < 40 then
                    table.insert(vnum_list, skill_list[i])
                    table.insert(name_list, locale.GM_SKILL_NAME_DICT[skill_vnum])
                end
            end
            return vnum_list, name_list
        end
    end
end
 
Qua trovi la quest che ti occorre, per modificare il grado della skill basta che modifichi il 40
pc.set_skill_level (skill_vnum, 40)
Poi per farla ottenere in gioco, puoi stabilire la condizione dentro la quest o più semplicemente tramite un craft

Codice:
--**
quest pda_perf_quest begin
    state start begin

----------********** PDA perfetta (cambiare vnum eventualmente) **********----------
     
        when 50512.use begin
            say_title ("PDA Perfetta")    
            if pc.get_skill_group() == 0 then
                say("Non hai ancora preso la dottrina.[ENTER]")
                return
            end    
            local vnum_list, name_list = pda_perf_quest.GetSkillList(1)
            say("Con questo oggetto potrai portare un'abilita'")
            say("di livello superiore o uguale a 1 direttamente")
            say("a maestro perfetto.[ENTER]")
            if table.getn(vnum_list) == 0 then
                say_reward ("Non hai abilita' da migliorare.[ENTER]")
                return
            end
            wait()
            say_title ("PDA Perfetta")
            say("Scegli l'abilita' da migliorare:[ENTER]")
            table.insert(name_list, "Annulla")
            local s = select_table(name_list)
            if s == table.getn(name_list) then
                return
            end    
            local skill_name = name_list[s]
            local skill_vnum = vnum_list[s]
            say_title ("PDA Perfetta")
            say("Hai scelto: "..skill_name)
            say("Sei sicuro di voler continuare?[ENTER]")
            local a = select("Si","No")
            if a == 2 then
                return
            end
            say_title ("PDA Perfetta")
            say (skill_name, " portata a maestro perfetto.[ENTER]")
            pc.set_skill_level (skill_vnum, 40)
            pc.remove_item(item.get_vnum(), 1)
        end    
 
----------********** Funzione **********----------    
 
        function GetSkillList(min_level)
            local skill_list = special.active_skill_list[pc.get_job()+1][pc.get_skill_group()]
            local vnum_list = {}
            local name_list = {}
            for i = 1,table.getn(skill_list) do
                local skill_vnum = skill_list[i]
                local skill_level = pc.get_skill_level(skill_vnum)
                if skill_level >= min_level and skill_level < 40 then
                    table.insert(vnum_list, skill_list[i])
                    table.insert(name_list, locale.GM_SKILL_NAME_DICT[skill_vnum])
                end
            end
            return vnum_list, name_list
        end
    end
end

Grazie
Quindi invece di 40 che valore devo mettere per farle a G?
 
Stato
Discussione chiusa ad ulteriori risposte.