Opublikowano 2 Lutego2 Lut Siema, jak edytować misje biologe, chodzi mi o to że oddajac zeba, mam cooldown jak na PLU, gdzie szukac wartosci ile musze oddac przykladowo zebów orka, i gdzie szukac cooldown, zeby dac jaki chce?
Opublikowano 2 Lutego2 Lut Autor quest collect_quest_lv30 begin state start begin when login or levelup with pc.level >= 30 begin set_state(information) end end state information begin when letter begin local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, gameforge.collect_herb_lv10._150_sayTitle) end send_letter(gameforge.collect_quest_lv30._10_sendLetter) end when button or info begin say_title(gameforge.collect_quest_lv30._10_sendLetter) say(gameforge.collect_quest_lv30._20_say) end when __TARGET__.target.click or 20084.chat.gameforge.collect_quest_lv30._30_npcChat begin target.delete("__TARGET__") say_title(gameforge.collect_herb_lv10._50_sayTitle) say(gameforge.collect_quest_lv30._40_say) wait() say_title(gameforge.collect_herb_lv10._50_sayTitle) say(gameforge.collect_quest_lv30._50_say) wait() say_title(gameforge.collect_herb_lv10._150_sayTitle) say(gameforge.collect_quest_lv30._60_say) set_state(go_to_disciple) pc.setqf("duration",0) pc.setqf("collect_count",0) pc.setqf("drink_drug",0) end end state go_to_disciple begin when letter begin send_letter(gameforge.collect_quest_lv30._70_sendLetter) end when button or info begin say_title(gameforge.collect_quest_lv30._80_sayTitle) say(gameforge.collect_quest_lv30._90_say) say_item_vnum(30006) say_reward(string.format(gameforge.collect_quest_lv30._100_sayReward, pc.getqf("collect_count"))) end when 71035.use begin if get_time() < pc.getqf("duration") then say(gameforge.collect_quest_lv30._110_say) return end if pc.getqf("drink_drug")==1 then say(gameforge.collect_quest_lv30._120_say) return end if pc.count_item(30006)==0 then say_title(gameforge.collect_herb_lv10._50_sayTitle) say(gameforge.collect_quest_lv30._130_say) return end pc.remove_item(71035, 1) pc.setqf("drink_drug",1) end when 601.kill begin local s = number(1, 100) if s <= 5 then pc.give_item2(30006, 1) end end when 20084.chat.gameforge.collect_quest_lv30._140_npcChat with pc.count_item(30006) >0 begin if get_time() > pc.getqf("duration") then if pc.count_item(30006) >0 then say_title(gameforge.collect_herb_lv10._150_sayTitle) say(gameforge.collect_quest_lv30._150_say) pc.remove_item("30006", 1) pc.setqf("duration",get_time()+60*60*22) ---22Stunden wait() local pass_percent if pc.getqf("drink_drug")==0 then pass_percent=60 else if true == pet.is_summon(34003) or true == pet.is_summon(34001) then pass_percent=92 else pass_percent=90 end end notice(pass_percent) local s= number(1,100) if s <= pass_percent then if pc.getqf("collect_count")< 9 then local index =pc.getqf("collect_count")+1 pc.setqf("collect_count",index) say_title(gameforge.collect_herb_lv10._150_sayTitle) say(string.format(gameforge.collect_quest_lv30._160_say, 10-pc.getqf("collect_count"))) pc.setqf("drink_drug",0) return end say_title(gameforge.collect_herb_lv10._50_sayTitle) say(gameforge.collect_quest_lv30._170_say) pc.setqf("collect_count",0) pc.setqf("drink_drug",0) pc.setqf("duration",0) set_state(key_item) return else say_title(gameforge.collect_herb_lv10._50_sayTitle) say(gameforge.collect_quest_lv30._180_say) pc.setqf("drink_drug",0) return end else say_title(gameforge.collect_herb_lv10._50_sayTitle) --say(string.format(gameforge.collect_quest_lv30._190_say, item_name(30006))) say(gameforge.collect_quest_lv30._190_say) return end else say_title(gameforge.collect_herb_lv10._50_sayTitle) say(gameforge.collect_quest_lv30._200_say) return end end end state key_item begin when letter begin send_letter(gameforge.collect_quest_lv30._210_sendLetter) if pc.count_item(30220)>0 then local v = find_npc_by_vnum(20084) if v != 0 then target.vid("__TARGET__", v, gameforge.collect_herb_lv10._150_sayTitle) end end end when button or info begin if pc.count_item(30220) >0 then say_title(gameforge.collect_quest_lv30._220_sayTitle) say_reward(gameforge.collect_quest_lv30._230_sayReward) return end say_title(gameforge.collect_quest_lv30._220_sayTitle) say(gameforge.collect_quest_lv30._240_say) say_item_vnum(30220) say(gameforge.collect_quest_lv30._250_say) end when 631.kill or 632.kill or 633.kill or 634.kill or 635.kill or 636.kill or 637.kill begin local s = number(1, 500) if s == 1 and pc.count_item(30220)==0 then pc.give_item2(30220, 1) send_letter(gameforge.collect_quest_lv30._260_sendLetter) end end when __TARGET__.target.click or 20084.chat.gameforge.collect_quest_lv30._270_npcChat with pc.count_item(30220) > 0 begin target.delete("__TARGET__") if pc.count_item(30220) > 0 then say_title(gameforge.collect_herb_lv10._150_sayTitle) say(gameforge.collect_quest_lv30._280_say) pc.remove_item(30220,1) set_state(__reward) else say_title(gameforge.collect_herb_lv10._150_sayTitle) --say(string.format(gameforge.collect_quest_lv30._290_say, item_name(30220))) say(gameforge.collect_quest_lv30._290_say) return end end end state __reward begin when letter begin send_letter(gameforge.collect_quest_lv30._300_sendLetter) local v = find_npc_by_vnum(20018) if v != 0 then target.vid("__TARGET__", v, gameforge.collect_quest_lv30._310_targetVid) end end when button or info begin say_title(gameforge.collect_quest_lv30._300_sendLetter) say(gameforge.collect_quest_lv30._320_say) end when __TARGET__.target.click or 20018.chat.gameforge.collect_quest_lv30._330_npcChat begin target.delete("__TARGET__") say_title(gameforge.collect_quest_lv30._340_sayTitle) say(gameforge.collect_quest_lv30._350_say) say_reward(gameforge.collect_quest_lv30._360_sayReward) affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60) --60Jahre pc.give_item2(50109) clear_letter() set_quest_state("collect_quest_lv40", "run") set_state(__complete) end end state __giveup__ begin when 20084.chat.gameforge.collect_quest_lv30._370_npcChat begin say_title(gameforge.collect_herb_lv10._50_sayTitle) say(gameforge.collect_quest_lv30._380_say) set_state(start) end end state __complete begin end end
Opublikowano 2 Lutego2 Lut Rozwiązanie if pc.getqf("collect_count") < 9 then Tu masz ilość do dostarczenia, powyżej 9 zadanie jest ukończone, czyli potrzeba oddać 10. pc.setqf("duration",get_time()+60*60*22) Tu masz ustawiany czas, co 22 godziny. PS: Kolejnym razem kod wstawiaj w blok kodu masz w edytorze przycisk </> i on służy do wstawiania kodów.
Opublikowano 2 Lutego2 Lut Autor 9 minut temu, Sevence napisał(a): if pc.getqf("collect_count") < 9 then Tu masz ilość do dostarczenia, powyżej 9 zadanie jest ukończone, czyli potrzeba oddać 10. pc.setqf("duration",get_time()+60*60*22) Tu masz ustawiany czas, co 22 godziny. PS: Kolejnym razem kod wstawiaj w blok kodu masz w edytorze przycisk </> i on służy do wstawiania kodów. Jak ustawic w takim razie przykladowo 30 minut?
Opublikowano 2 Lutego2 Lut 2 minuty temu, eksyyy napisał(a): Jak ustawic w takim razie przykladowo 30 minut? 30*60
Opublikowano 2 Lutego2 Lut 2 minuty temu, eksyyy napisał(a): Jak ustawić w takim razie przykładowo 30 minut? Wtedy usuwasz jedno *60 i wtedy masz minuty. Po zmianie musisz skompilować zadanie i zrestartować serwer. pc.setqf("duration", get_time() + 60 * 30)
Opublikowano 2 Lutego2 Lut Autor 12 minut temu, Sevence napisał(a): Wtedy usuwasz jedno *60 i wtedy masz minuty. Po zmianie musisz skompilować zadanie i zrestartować serwer. pc.setqf("duration", get_time() + 60 * 30) czy cos zle zrobilem? bo ustawilem na minute i dalej cooldown
Opublikowano 2 Lutego2 Lut Jeśli wcześniej oddałeś przedmiot z poprzednim czasem to ten stan zapisuje się w tabeli quest. Musiał byś usunąć tam i wtedy ponownie oddać. Zadanie musisz wcześniej skompilować, aby zmiany weszły w życie.
Opublikowano 2 Lutego2 Lut Autor 22 minuty temu, Sevence napisał(a): Jeśli wcześniej oddałeś przedmiot z poprzednim czasem to ten stan zapisuje się w tabeli quest. Musiał byś usunąć tam i wtedy ponownie oddać. Zadanie musisz wcześniej skompilować, aby zmiany weszły w życie. Gdzie dokladnie znajde te tabele? bo zrobilem nowa postac i dalej to samo.
Opublikowano 2 Lutego2 Lut 1 minutę temu, eksyyy napisał(a): Gdzie dokladnie znajde te tabele? bo zrobilem nowa postac i dalej to samo. W bazie danych -> baza player -> tabela quest. Tylko to pisałem odnośnie tamtej postaci, na nowej powinno działać z nowym czasem. Czy skompilowałeś questa?
Opublikowano 2 Lutego2 Lut @eksyyy Nie odpowiedziałeś na kluczowe pytanie, które ci zadaję po raz enty. Czy skompilowałeś to zadanie?
Opublikowano 2 Lutego2 Lut Autor 8 minut temu, Sevence napisał(a): @eksyyy Nie odpowiedziałeś na kluczowe pytanie, które ci zadaję po raz enty. Czy skompilowałeś to zadanie? ZAPOMNIALEM, teraz dziala, dzięki wielkie za pomoc ❤️
Opublikowano 2 Lutego2 Lut Autor 9 minut temu, Sevence napisał(a): @eksyyy Nie odpowiedziałeś na kluczowe pytanie, które ci zadaję po raz enty. Czy skompilowałeś to zadanie? A gdzie ustawic szanse na 100% na oddanie?
Opublikowano 3 Lutego3 Lut 11 minut temu, eksyyy napisał(a): A gdzie ustawic szanse na 100% na oddanie? local pass_percent if pc.getqf("drink_drug") == 0 then pass_percent = 60 else if true == pet.is_summon(34003) or true == pet.is_summon(34001) then pass_percent = 92 else pass_percent = 90 end end W tym miejscu pass_percent = 60% bez użycia eliksiru poszukiwacza. Jak użyjesz eliksir poszukiwacza wtedy wzrasta do 90%, ale gdy masz przywołany pet o id 34003 lub 34001 to masz 92% xD
Opublikowano 3 Lutego3 Lut 16 minut temu, eksyyy napisał(a): A gdzie ustawic szanse na 100% na oddanie? Wyszukaj w quescie percent (zobacz tylko czy masz w quescie eliksir bo wtedy masz dwie wartości procentowe) szukaj tego mniejszego i zamień przykładowo 60 na 100
Siema, jak edytować misje biologe, chodzi mi o to że oddajac zeba, mam cooldown jak na PLU, gdzie szukac wartosci ile musze oddac przykladowo zebów orka, i gdzie szukac cooldown, zeby dac jaki chce?