-
Posts
378 -
Joined
-
Last visited
-
Days Won
8 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by MrLibya
-
-
-
not difs , sourcecode !
-
this will not work
becous u have to tell the system what is going to be used ?
-
will if it was all monster then u have to make a pet item for every monster ingame
that's mean ( new item + new mini model from the monster )
and if u want it for some monster u can do it by quest
when xx.kill begin pc.give_item2(xx)
- 1
-
i didnt test it , i just take it from the internet
-
Hallo All
This My Power Mount Traning system
it's very simple
but the lang is arabic so i u need to make the eng speak
quest dwapsystem begin state start begin when 20349.chat."I Want Tran a Mount" begin say_title("Text") say("") say("Text") say("Text") say("") wait() say_title("Text") say("Text") say("Text") say("Text") say("Text") wait() say_title("Text") say("Chose Your Mount Type") local data01 = { -- Name vnum give_vnum {"Lion Certificate", 52701, 52030}, {"Tiger Certificate", 52702, 52045}, {"Wild Boar Certificate", 52703, 52000}, {"Wolf Certificate", 52704, 52015}, {"Reindeer Certificate (m)", 52705, 52080}, {"Reindeer Certificate (f)", 52706, 52060}, {"Dragor Certificate", 52707, 52090}, {"Moa Certificate", 52708, 52105}, {"Close", 0, 0} } local menu01 = {} for num1,str1 in ipairs(data01) do table.insert(menu01, str1[1]) end local seltab01 = select_table(menu01, "Close") local count_check = pc.count_item(data01[seltab01][2]) if seltab01 == table.getn(menu01) then return end say(" Are u Sure u want trade ".. data01[seltab01][1] .." ") if select("Yes, sure","No , Thx") == 2 then return end if count_check < 1 then syschat("U Dont Have the Item") return end say_title("Plz Select The Addone type") local bonus01 = { -- Name vnum {"Vs Monster", 1}, {"plus exp", 2}, {"plus life pont", 3}, {"plus defnce power", 4}, {"plus attck power", 5}, {"Close", 0} } local menu02 = {} for num2,str2 in ipairs(bonus01) do table.insert(menu02, str2[1]) end local seltab02 = select_table(menu02, "Close") if seltab02 == table.getn(menu02) then return end local final01 = data01[seltab01][3]+bonus01[seltab02][2] say_reward(" U Get : "..item_name(data01[seltab01][3]+1).." ") pc.removeitem(data01[seltab01][2], 1) pc.give_item2(final01, 1) end -- when end -- state end -- quest
have fun
- 4
- 2
- 8
-
will yes the first line arabic characters but it's dont make any sence
It is a bugg in iOS in the preview box i don't know why but it works try it
i dont have iphone but my brother have if i try it on his iphone and his iphone stop working he going to kill me
so no thx i dont want :D
-
will yes the first line arabic characters but it's dont make any sense
-
# ChannelChanger Tool 1.1a # # The boredom is a big lord. # Idea was came from [email protected] && [email protected] # # Version info: # v1.0 : GUI # Connection with variables # v1.1 : Connection with serverInfo # Serverstatus checker and show the states # Disabled connection if the server is FULL or Offline # Added special map interrupter(dt,dc etc..) # v1.1a : Added refresh button # # Used sources: # - DaRealFreak's ChannelChangerBot # - YMIR's client >,< introLogin.py # - My brain C: # # Bugs: # Sometimes the "SetLoginInfo" function is late and try to connect the client to the server # with wrong ID/PW. In this case the "OnLoginFailure" function will run with "WRONGPWD" and # "NOID" arguments(1x-1x) from the introLogin.py. This fault peculiar to the slower PC-s or lagg. # And not recommended the fast channel switching. # # Do not forget to add this in your introLogin.LoginWindow.Connect # net.ACCOUNT_ID = id # net.ACCOUNT_PW = pwd # # Haters gonna hate. Please keep your comment in yourself & Press Alt + F13! # Enjoy, and sorry for my bad English, P3NG3R import ui import net import app import chat import math import wndMgr import serverInfo import background import ServerStateChecker class ChannelChanger(ui.ScriptWindow): def __init__(self): ui.ScriptWindow.__init__(self) self.__Init_ChannelChanger() self.__Load_Gui() self.__Fill_Up_ChannelList() def __del__(self): ui.ScriptWindow.__del__(self) def Destroy(self): self.Hide() return TRUE def __Init_ChannelChanger(self): ServerStateChecker.Create(self) self.SetSize(150, 175) self.SetPosition( (wndMgr.GetScreenWidth() / 2) - int(math.floor(self.GetWidth() / 2.)), (wndMgr.GetScreenHeight() / 2) - int(math.floor(self.GetHeight() / 2.)) ) #self.AddFlag("movable") self.AddFlag("float") self.Show() def __Load_Gui(self): self.Board = ui.Board() self.Board.SetParent(self) self.Board.SetSize(self.GetWidth(), self.GetHeight()) self.Board.SetPosition(0, 0) #self.Board.AddFlag("movable") self.Board.AddFlag("float") self.Board.Show() self.TitleBar = ui.TitleBar() self.TitleBar.SetParent(self.Board) self.TitleBar.SetPosition(7, 7) self.TitleBar.MakeTitleBar(self.GetWidth() - 2 * 7, 'bloodyblue') self.TitleBar.SetCloseEvent(self.Close) self.TitleBar.Show() self.RefreshButton = ui.Button() self.RefreshButton.SetParent(self.TitleBar) self.RefreshButton.SetPosition(3, 3) self.RefreshButton.SetUpVisual("d:/ymir work/ui/game/guild/refresh_button_01.sub") self.RefreshButton.SetOverVisual("d:/ymir work/ui/game/guild/refresh_button_02.sub") self.RefreshButton.SetDownVisual("d:/ymir work/ui/game/guild/refresh_button_03.sub") self.RefreshButton.SetToolTipText("Frissítés", 0, - 23) # "Refresh" self.RefreshButton.SetEvent(lambda : self.__Fill_Up_ChannelList()) self.RefreshButton.Show() self.TitleText = ui.TextLine() self.TitleText.SetParent(self.TitleBar) self.TitleText.SetPosition(0, 4) self.TitleText.SetText("CH - Választó") # "CH - Switcher" self.TitleText.SetWindowHorizontalAlignCenter() self.TitleText.SetHorizontalAlignCenter() self.TitleText.Show() self.ServerName = ui.TextLine() self.ServerName.SetParent(self.TitleBar) self.ServerName.SetPosition(0, self.TitleBar.GetHeight()) self.ServerName.SetText(str(net.GetServerInfo()).split(",")[0]) self.ServerName.SetWindowHorizontalAlignCenter() self.ServerName.SetHorizontalAlignCenter() self.ServerName.Show() self.ChannelListBase = ui.SlotBar() self.ChannelListBase.SetParent(self.Board) self.ChannelListBase.SetSize(self.Board.GetWidth() - 2 * 16, 5 * 18 - 4) self.ChannelListBase.SetPosition(16 , 7 + self.TitleBar.GetHeight() + 6 + 10) self.ChannelListBase.Show() self.ChannelList = ui.ListBox() self.ChannelList.SetParent(self.ChannelListBase) self.ChannelList.SetSize(self.ChannelListBase.GetWidth()- 20, self.ChannelListBase.GetHeight()) self.ChannelList.SetPosition(0, 0) self.ChannelList.SetEvent(ui.__mem_func__(self.__OnSelectChannel)) self.ChannelList.Show() self.ChangeButton = ui.Button() self.ChangeButton.SetParent(self.Board) self.ChangeButton.SetPosition(self.Board.GetWidth() / 2 - 44, self.Board.GetHeight() - 35) self.ChangeButton.SetUpVisual('d:/ymir work/ui/public/Large_button_01.sub') self.ChangeButton.SetOverVisual('d:/ymir work/ui/public/Large_button_02.sub') self.ChangeButton.SetDownVisual('d:/ymir work/ui/public/Large_button_03.sub') self.ChangeButton.SetEvent(lambda : self.__OnClickConnectButton()) self.ChangeButton.SetText("Mehet") # "Go" self.ChangeButton.Show() self.DisableChangeButton() self.ChannelListScrollBar = ui.ScrollBar() self.ChannelListScrollBar.SetParent(self.ChannelListBase) self.ChannelListScrollBar.SetPosition(18, 3) self.ChannelListScrollBar.SetScrollBarSize(83) self.ChannelListScrollBar.SetWindowHorizontalAlignRight() self.ChannelListScrollBar.SetScrollEvent(ui.__mem_func__(self.__OnScrollChannelList)) self.ChannelListScrollBar.Show() def DisableChangeButton(self): self.ChangeButton.Disable() self.ChangeButton.Down() self.ChangeButton.ButtonText.SetFontColor(0.4, 0.4, 0.4) def EnableChangeButton(self): self.ChangeButton.Enable() self.ChangeButton.SetUp() self.ChangeButton.ButtonText.SetFontColor(1, 1, 1) def __GetRegionID(self): return 0 def __GetServerID(self): regionID = self.__GetRegionID() for i in serverInfo.REGION_DICT[regionID].keys(): if serverInfo.REGION_DICT[regionID][i]["name"] == net.GetServerInfo().split(",")[0]: serverID = int(i) break return serverID def __Fill_Up_ChannelList(self): self.__RequestServerStateList() self.__RefreshServerStateList() #self.ChannelList.SelectItem(0) def __RequestServerStateList(self): regionID = self.__GetRegionID() serverID = self.__GetServerID() try: channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"] except: return for id, channelDataDict in channelDict.items(): key=channelDataDict["key"] ip=channelDataDict["ip"] udp_port=channelDataDict["udp_port"] ServerStateChecker.Request(key, ip, udp_port) def __RefreshServerStateList(self): regionID = self.__GetRegionID() serverID = self.__GetServerID() bakChannelID = self.ChannelList.GetSelectedItem() self.ChannelList.ClearItem() try: channelDict = serverInfo.REGION_DICT[regionID][serverID]["channel"] except: return for channelID, channelDataDict in channelDict.items(): channelName = channelDataDict["name"] channelState = channelDataDict["state"] self.ChannelList.InsertItem(channelID, "%s %s" % (channelName, channelState)) self.ChannelList.SelectItem(bakChannelID-1) def NotifyChannelState(self, addrKey, state): try: stateName = serverInfo.STATE_DICT[state] except: stateName = serverInfo.STATE_NONE regionID = int(addrKey / 1000) serverID = int(addrKey / 10) % 100 channelID = addrKey % 10 try: serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] = stateName self.__RefreshChannelStateList() except: pass def __IsSpecialMap(self): dis_maps = [ "season1/metin2_map_oxevent", "season2/metin2_map_guild_inside01", "season2/metin2_map_empirewar01", "season2/metin2_map_empirewar02", "season2/metin2_map_empirewar03", "metin2_map_dragon_timeattack_01", "metin2_map_dragon_timeattack_02", "metin2_map_dragon_timeattack_03", "metin2_map_skipia_dungeon_boss", "metin2_map_skipia_dungeon_boss2", "metin2_map_devilsCatacomb", "metin2_map_deviltower1", "metin2_map_t1", "metin2_map_t2", "metin2_map_t3", "metin2_map_t4", "metin2_map_t5", "metin2_map_wedding_01", "metin2_map_duel" ] if str(background.GetCurrentMapName()) in dis_maps: return TRUE return FALSE def __OnSelectChannel(self): if self.ChangeButton.IsDown(): self.EnableChangeButton() ##< Works but not need >## #regionID = self.__GetRegionID() #serverID = self.__GetServerID() #channelID = self.ChannelList.GetSelectedItem() #if self.__IsSpecialMap(): # self.DisableChangeButton() # return #elif serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] == serverInfo.STATE_NONE: # self.DisableChangeButton() # return def __OnScrollChannelList(self): viewItemCount = self.ChannelList.GetViewItemCount() itemCount = self.ChannelList.GetItemCount() pos = self.ChannelListScrollBar.GetPos() * (itemCount - viewItemCount) self.ChannelList.SetBasePos(int(pos)) def __OnClickConnectButton(self): regionID = self.__GetRegionID() serverID = self.__GetServerID() channelID = self.ChannelList.GetSelectedItem() if not channelID: chat.AppendChat(1, "Nem választotál ki csatornát!") # "You did not select a channel!" return try: serverName = serverInfo.REGION_DICT[regionID][serverID]["name"] channelName = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["name"] addrKey = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["key"] ip = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["ip"] tcp_port = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["tcp_port"] state = serverInfo.REGION_DICT[regionID][serverID]["channel"][channelID]["state"] account_ip = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["ip"] account_port = serverInfo.REGION_AUTH_SERVER_DICT[regionID][serverID]["port"] markKey = regionID * 1000 + serverID * 10 markAddrValue=serverInfo.MARKADDR_DICT[markKey] net.SetMarkServer(markAddrValue["ip"], markAddrValue["tcp_port"]) app.SetGuildMarkPath(markAddrValue["mark"]) app.SetGuildSymbolPath(markAddrValue["symbol_path"]) except: chat.AppendChat(1, "Hiba történt a csatlakozás közben!") # "An error occurred while connect!" return if state == serverInfo.STATE_NONE: chat.AppendChat(1, "Sajnálom a kiválasztott csatorna nem elérhető!") # "Sorry the selected channel is offline!" return elif state == serverInfo.STATE_DICT[3]: chat.AppendChat(1, "Sajnálom a kiválasztott csatorna telítve van!") # "Sorry the selected channel is full!" return elif net.GetServerInfo().strip().split(", ")[1] == self.ChannelList.textDict[self.ChannelList.selectedLine].strip().split(" ")[0]: chat.AppendChat(1, "Te jelenleg is a kiválasztott csatornán tartózkodsz!") # "You are already on the selected channel!" return elif self.__IsSpecialMap(): chat.AppendChat(1, "Sajnálom ezen a területen nem válthatsz csatornát kilépés nélkül!") # "Sorry in this area you cannot change channel without logout!" return self.Close() net.SetServerInfo("%s, %s" % (serverName, channelName)) self.DirectConnect(ip, tcp_port, account_ip, account_port) def DirectConnect(self, ChannelIP, ChannelPort, AuthServerIP, AuthServerPort): #net.SetLoginInfo("xPengii", "kiU2_w1A_q2olDle9") net.SetLoginInfo(decode_string(net.ACCOUNT_ID), decode_string(net.ACCOUNT_PW)) net.ConnectToAccountServer(ChannelIP, ChannelPort, AuthServerIP, AuthServerPort) net.DirectEnter(0) net.SendSelectCharacterPacket(0) net.SendEnterGamePacket() def Show(self): ui.ScriptWindow.Show(self) def Close(self): ServerStateChecker.Destroy(self) self.Hide() return TRUE def OnPressEscapeKey(self): self.Close() return TRUE def OnUpdate(self): ServerStateChecker.Update() iom = ChannelChanger() iom.Show() chat.AppendChat(1, "#DEV#{Succesfully loaded}")
- 2
-
i think all know that it's very easy
btw thx
-
Really Ugly
try this
quest lua_drop begin state start begin function test() dropList = { [8008] = { typ = "limit", -- type min_level = 35, -- mindestlevel max_level = 45, -- maxlevel dropps = { {50513, 1, 15}, -- dropeintrag (vnum, count, chance) {27992, 1, 1}, {27993, 1, 1}, {27994, 1, 1}, {50034, 1, 100}, {70005, 1, 5}, {70024, 1, 5}, {70102, 1, 5}, {71084, 1, 35}, {71085, 1, 35}, } }, -- Vrchní ork [691] = { typ = "limit", -- type min_level = 10, -- mindestlevel max_level = 55, -- maxlevel dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50070, 1, 100}, } }, -- Král démonů [1091] = { typ = "limit", -- type min_level = 10, -- mindestlevel max_level = 55, -- maxlevel dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50081, 1, 100}, } }, -- Královna pavouků [2091] = { typ = "drop", -- type dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50073, 1, 100}, } }, -- Želva [2191] = { typ = "drop", -- type dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50076, 1, 100}, } }, -- Devítiocas [1901] = { typ = "drop", -- type dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50077, 1, 100}, } }, -- Žlutý tygr [1304] = { typ = "drop", -- type dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50078, 1, 100}, } }, -- Král plamenů [2206] = { typ = "drop", -- type dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50079, 1, 100}, } }, -- Tmavý vůdce duchů [792] = { typ = "drop", -- type dropps = { {50006, 1, 100}, -- dropeintrag (vnum, count, chance) {50008, 1, 100}, {50007, 1, 100}, {50009, 1, 100}, {50072, 1, 100}, } }, } end function drop(self) local dropList = lua_drop.test().dropList if dropList[self].typ == "drop" then local chance,count table.foreach(dropList[self].dropps, function(i) if dropList[self].dropps[i][3] ~= nil then chance = dropList[self].dropps[i][3] else chance = 100 end if dropList[self].dropps[i][2] ~= nil then count = dropList[self].dropps[i][2] else count = 1 end if math.random(1, 100) < chance then game.drop_item_with_ownership(dropList[self].dropps[i][1], count) end end) elseif dropList[self].typ == "limit" then if dropList[self].min_level == nil or dropList[self].max_level == nil then return end if dropList[self].min_level > pc.level or dropList[self].max_level < pc.level then return end local chance,count table.foreach(dropList[self].dropps, function(i) if dropList[self].dropps[i][3] ~= nil then chance = dropList[self].dropps[i][3] else chance = 100 end if dropList[self].dropps[i][2] ~= nil then count = dropList[self].dropps[i][2] else count = 1 end if math.random(1, 100) < chance then game.drop_item_with_ownership(dropList[self].dropps[i][1], count) end end) else return end end when kill with not npc.is_pc() begin lua_drop.drop(npc.get_race()) end end end
-
make it by quest
-
at least u could ask me on skype u know
+ i dont know what u want with the time so i think this will work
quest test begin state start begin function get_table() if test.table_info == nil then test.table_info={ {100, 22, 8001}, {101, 22, 8002}, {102, 22, 8003}, {103, 22, 8011}, {104, 22, 8013}, {105, 22, 8024}, {106, 22, 8026}, {107, 22, 8027}, {108, 22, 8027}, {109, 22, 8027}, } end return test.table_info end when login or levelup with pc.get_map_index() == 74 begin set_state(kill) end end state kill begin when letter begin send_letter(" تجربة ") end when button or info begin local table = test.get_table() if pc.getqf("time_retry") <= get_time() then for i,v in ipairs(table) do if pc.level > v[1] then mob.spawn(v[3], pc.get_local_x()+5, pc.get_local_y()+5, 1) pc.setqf("limit_time", get_time()+60*5) pc.setqf("mob_vnum", v[3]) end end end end when kill with npc.get_race() == pc.getqf("mob_vnum") begin local count = pc.getqf("state") + 1 local table = test.get_table() for i,v in ipairs(table) do if count <= 1 then pc.setqf("state", count) q.set_counter(" يجب قتل ", 1 ) elseif count >= 1 and pc.getqf("limit_time") >= get_time() then say(" fail ") say(" اعد المحاولة بعد ساعة ") pc.setqf("time_retry", get_time()+60*60*1) elseif count == 1 and get_time() < pc.getqf("limit_time") then say(" mbrok exp ") pc.give_exp(v[2]) clear_letter() set_state(__COMPLETE__) end end end end state __COMPLETE__ begin end end
- 1
-
pc.mount(vnum, time_in_sec) pc.mount_bonus(type, present(10or 20 or what u want), time_in_sec)
-
try
quest grandmaster_stone begin state start begin when 50512.use begin local search_skill_group = BuildSkillList(pc.get_job(), pc.get_skill_group()) local name_list,vnum_list = search_skill_group[2],search_skill_group[1] local skill_available_vnum,skill_available_name = {},{} for a = 1, table.getn(name_list) do if pc.get_skill_level(vnum_list[a]) >= 30 and pc.get_skill_level(vnum_list[a]) <= 39 then table.insert(skill_available_name, name_list[a]) table.insert(skill_available_vnum, vnum_list[a]) end end table.insert(skill_available_name, "Abbrechen") if table.getn(skill_available_vnum) < 1 then say_title("Regenbogenstein") say("[ENTER]Du besitzt keine Fähigkeiten die du verbessern kannst.[ENTER]") return end say_title("Regenbogenstein") say("[ENTER]Wähle eine Fähigkeit die du verbessern möchtest:[ENTER]") local select_skill = select2(skill_available_name) if skill_available_name[select_skill] == "Abbrechen" then return end say_title("Regenbogenstein:") say("[ENTER]Möchtest du die Fähigkeit verbessern?[ENTER]") if select("Verbessern","Abbrechen") == 2 then return end chat(""..skill_available_name[select_skill].." wurde erfolgreich verbessert!") pc.set_skill_level(skill_available_vnum[select_skill], (pc.get_skill_level(skill_available_vnum[select_skill])+1)) pc.set_skill_level(16, 59) item.remove() end end end
-
maybe u dont have the mobs ?
or check u add on the group or group_group
-
u put too much items in 1 shop
-
Fixed Thx To Marty
The Error that i include the local inside if
-
use eqiu function and set attr function
-
it's not need for this
i only give the function load and this is the import
-
thos function and even function ..etc just take number not string
-
same
btw to know the error is the table got nil , i said that cant find it i wrong about it sry
https://metin2.download/picture/g0GN2pu5yAtVI7rx5dZu94kQItl3Fn47/.png
-
-
Are you using this function in quest or are you calling this function from questlib.lua?
questlib.lua ;
local pc = pc or {} function pc.chat(text) print(text) end
quest :
quest test begin state start begin function chat(text) syschat(text) end when 9001.chat."Test me" begin setskin(NOWINDOW) test.chat("Mrlibya") end end end
- How can you check your function is work or not? It's too simple. You can put breakpoint. So you can do like that ;
function get_attr_armor_table() if (attr_wizerd.attr_armor_info != nil) then chat("attr_wizerd.attr_armor_info is not nil.") return attr_wizerd.attr_armor_info else chat("attr_wizerd.attr_armor_info is nil.") return 0 end return 0 end
Kind Regards
Ken
iam useing it for quest , the problem is ingame it's not show the table and says error : can't find table data_table01
Full Set Command with New Items
in Commands
Posted
what a such a nice Release