Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] Usunięcie buga na kamyki duchowe.


Siwy™

Rekomendowane odpowiedzi

Opublikowano

Proszę moderatora o przeniesienie do działu Tutoriali, ja tam napisać nie mogę, bo mam parasolkę.

Poradnik napisałem, bo nie mogłem nigdzie tutaj znaleźć.

 

 

Witam, tak jak w temacie.
Otóż jak każdy wie można łatwo wywalić cały channel gry jednym prostym BUGiem na Kamienie Duchowe:

Link: http://www.mpcforum.pl/topic/105508-tutbug-na-kamienie-duchowe/

A oto sposób aby się go pozbyć, jak wiemy działa On wtedy gdy przeniesiemy item na pasek skrótów klawiszy od 1-4 i F1-F4, oraz przekażemy na handlu przedmiot...
Każdego z Nas to denerwuje, wchodzi taki na PriV serwer oraz Ci wywala co chwilę wszystko do góry nogami. Otóż jest prosty sposób pozbyć się tego ścierwa...

Wersja nr.1 To zablokować dodanie Kamienia Duchowego do Paska dostępu... Ale się nie da, zapisane jest to w kodzie gry.

Wersja nr2. To ta która działa.

Łączymy się z NaviCatem, wybieramy:

Bazę:

PLAYER

Wybieramy Tabele:

ITEM_PROTO
Przechodzimy na 4 stronę i szukamy ID przedmiotu:

 

50513 
Przechodzimy do Kolumny
ANTIFLAG oraz FLAG

Wpisujemy w "ANTIFLAG" wartość

10680
oraz w "FLAG" wartość:
8192

To wszystko, nie musimy restartować serwera, komenda jako GM:
Reload all
i
Reload
Załatwi sprawę. Otóż dzięki temu posunięciu nie można ani wywalić, ani handlować Kamieniem Duchowym, co skutkuje uniemożliwieniem użycia Buga.

Pozdrawiam Siwy

 

a oto quest od casawir na odbugowanie kamyczka

 


