Jump to content

Volvox

Active Member
  • Posts

    249
  • Joined

  • Last visited

  • Days Won

    7
  • Feedback

    0%

Everything posted by Volvox

  1. if app.ENABLE_COSTUME_SYSTEM: itemType = item.GetItemType() if item.ITEM_TYPE_COSTUME == itemType: isCostumeItem = 1 isCostumeHair = item.COSTUME_TYPE_HAIR == itemSubType isCostumeBody = item.COSTUME_TYPE_BODY == itemSubType isCostumeSash = itemSubType == item.COSTUME_TYPE_SASH isCostumeMount = item.COSTUME_TYPE_MOUNT == itemSubType
  2. call self.teleport = uiteleport.TeleportWindow() self.teleport.Hide() in def __init__
  3. Check types and subtypes is a prerequisite for this system
  4. Here is a little update: if pc.get_level() >= pc.getqf("lv_next") then set_state("information") else set_state("check_level") end When you complete a Quest, then the next will appear instant, without login / levelup, if you have the right level. Another update: --################################### --# Created By Stefano9876 # --# Please don't remove the credits # --################################### quest hunting_quest_en begin state start begin when login or levelup with pc.get_level() >= 2 begin pc.setqf("lv_next",2) pc.setqf("current_mission",1) pc.setqf("LV_MAX",90) set_state("information") end end state check_level begin when login or levelup with pc.get_level() >= pc.getqf("lv_next") begin set_state("information") end end state information begin when letter begin send_letter(string.format(gameforge[get_language()].huntquest_say_1, pc.getqf("current_mission"))) end when button or info begin say_title(string.format(gameforge[get_language()].huntquest_say_1, pc.getqf("current_mission"))) say(gameforge[get_language()].huntquest_say_2) local s = select(hunting_quest.monsters_num0[pc.getqf("current_mission")].." "..mob_name(hunting_quest.monsters_value0[pc.getqf("current_mission")]),hunting_quest.monsters_num1[pc.getqf("current_mission")].." "..mob_name(hunting_quest.monsters_value1[pc.getqf("current_mission")]),gameforge[get_language()].reset_scroll_say_8) if s == 1 then pc.setqf("_s",1) set_state("running") elseif s == 2 then pc.setqf("_s",2) set_state("running") end end end state running begin when enter begin pc.setqf("_kill",0) end when letter begin send_letter(string.format(gameforge[get_language()].huntquest_say_1, pc.getqf("current_mission"))) end when button or info begin say_title(string.format(gameforge[get_language()].huntquest_say_1, pc.getqf("current_mission"))) say(gameforge[get_language()].huntquest_say_3) if pc.getqf("_s") == 1 then say_reward(string.format(gameforge[get_language()].huntquest_say_4, hunting_quest.monsters_num0[pc.getqf("current_mission")]-pc.getqf("_kill"), mob_name(hunting_quest.monsters_value0[pc.getqf("current_mission")]))) else say_reward(string.format(gameforge[get_language()].huntquest_say_4, hunting_quest.monsters_num1[pc.getqf("current_mission")]-pc.getqf("_kill"), mob_name(hunting_quest.monsters_value1[pc.getqf("current_mission")]))) end end when kill with not npc.is_pc() begin if pc.getqf("_s") == 1 then if npc.get_race() == hunting_quest.monsters_value0[pc.getqf("current_mission")] then pc.setqf("_kill",pc.getqf("_kill")+1) end if pc.getqf("_kill") >= hunting_quest.monsters_num0[pc.getqf("current_mission")] then set_state("reward") end elseif pc.getqf("_s") == 2 then if npc.get_race() == hunting_quest.monsters_value1[pc.getqf("current_mission")] then pc.setqf("_kill",pc.getqf("_kill")+1) end if pc.getqf("_kill") >= hunting_quest.monsters_num1[pc.getqf("current_mission")] then set_state("reward") end end end end state reward begin when letter begin send_letter(string.format(gameforge[get_language()].huntquest_say_5,pc.getqf("current_mission"))) end when button or info begin say_title(string.format(gameforge[get_language()].huntquest_say_5,pc.getqf("current_mission"))) say(string.format(gameforge[get_language()].huntquest_say_6,pc.get_name())) say(string.format(gameforge[get_language()].huntquest_say_7,pc.getqf("current_mission"))) say(gameforge[get_language()].huntquest_say_8) say_reward(gameforge[get_language()].huntquest_say_9) say_reward(gameforge[get_language()].huntquest_say_10) pc.give_exp2(hunting_quest_en.GetExpReward(pc.getqf("current_mission"),pc.getqf("lv_next"))) pc.changegold(hunting_quest_en.GetYangReward(pc.getqf("lv_next"))) if pc.getqf("current_mission") == pc.getqf("LV_MAX") then set_state("__COMPLETE__") return end pc.setqf("lv_next",pc.getqf("lv_next")+1) pc.setqf("current_mission",pc.getqf("current_mission")+1) if pc.get_level() >= pc.getqf("lv_next") then set_state("information") else set_state("check_level") end end end state __COMPLETE__ begin when enter begin pc.delqf("current_mission") pc.delqf("lv_next") pc.delqf("_kill") end --** --** FUNCTIONS --** function GetYangReward(lv_next) local goldRange1, goldrange2 goldRange1 = hunting_quest.yang_reward[lv_next][1] goldRange2 = hunting_quest.yang_reward[lv_next][2] return number(goldRange1,goldrange2) end function GetExpReward(current_mission, lv_next) local _FirstPerc, _SecondPerc local exp_for_this_level = hunting_quest.exp_table[lv_next] if current_mission <= 20 then _FirstPerc = exp_for_this_level*(1-0.90) -- 10% _SecondPerc = _FirstPerc elseif current_mission <= 30 then _FirstPerc = exp_for_this_level*(1-0.98) -- 2% _SecondPerc = exp_for_this_level*(1-0.90) -- 10% elseif current_mission <= 50 then _FirstPerc = exp_for_this_level*(1-0.98) -- 2% _SecondPerc = exp_for_this_level*(1-0.95) -- 5% elseif current_mission <= 60 then _FirstPerc = exp_for_this_level*(1-0.99) -- 1% _SecondPerc = exp_for_this_level*(1-0.96) -- 4% elseif current_mission <= 83 then _FirstPerc = exp_for_this_level*(1-0.98) -- 2% _SecondPerc = exp_for_this_level*(1-0.96) -- 4% elseif current_mission <=90 then _FirstPerc = exp_for_this_level*(1-0.95) -- 5% _SecondPerc = exp_for_this_level*(1-0.90) -- 10% end return number(_FirstPerc,_SecondPerc) end -- GetRewardExp end end Quest with multilang variables gameforge["en"].huntquest = {} gameforge["en"].huntquest_say_1 = "Hunting Quest %s" gameforge["en"].huntquest_say_2 = "Choose a monster:" gameforge["en"].huntquest_say_3 = "Objective:" gameforge["en"].huntquest_say_4 = "Kill %s %s" gameforge["en"].huntquest_say_5 = "Hunting Quest Reward %s" gameforge["en"].huntquest_say_6 = "Good done %s !" gameforge["en"].huntquest_say_7 = "You have completed the mission number %s," gameforge["en"].huntquest_say_8 = "so, that's your reward!" gameforge["en"].huntquest_say_9 = "You've got:" gameforge["en"].huntquest_say_10 = "Experience and Yang." gameforge["de"].huntquest = {} gameforge["de"].huntquest_say_1 = "Jagd-Quest %s" gameforge["de"].huntquest_say_2 = "Wähle ein Monster:" gameforge["de"].huntquest_say_3 = "Ziel:" gameforge["de"].huntquest_say_4 = "Töte %s %s" gameforge["de"].huntquest_say_5 = "Belohnung für die Jagd-Quest %s" gameforge["de"].huntquest_say_6 = "Gut gemacht %s !" gameforge["de"].huntquest_say_7 = "Du hast die Mission %s abgeschlossen," gameforge["de"].huntquest_say_8 = "hier ist deine Belohnung!" gameforge["de"].huntquest_say_9 = "Du bekommst:" gameforge["de"].huntquest_say_10 = "Erfahrung and Yang." Another Bug. He has a typo. Here withour typo: function GetYangReward(lv_next) local goldRange1, goldRange2 goldRange1 = hunting_quest.yang_reward[lv_next][1] goldRange2 = hunting_quest.yang_reward[lv_next][2] return number(goldRange1,goldRange2) end
  5. You can write this in line 988: itemType = item.GetItemType()
  6. Why ? If you have some questions, just ask here.
  7. You just need to import it into your mall.class and then use it just like UiToolTip.py
  8. Have some error at Database/db folder on server? Core still running? If there is really non syserr on root, check the packets on both sides (client and server)
  9. easy way: only use 1 type of dew question: what are type and subtype of "normal" and "perma" ?
  10. The source is not the problem. It depends on your skills to adapt this system. First you have to know the subtypes. Is there one subtype for all weapons or is there a subtype for every type ? elif itemSubType == 2: #weapon if player.GetRace() != 7 and player.GetRace() != 3: self.__ModelPreview(itemVnum, 3, player.GetRace(),slotIndex) if player.GetRace() == 5 or player.GetRace() == 1: self.__ModelPreview(itemVnum, 3, player.GetRace(),slotIndex) if player.GetRace() == 0 or player.GetRace() == 4: self.__ModelPreview(itemVnum, 3, player.GetRace(),slotIndex) if player.GetRace() == 7 or player.GetRace() == 3: self.__ModelPreview(itemVnum, 3, player.GetRace(),slotIndex) OR elif itemSubType in CustumWeaponSubTypeArray: ...
  11. Upload UiToolTip.py or think about this hint: renderTarget.SetWeapon(RENDER_TARGET_INDEX, Vnum) if (player.GetItemIndex(item.COSTUME_SLOT_BODY)==0): renderTarget.SetArmor(RENDER_TARGET_INDEX, player.GetItemIndex(item.EQUIPMENT_BODY)) else: renderTarget.SetArmor(RENDER_TARGET_INDEX, player.GetItemIndex(item.COSTUME_SLOT_BODY))
  12. You have to know, whats in your source. Otherwise we cant help you
  13. This is not a "real" error. You can do something link this, if you dont wanna see this error. void CInstanceBase::DetachTextTail() { if (!m_isTextTail) return; m_isTextTail=false; if(GetVirtualID() > 0) CPythonTextTail::Instance().DeleteCharacterTextTail(GetVirtualID()); }
  14. I will look for example. If you want to learn something and do it on your own.. Just call the render function on uiTooltip, where you call it for weapon (e.g.) and them check if player has equipped armor (player.GetItemIndex(slotPos)) on Armor slot pos (Google/ binary src) If yes, then call render function below with player.GetItemIndex(slotPos) instead of itemvnum
  15. If you want to understand the warning: [Hidden Content] If you wanna just fix this create a destructor in CItemPriceListTableCache.
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.