Quest Piatra Spiritului

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Închis
Avatar utilizator
mesterulbun
Nou Venit

Nou Venit
Mesaje: 16
Membru din: 19 Dec 2014, 15:56
Aprecieri: 19  
Mulţumiri: 1  
Medalii

*Problemă/Întrebare: Nu functioneaza pe toate cazurile
Tipologie server: PVM Hard
*Resursă folosită: am sa atasez
*ServerFiles utilizat: Spyke
*Syserr: nu este cazul
Poză:htt ps:/ /imgur. com/a/RmHoW6U
*Detalii suplimentare:Am folosit acest quest. Functioneaza impecabil pe toate cazurile mai putin pe acesta
current_alignment>need_alignmen
Mai pe scurt nu intra in else-ul de jos. Mie persoanl mi se pare perfect dar poate nu observ eu ceva.

Acesta este quest-ul folosit
quest training_grandmaster_skill begin 
    state start begin
   when 50513.use begin   
      say_title("Piatra spiritului")
      say("")
      local seelicount = pc.count_item(50513)
       if pc.get_skill_group() == 0 then   
      say("Nu aveti abilitati care pot fi antrenate.")   
      say("")
      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("Ai folosit pergamentul exorcizarii. Acum poti")
         say("citi o piatra a spritiului.")
         say("")
      wait()         
         say_title("Piatra spiritului")            
      else         
          say("Trebuie sa astepti 3 ore pentru a putea citi")   
         say("o alta piatra a spiritului sau foloseste")   
         say("pergamentul exorcizarii.")   
         say("")
      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("Nu aveti abilitati care pot fi antrenate.")   
         say("")
      return
       end

       say("Selectati abilitatea care doriti sa fie antrenata.")
      say("")
       local menu_list = {}
       table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
       table.insert(menu_list, "Renunta ") 
       local s=select_table(menu_list)
       if table.getn(menu_list) == s then
      return
       end

       local skill_name=name_list
       local skill_vnum=vnum_list
       local skill_level = pc.get_skill_level(skill_vnum)
       local current_alignment = pc.get_real_alignment()
       local need_alignment = 1000+500*(skill_level-30)

       local title=string.format("Antreneaza %s", skill_name)
      if pc.count_item(50513) != seelicount then      
         say("Nu ai piatra spiritului!")      
      return
      end      
         say_title(title)
         say("")
         say("Pentru a citi o piatra a spritiului ai nevoie")
         say("de puncte de grad.")
         say("")
       if current_alignment<-19000+need_alignment then      
         say_reward("Ai prea putine puncte de grad.")   
         say("")
         return
       end

       if current_alignment<0 then
      
      say_reward("Punctele tale de grad vor scadea dupa ")
      say_reward("dupa citirea pietrei. Vei pierde")
      say_reward(string.format( "între %d si %d puncte de grad.", need_alignment, need_alignment*2))      
      
      need_alignment=need_alignment*2
       elseif current_alignment<need_alignment then      
         say(string.format("Puncte de grad necesare: %d", need_alignment))      
         say_reward("Este posibil ca rangul tau sa fie negativ")
         say_reward("dupa citirea pietrei.")   
       else
      say_orange(string.format("Puncte de grad necesare: %d", need_alignment))
       end
       say("")

       local s = select ("Învata ","Renunta ")
      
              if s == 2 then
         return
       end

       if current_alignment>=0 and current_alignment<need_alignment then
      say_title(string.format("%s ", title))
      say("")
      
      say("Pentru a citi piatra spiritului trebuie sa ")
      say("introduci în caseta de mai jos cuvântul")
      say_reward("Antrenament")
      say("")
      say_reward("Este posibil ca dupa citirea pietrei, rangul")
      say_reward("tau sa fie negativ.")

      local s=input()
      
      if s!="Antrenament" 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()
         
         end   
       end
       pc.setqf("next_time", get_time()+60*60*3)
       if need_alignment>0 then
      if pc.learn_grand_master_skill(skill_vnum) then
          pc.change_alignment(-need_alignment)

          say_title(string.format("%s", title))
         say("")
          if 40 == pc.get_skill_level(skill_vnum) then
         
         say(string.format("%s este perfect antrenat.", skill_name))
         say("")
         pc.remove_item(50513, 1)           
          else      
         say(string.format ( "Antrenamentul a reusit.", skill_name, skill_level-30+1+1))            
            pc.remove_item(50513, 1)           
            end
          say_reward (string.format("Punctele de grad au scazut cu: %d ", need_alignment))         
          say("")         
            else            
          say_title(string.format("%s", title))
         say("")         
          say_reward("Antrenamentul a esuat.")
          say("")
          pc.change_alignment(-number(need_alignment/3, need_alignment/2))            
            pc.remove_item(50513, 1)           
               end
            end         
         end
      function BuildGrandMasterSkillList(job, group)
         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(i, skill_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_list, skill_vnum)
            local name=locale.GM_SKILL_NAME_DICT[skill_vnum]
            if name == nil then name=skill_vnum end
            table.insert(ret_name_list, name)
         end
         end)
         return {ret_vnum_list, ret_name_list}
      end
    end
end
Avatar utilizator
mesterulbun
Nou Venit

Nou Venit
Mesaje: 16
Membru din: 19 Dec 2014, 15:56
Aprecieri: 19  
Mulţumiri: 1  
Medalii

Rezolvat .

Pe else aveam functia say_orange pe care nu o aveam in Questlib.lua . Aveam alte functii pentru culori
Cer T/C .
Avatar utilizator
Kazuhiri
Nivel 9

Nivel 9
Mesaje: 2088
Membru din: 26 Mar 2017, 19:14
Server: Demetris
Regat: Shinsoo
Aprecieri: 396  
Mulţumiri: 3227  
  Rezolvări prob.: 2
Discord: Copiază ID
Medalii

mutat in probleme rezolvate
Demetris2 Imagine
Afișează semnătura
Închis
Răspunsuri
0
Vizualizări
224
Răspunsuri
1
Vizualizări
334
Răspunsuri
1
Vizualizări
1059
Răspunsuri
2
Vizualizări
482

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Google [Bot] și 32 vizitatori