quest training_grandmaster_skill begin
state start begin
when 50513.use begin
say_title("Zaawansowane Szkolenie Umiejętności")
if pc.get_skill_group() == 0 then
say_title("Zaawansowane Szkolenie Umiejętności")
say("Nie wybrałeś jeszcze drogi duchowej."..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("Trening spowoduje usunięcie efektu")
say("Zwoju Egzorcyzmu.")
wait()
say_title("Zaawansowane Szkolenie Umiejętności")
else
say("Musisz użyć Zwoju Egzorcyzmu zanim ponownie")
say("rozpoczniesz trening przed upływem 24 godzin.")
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("Nie możesz trenować żadnej umiejętności.")
return
end
say("Proszę wybrać umiejętność, którą chcesz trenować.")
say("")
local menu_list = {}
table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
table.insert(menu_list, "Anuluj")
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 cur_alignment = pc.get_real_alignment()
local need_alignment = 1000+500*(skill_level-30)
test_chat("˛{¦bµ˝´c­Č: "..cur_alignment)
test_chat("»Ý­nµ˝´c­Č: "..need_alignment)
local title=string.format("Trening %s Wielki Mistrz", skill_name)
say_title(title)
say("Jeśli będziesz używać swoich punktów rangi")
say("podczas treningu Umiejętności, może się zdarzyć,")
say("że twoja Ranga stanie się negatywna.")
if cur_alignment<-19000+need_alignment then
say_reward("Nie masz wystarczającej ilości punktów Rangi.")
return
end
if cur_alignment<0 then
say_reward(string.format("Wymagane punkty rangi: %d -> %d", need_alignment, need_alignment*2))
say_reward("Jeśli trening zakończy się powodzeniem,")
say_reward("zużyjesz 2 razy więcej punktów Rangi.")
need_alignment=need_alignment*2
elseif cur_alignment<need_alignment then
say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
say_reward("Jeśli będziesz teraz trenować, twoja ranga")
say_reward("stanie się negatywna.")
else
say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
end
say("")
local s=select("Dalej", "Anuluj")
if s==2 then
return
end
if cur_alignment>=0 and cur_alignment<need_alignment then
if pc.count_item(50513) >= 1 then
say_title(title)
say_reward("Kontynuuj")
say("Jeśli będziesz kontynuował trening umiejętności,")
say("możliwe jest, że twoje punkty rangi przyjmą ")
say("wartość ujemną i będziesz miał negatywną Rangę.")
say("Jeśli chcesz kontynuować, wpisz poniżej słowo")
say("")
say_reward("Trenuj")
say("Jeżeli nie chcesz już trenować, wciśnij 'ENTER'.")
local s=input()
if s!="Trenuj" then
return
end
else
chat("<informacja>Zgłoszenie zostało wysłane. Jeszcze raz i dostaniesz bana.")
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("[°ŞŻĹµĄŻĹ]§ŢŻŕ­×˝mżů»~: Ąđ®§¤¤")
return
end
end
pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
if need_alignment>0 then
if pc.count_item(50513) >= 1 then
if pc.learn_grand_master_skill(skill_vnum) then
pc.change_alignment(-need_alignment)
say_title(title)
if 40 == pc.get_skill_level(skill_vnum) then
say_reward("Powodzenie!")
say("Gratulacje! Udało się!")
say(string.format("%s jest teraz na poziomie Wielki Mistrz.", skill_name))
say("To oznacza, że osiągnąłeś poziom Perfekcyjny tej")
say("umiejętności. Dalsze jej szkolenie jest")
say("niemożliwe.")
else
say_reward("Powodzenie!")
say("Gratulacje! Udało się!")
say(string.format("%s jest teraz na poziomie Wielki Mistrz.", skill_name))
end
say_reward("Pomyślnie podnisłeś poziom!")
say_reward(string.format("Zużyłeś %d punktów rangi.", need_alignment))
say("")
else
say_title(title)
say_reward("Niepowodzenie!")
say("Nie udało się ulepszyć umiejętności.")
say_reward("Straciłeś trochę punktów rangi.")
say("")
pc.change_alignment(-number(need_alignment/3, need_alignment/2))
end
else
chat("<informacja>Zgłoszenie zostało wysłane. Jeszcze raz i dostaniesz bana.")
end
end
pc.remove_item(50513, 1)
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

 

Quest bez buga , jak niema kamyka w eq to wysyla wiadomosc , jak ktos mial 2 kamyki i robi buga na jednym to mu tego drugiego zabiera , bez wyslyania(tego jeszce nie umiem :)) logow ten quest jest zeby nie bylo :D

jz2s7h.jpg


Opublikowano

Ten "unbug" jest dobry jeśli chodzi o jakieś serwery Easy. Natomiast na serwerach typu hard należy naprawić ten "bug" zmienieniem kodu questa :)

11573538277329494069.gif

Opublikowano

Ten "unbug" jest dobry jeśli chodzi o jakieś serwery Easy. Natomiast na serwerach typu hard należy naprawić ten "bug" zmienieniem kodu questa :)

 

On jest dobry i na hardy.

jz2s7h.jpg


Opublikowano

Czyżby :P? Nie da się wtedy nim handlować.

Aczkolwiek spróbujcie tego antiflaga 33152 i powiedzcie czy nadal da się go bugować. Ten antiflag niezezwala na upusczanie przedmiotu oraz sprzedawanie u npc, ale w tobołku można :) Ale nie wiem czy bugować nie będzie nadal.

11573538277329494069.gif

Opublikowano
quest training_grandmaster_skill begin
state start begin
  when 50513.use begin
   say_title("Zaawansowane Szkolenie Umiejętności")
   if pc.get_skill_group() == 0 then
    say_title("Zaawansowane Szkolenie Umiejętności")
    say("Nie wybrałeś jeszcze drogi duchowej."..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("Trening spowoduje usunięcie efektu")
     say("Zwoju Egzorcyzmu.")
     wait()
     say_title("Zaawansowane Szkolenie Umiejętności")
    else
     say("Musisz użyć Zwoju Egzorcyzmu zanim ponownie")
     say("rozpoczniesz trening przed upływem 24 godzin.")
     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("Nie możesz trenować żadnej umiejętności.")
    return
   end
   say("Proszę wybrać umiejętność, którą chcesz trenować.")
   say("")
   local menu_list = {}
   table.foreach(name_list, function(i, name) table.insert(menu_list, name) end)
   table.insert(menu_list, "Anuluj")
   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("˛{¦bµ˝´c­Č: "..cur_alignment)
   test_chat("»Ý­nµ˝´c­Č: "..need_alignment)
   local title=string.format("Trening %s Wielki Mistrz", skill_name)
   say_title(title)
   say("Jeśli będziesz używać swoich punktów rangi")
   say("podczas treningu Umiejętności, może się zdarzyć,")
   say("że twoja Ranga stanie się negatywna.")
   if cur_alignment<-19000+need_alignment then
    say_reward("Nie masz wystarczającej ilości punktów Rangi.")
    return
   end
   if cur_alignment<0 then
    say_reward(string.format("Wymagane punkty rangi: %d -> %d", need_alignment, need_alignment*2))
    say_reward("Jeśli trening zakończy się powodzeniem,")
    say_reward("zużyjesz 2 razy więcej punktów Rangi.")
    need_alignment=need_alignment*2
   elseif cur_alignment<need_alignment then
    say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
    say_reward("Jeśli będziesz teraz trenować, twoja ranga")
    say_reward("stanie się negatywna.")
   else
    say_reward(string.format("Wymagane punkty rangi: %d", need_alignment))
   end
   say("")
   local s=select("Dalej", "Anuluj")  
   if s==2 then
    return
   end
   if cur_alignment>=0 and cur_alignment<need_alignment then
    if pc.count_item(50513) >= 1 then
     say_title(title)
     say_reward("Kontynuuj")
     say("Jeśli będziesz kontynuował trening umiejętności,")
     say("możliwe jest, że twoje punkty rangi przyjmą ")
     say("wartość ujemną i będziesz miał negatywną Rangę.")
     say("Jeśli chcesz kontynuować, wpisz poniżej słowo")
     say("")
     say_reward("Trenuj")
     say("Jeżeli nie chcesz już trenować, wciśnij 'ENTER'.")
     local s=input()
     if s!="Trenuj" then
      return
     end
    else
    chat("<informacja>Zgłoszenie zostało wysłane. Jeszcze raz i dostaniesz bana.")
    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("[°ŞŻĹµĄŻĹ]§ŢŻŕ­×˝mżů»~: Ąđ®§¤¤")
     return
    end
   end
   pc.setqf("next_time", get_time()+time_hour_to_sec(number(8, 12)))
   if need_alignment>0 then
    if pc.count_item(50513) >= 1 then
     if pc.learn_grand_master_skill(skill_vnum) then
      pc.change_alignment(-need_alignment)
      say_title(title)
      if 40 == pc.get_skill_level(skill_vnum) then
      say_reward("Powodzenie!")
      say("Gratulacje! Udało się!")
      say(string.format("%s jest teraz na poziomie Wielki Mistrz.", skill_name))
      say("To oznacza, że osiągnąłeś poziom Perfekcyjny tej")
      say("umiejętności. Dalsze jej szkolenie jest")
      say("niemożliwe.")
      else
      say_reward("Powodzenie!")
      say("Gratulacje! Udało się!")
      say(string.format("%s jest teraz na poziomie Wielki Mistrz.", skill_name))
      end
      say_reward("Pomyślnie podnisłeś poziom!")
      say_reward(string.format("Zużyłeś %d punktów rangi.", need_alignment))
      say("")
     else
      say_title(title)
      say_reward("Niepowodzenie!")
      say("Nie udało się ulepszyć umiejętności.")
      say_reward("Straciłeś trochę punktów rangi.")
      say("")
      pc.change_alignment(-number(need_alignment/3, need_alignment/2))
     end
    else
    chat("<informacja>Zgłoszenie zostało wysłane. Jeszcze raz i dostaniesz bana.")
    end
   end
   pc.remove_item(50513, 1)
  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

 

Quest bez buga , jak niema kamyka w eq to wysyla wiadomosc , jak ktos mial 2 kamyki i robi buga na jednym to mu tego drugiego zabiera , bez wyslyania(tego jeszce nie umiem :)) logow ten quest jest zeby nie bylo :D

Bez-nazwy_nwpsash.png


by me


Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...