Jump to content

kyleflow

Advanced members
  • Content Count

    230
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by kyleflow

  1. Just search for the ready to use tweak. Already solved all your concerned.
  2. The only way currently available is animation tweak. we remove totally most of the animation. I'm not sure about your request.
  3. Extract Gem return Refining Gem? How? Read the script for it in forge.lua but unable to understand it .
  4. kyleflow

    Create New Gems

    The guides is not completed. Some step after setting up the files is not mentioned. I referred to this and it work like a charm. https://forum.ragezone.com/threads/how-to-make-custom-gems.690828/#post7140293 Stoneinfo.txt and the one from client side need to change based on the link I shared. Try retrace your step to check anything you miss.
  5. Luckily as I mentioned above. I play solo. Can't hack me if I'm not even connected to the internet
  6. For those who have problem. Probably you need to activate this 1st. Ensure that all Pipe and TCP/IP is enabled.
  7. Okay since I've struggle asking question in the forum without any answer relating to LuaSQL.dll, I somehow manage to do this and it works. Importance note for this to work. 1. Do not attach LuaSQL.dll of any version with CFF. 2. I'm using Lucky ServerFiles GS which is version 1.36 ( it might not work with your GS) 3. I'm not sure if the connector function for index.lua I give is the correct syntax that make it work or not but the connection syntax in the init.lua surely must be there for it to work. (I've run test and without it, the system not working. 4. Based on forum, I did not see any issues as mentioned where the system hang few secs to process this. 5. Okay lets see what I did. dofile(GetResPath("script/extension/Lua-SQL/init.lua")) dofile(GetResPath("script/extension/Lua-SQL/index.lua")) Step 1 : Include this inside your Resource>script>MisScript>NPCScript (any of your choice, mine on 07) Step 2: Create an extension folder based on the location on the above dofiles. It is case sensitive. Disclaimer, the code here are compilation of code available in the forum, the way I use it only a bit different. Credit to owner. Step 3: Inside init.lua, you need this code. SQLConnector = {}; SQLConnector.sql = { host = "KHAIRUL\\CERMIN", user = "sa", pass = "Y87dc#$98", db = "TradeDB" }; --asal 127.0.0.1\\SQLEXPRESS You need the double \\ in the host section to make it work. Step 4: Put this inside index.lua. Remember, this part I'm not sure which connector work, so I just left the original connector there since it does not affect the success. The section for function AddMallPoints(cha,points), I check it with my SQL database. If you used the same database as provided by Lucky, the syntax should be as I'm shown since my database, "Money" reflecting the amount of crystal in IGS. -- *********************************** -- Sample Lua-SQL System -- Requires: SQL Server 2005 -- By Sultan | V3ct0r -- *********************************** local PLUGIN_NAME = '[[LUA-SQL System]]' local PLUGIN_VERSION = '0.2' local PLUGIN_AUTHOR = 'Sultan | V3ct0r' --[[ ****************** ** Version: 0.2 ** ****************** [*] Slightly faster and less lag on execution [*] Edited LuaSQL.LG function to generate new files instead of editing Query.txt [*] Added LuaSQL.LG for every sample function to trace players inside new file Logs.txt [*] Removed/Edited few unneccessary stuffs from V0.1 ****************** ** Version: 0.1 ** ****************** [*] Use SQL Query directly using your scripts! [*] Built in the extension, there are few sample SQL Queries: AddMallPoints, AddCreditsPoints, ChangePlayerName, and more! [*] Requires GetPlayerByName if used by &lua command [*] Built in the extension the GetPlayerByName function, if it isn't exists in your files it will add it [*] You can freely add any SQL Query Execute function you wish for [*] This system will only generate UPDATES to SQL, you cannot "GET" any data from SQL [*] Requires SQL 2005 and above to use [*] For more information & details: http://forum.maindev.ru/threads/npc-dlja-nadoedalok-skajpa.19514/#post-159439 ]]-- -- -------------------------- -- Display loading message on startup -- -------------------------- print(">> Loading extension: "..PLUGIN_NAME) print(" [Version: "..PLUGIN_VERSION.."] from "..PLUGIN_AUTHOR) -- ------------------------ -- LUA-SQL ::DO NOT TOUCH:: -- ------------------------ do LuaSQL = {} LuaSQL.Directory = GetResPath('script\\extension\\Lua-SQL\\'); LuaSQL.Host = "KHAIRUL\\CERMIN"; LuaSQL.User = "sa"; LuaSQL.Pass = "Y87dc#$98"; LuaSQL.LG = function(file_name,text) local file = LuaSQL.Directory..file_name..'.txt' LogFile = io.open(file,'a') LogFile:write("["..os.date().."]\t"..text.."\n") LogFile:close() end LuaSQL.Execute = function(query) LuaSQL.LG('Query','Executed Query: ['..query..']'); os.execute("sqlcmd -S "..LuaSQL.Host.." -U "..LuaSQL.User.." -P "..LuaSQL.Pass.." -Q \""..query.."\" 1>NUL 2>NUL"); end -- if GetPlayerByName is nil, it will generate if(GetPlayerByName == nil)then Roles = {} Timer = cha_timer cha_timer = function(r,f,t) if(IsPlayer(r) == 1)then local characterName = GetChaDefaultName(r) if(Roles[characterName] == nil)then Roles[characterName] = r end end Timer(r,f,t) end GetPlayerByName = function(name) if(Roles[name] ~= nil)then return Roles[name] end return nil end end end -- ------------------------ -- LUA-SQL Functions -- ------------------------ --[[ ***************************** ** Sample Custom Functions ** ***************************** [*]: AddMallPoints(cha,points) => Requires Userdata to grant Mall Points [*]: AddCreditsPoints(cha,points) => Requires Userdata to grant Credits [*]: ChangePlayerName(cha,newName) => Requires Userdata to change players name [*]: ChangeGuildName(guildID,newName) => Requires Guild ID to change guild name [*]: Ban(cha) => Will ban character by Userdata [*]: UnBan(account Name) => Will unban character by account P/S: You can add yours, just use one of samples below and create your own. @FAQ [How To Use]: Example: &lua AddMallPoints("Player Name",1000) &lua ChangeGuildName(1,"New Guild Name") &lua Ban("Account Name") ]]-- function AddMallPoints(cha,points) if(type(cha) ~= 'userdata')then cha = GetPlayerByName(cha) end if(cha ~= nil)then local accountName = GetActName(cha) LuaSQL.Execute("UPDATE tradedb.dbo.AccountInfo SET Money = Money + "..points.." WHERE accName = '"..accountName.."'") LuaSQL.LG('Logs','[AddMallPoints] = Account name['..accountName..'] successfully added '..points..' mall points'); end end Step 5: Create an item for it with the function below, put it inside iteminfo.txt and itemeffect.lua respectively. 7346 1 Crsytal n0109 10130005 0 0 0 0 0 0 31 0 0 0 0 0 1 1 1 1 99 0 1000 -1,-2,-2,-2 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0,0 0 0,0 0,0 0 0 0 0 0 0 0 0 0 ImpsPoint_1 0 0 0 0,0 0 0 Obtain Crystal when used 0 function ImpsPoint_1 ( role , Item ) local points = AddMallPoints(role,1) if points == 1 then SystemNotice(role ,"You just got 1 points !") end end That's all. Some unexplained part as per mentioned above, I really don't know why it works but hey, it did work. Enjoy.
  8. Party Min Level Requirement? Which function do i need to change for this. So its available since level 1?
  9. I read again this files, does it do not need luasql.dll to work ? since i do not play with other ppl. a little lag due to usage of item does not hinder me
  10. kyleflow

    Hello

    I did not remove SQL. But when I played alone, I don't want to access SQL database to update the crystal when I could get it automatically like the crystal by mobs method. The current issues is that, the GS I have is not compatible to take advantage of that. It just wont work like some other GS. Been trying to figure it out but to no success.
  11. I did try to adapt a the bracelet, handguard and belt but unable to get it work. Tried to reverse trace every code related to it, yet failed when tested. The files I trace, need it to be in temporary bag to work. A few thing I want to know and confirmed. 1. Skilleff limit only 240 ? Can I increase the limit using v3ctor mode? 2. Can anyone list every related lua location that I need to change for it to work. For now, I only change skilleff, function, variable, iteminfo. Is there any other code that I need to change for it to work. 3. If anyone have full coded script also a good thing. Thanks.
  12. Simply enter the AccountServer table and find account_login table. delete by line the account you want to delete.
  13. How To Inject Step 1) 1) Open OllyDbg 2) Drag & Drop an EXE file to OllyDbg (File > Open) 3) Run the program with F9 While attaching in progress you will see Running text on the bottom right corner When attaching completed, you will see Paused text on the bottom right corner Step 2) 1) Now find a free space where you can add the DLL you want to inject. Find NOPS or DB 00 or any Part of .EXE (if that has no important Code) If you are already choose the part where you want to inject the DLL, Copy the Offset of that part to temp list file. Select several consecutive blank lines. Operate the Right Click -> Binary -> Edit (CTRL + E) A MessageBox will appear with title : Edit code at ... and type the name of the your DLL. Press OK button after typing the Name of the DLL After pressing OK button, you will see random characters. Be careful of typing the Name of the DLL in "ASCII", because Assembly code is upper & lower case sensitive. Step 3) 1) Press CTRL + A and the name will appear. 2) Skip few lines after the type name of your DLL and press Space Bar. 3) Type EntryPoint. Copy the first paragraph's first line to clipboard with Right Click -> Copy -> Clipboard ( (1) in list_offests.asm) Copy the second paragraph's first line to clipboard with Right Click -> Copy -> Clipboard ( (2) in list_offests.asm) Step 4) 1) Find a free space somewhere above the codes you wrote. 2) After find a free space, you should select several consecutive blank lines. 3) Operate the Right Click -> Binary -> Fill with NOP's Step 5) 1) Select the first paragraph's first line again. 2) Operate the Right Click -> Assemble 3) Type push 772A3163 ( (1) in list_offests.asm) Step 6) 1) Select same line again and Now after that press CTRL + N and new window will appear. 2) Find and Copy the Offset of the LoadLibraryA 3) Operate the Right Click -> Copy to Clipboard -> Addess ( (3) in list_offests.asm) Please make sure copy the correct Line of LoadLibraryA Offset. Step 7) 1) Type call dword ptr ds:[7501B2D0] ( (3) in list_offests.asm) 2) Type push 750D3C0D ( (2) in list_offests.asm) 3) Type push eax Step 8) 1) Operate the CTRL + N again. 2) Find GETPROCESSADDRESS 3) Operate the Right Click -> Copy to Clipboard -> Address Step 9) 1) Type call dword ptr ds:[7501B980] ( (4) in list_offests.asm) Type push eax Go to origin with Right Click -> Go To -> Origin and Operate Right Click -> Copy -> To Clipboard ( (5) in list_offests.asm) Return the codes again. Type JMP 750308B2 ( (5) in list_offests.asm) Save the file. Operate Right Click -> Copy -> Select All Operate Copy to executable -> All Modifications and copy all Operate Right Click -> Save File Return back to ASCII sample.dll and Right Click -> Copy -> To clipboard Step 10) 1) Open PE Explorer and open the EXE file. Change the Address of Entry Point to new EntryPoint. 2) Type 750D3BAF 3) Click GreenCheckBox and OK, 4) Operate File > Save File As and save the EXE Based on this step, if I run the program with F9, the offset value different when I did without F9. When I used F9, addresses like LoadLibraryA did not available with ctrl+N search. Without F9 the process flow out like intended but the Hooking is not giving the same outcome. For details reference to this step, can refer this github post. https://github.com/Dentrax/DLL-Injection-with-Assembly/tree/master/inject_tutorial Anyone know any better than me can help ? The GS I used is not compatible. Can't simply used CFF. Hope anyone who have knowledge about this can guide.
  14. Try check if you have every code that it need. This one from the compile script in Mega folder. I did not check myself since it works for me when I get the files. Functions.lua -- improved fruit function Lvup_Str_4 ( role , Item_Num ,Item_Traget ) local attr_type = ITEMATTR_VAL_STR --SystemNotice(role ,attr_type ) Elf_LvUp_4 ( role , Item_Num , Item_Traget , attr_type ) end function Lvup_Con_4 ( role , Item_Num ,Item_Traget ) local attr_type = ITEMATTR_VAL_CON Elf_LvUp_4 ( role , Item_Num , Item_Traget , attr_type ) end function Lvup_Agi_4 ( role , Item_Num ,Item_Traget ) local attr_type = ITEMATTR_VAL_AGI Elf_LvUp_4 ( role , Item_Num , Item_Traget , attr_type ) end function Lvup_Dex_4 ( role , Item_Num ,Item_Traget ) local attr_type = ITEMATTR_VAL_DEX Elf_LvUp_4 ( role , Item_Num , Item_Traget , attr_type ) end function Lvup_Sta_4 ( role , Item_Num ,Item_Traget ) local attr_type = ITEMATTR_VAL_STA Elf_LvUp_4 ( role , Item_Num , Item_Traget , attr_type ) end function Elf_LvUp_4 ( role , Item_Num , Item_Traget , attr_type ) local str = GetItemAttr( Item_Traget ,ITEMATTR_VAL_STR ) local con = GetItemAttr( Item_Traget ,ITEMATTR_VAL_CON ) local agi = GetItemAttr( Item_Traget ,ITEMATTR_VAL_AGI ) local dex = GetItemAttr( Item_Traget ,ITEMATTR_VAL_DEX ) local sta = GetItemAttr( Item_Traget ,ITEMATTR_VAL_STA ) local Elf_MaxEXP = GetItemAttr(Item_Traget,ITEMATTR_MAXENERGY) local Elf_MaxURE = GetItemAttr(Item_Traget,ITEMATTR_MAXURE) local Lv = str + agi + dex + con + sta local attr_type_num = GetItemAttr( Item_Traget ,attr_type ) local a = 1 / ( math.floor ( ( 1 + ( math.pow ( ( Lv / 10 ) , 3 ) ) ) * 10 ) / 10 * math.max ( 0.01 ,( 1 - attr_type_num * 0.05 ) ) ) if Lv >= 50 then a = 1 / ( math.floor ( ( 1 + ( math.pow ( ( Lv / 10 ) , 3 ) ) ) * 10 ) / 10 ) * math.max ( 0.01 ,( 1 - attr_type_num * 0.05 ) ) end local b = Percentage_Random ( a ) local item_energe = GetItemAttr( Item_Traget ,ITEMATTR_ENERGY ) if b == 1 then AddItemEffect(role , Item_Traget , 0 ) item_energe = 0 SystemNotice (role , "Pet level up successfully! Growth rate is depleted") attr_type_num = attr_type_num + 1 SetItemAttr ( Item_Traget , attr_type , attr_type_num ) local Item_MAXENERGY = 240 * ( Lv + 1 ) if Item_MAXENERGY > 6480 then Item_MAXENERGY = 6480 end local Item_MAXURE_NUM = Elf_MaxURE + 2000 if Item_MAXURE_NUM > 32000 then Item_MAXURE_NUM = 32000 end SetItemAttr ( Item_Traget , ITEMATTR_MAXENERGY , Item_MAXENERGY ) SetItemAttr ( Item_Traget , ITEMATTR_MAXURE , Item_MAXURE_NUM ) ResetItemFinalAttr(Item_Traget) AddItemEffect(role , Item_Traget , 1 ) else item_energe = 0.5 * item_energe SystemNotice (role , "Pet level up failed! Growth rate reduced by half") end SetItemAttr ( Item_Traget , ITEMATTR_ENERGY , item_energe ) end function CheckJingLingLv2 ( role , Item_Traget) local ItemID = GetItemID ( Item_Traget ) local str_Traget = GetItemAttr( Item_Traget ,ITEMATTR_VAL_STR ) --Strenght local con_Traget = GetItemAttr( Item_Traget ,ITEMATTR_VAL_CON ) --Constitution local agi_Traget = GetItemAttr( Item_Traget ,ITEMATTR_VAL_AGI ) --Agility local dex_Traget = GetItemAttr( Item_Traget ,ITEMATTR_VAL_DEX ) --Accuracy local sta_Traget = GetItemAttr( Item_Traget ,ITEMATTR_VAL_STA ) --Spirit local lv_Traget = str_Traget + con_Traget + agi_Traget + dex_Traget + sta_Traget --Stat to add for a lv if lv_Traget < 42 then return 0 else return 1 end if lv_Traget > 50 then return 0 else return 1 end end ItemEffect.lua: function ItemUse_Great_Strup ( role , Item , Item_Traget ) local ret = CheckJingLingLv2( role , Item_Traget ) if ret == 0 then SystemNotice ( role , "Fairy Lv lower than 42. Unable to use Improved Strenght Fruit") UseItemFailed ( role ) return end local Cha_Boat = 0 Cha_Boat = GetCtrlBoat ( role ) if Cha_Boat ~= nil then SystemNotice( role , "Cannot use while sailing" ) UseItemFailed ( role ) return end local Item_type = GetItemType ( Item ) local Item_Traget_Type = GetItemType ( Item_Traget ) local Item_Num = GetItemID ( Item ) local Check_Exp = 0 local Elf_MaxEXP = GetItemAttr(Item_Traget,ITEMATTR_MAXENERGY) local Item_Target_ID = GetItemID ( Item_Traget ) local Pet_Slot = GetChaItem ( role , 2 , 1 ) local Pet_ID = GetItemID ( Pet_Slot ) if Item_Target_ID ~= Pet_ID then SystemNotice(role , "Pet must be in the Pet Slot" ) UseItemFailed ( role ) return end local Item_bg = GetChaItem ( role , 2 , 1 ) if Item_type == 58 and Item_Traget_Type == 59 then Check_Exp = CheckElf_EXP ( role , Item_Traget ) if Check_Exp == 0 then SystemNotice(role , "Growth rate is not full. Unable to feed pet with Improved Strenght Fruit" ) UseItemFailed ( role ) else Lvup_Str_4 ( role , Item_Num , Item_Traget ) end end end function ItemUse_Great_Agiup ( role , Item , Item_Traget ) local ret = CheckJingLingLv2( role , Item_Traget ) if ret == 0 then SystemNotice ( role , "Fairy Lv lower than 42. Unable to use Improved Agility Fruit") UseItemFailed ( role ) return end local Cha_Boat = 0 Cha_Boat = GetCtrlBoat ( role ) if Cha_Boat ~= nil then SystemNotice( role , "Cannot use while sailing" ) UseItemFailed ( role ) return end local Item_type = GetItemType ( Item ) local Item_Traget_Type = GetItemType ( Item_Traget ) local Item_Num = GetItemID ( Item ) local Check_Exp = 0 local Elf_MaxEXP = GetItemAttr(Item_Traget,ITEMATTR_MAXENERGY) local Item_Target_ID = GetItemID ( Item_Traget ) local Pet_Slot = GetChaItem ( role , 2 , 1 ) local Pet_ID = GetItemID ( Pet_Slot ) if Item_Target_ID ~= Pet_ID then SystemNotice(role , "Pet must be in the Pet Slot" ) UseItemFailed ( role ) return end local Item_bg = GetChaItem ( role , 2 , 1 ) if Item_type == 58 and Item_Traget_Type == 59 then Check_Exp = CheckElf_EXP ( role , Item_Traget ) if Check_Exp == 0 then SystemNotice(role , "Growth rate is not full. Unable to feed pet with Improved Agility Fruit" ) UseItemFailed ( role ) else Lvup_Agi_4 ( role , Item_Num , Item_Traget ) end end end function ItemUse_Great_Dexup ( role , Item , Item_Traget ) local ret = CheckJingLingLv2( role , Item_Traget ) if ret == 0 then SystemNotice ( role , "Fairy Lv lower than 42. Unable to use Improved Accuracy Fruit") UseItemFailed ( role ) return end local Cha_Boat = 0 Cha_Boat = GetCtrlBoat ( role ) if Cha_Boat ~= nil then SystemNotice( role , "Cannot use while sailing" ) UseItemFailed ( role ) return end local Item_type = GetItemType ( Item ) local Item_Traget_Type = GetItemType ( Item_Traget ) local Item_Num = GetItemID ( Item ) local Check_Exp = 0 local Elf_MaxEXP = GetItemAttr(Item_Traget,ITEMATTR_MAXENERGY) local Item_Target_ID = GetItemID ( Item_Traget ) local Pet_Slot = GetChaItem ( role , 2 , 1 ) local Pet_ID = GetItemID ( Pet_Slot ) if Item_Target_ID ~= Pet_ID then SystemNotice(role , "Pet must be in the Pet Slot" ) UseItemFailed ( role ) return end local Item_bg = GetChaItem ( role , 2 , 1 ) if Item_type == 58 and Item_Traget_Type == 59 then Check_Exp = CheckElf_EXP ( role , Item_Traget ) if Check_Exp == 0 then SystemNotice(role , "Growth rate is not full. Unable to feed pet with Improved Accuracy Fruit" ) UseItemFailed ( role ) else Lvup_Dex_4 ( role , Item_Num , Item_Traget ) end end end function ItemUse_Great_Conup ( role , Item , Item_Traget ) local ret = CheckJingLingLv2( role , Item_Traget ) if ret == 0 then SystemNotice ( role , "Fairy Lv lower than 42. Unable to use Improved Constitution Fruit") UseItemFailed ( role ) return end local Cha_Boat = 0 Cha_Boat = GetCtrlBoat ( role ) if Cha_Boat ~= nil then SystemNotice( role , "Cannot use while sailing" ) UseItemFailed ( role ) return end local Item_type = GetItemType ( Item ) local Item_Traget_Type = GetItemType ( Item_Traget ) local Item_Num = GetItemID ( Item ) local Check_Exp = 0 local Elf_MaxEXP = GetItemAttr(Item_Traget,ITEMATTR_MAXENERGY) local Item_Target_ID = GetItemID ( Item_Traget ) local Pet_Slot = GetChaItem ( role , 2 , 1 ) local Pet_ID = GetItemID ( Pet_Slot ) if Item_Target_ID ~= Pet_ID then SystemNotice(role , "Pet must be in the Pet Slot" ) UseItemFailed ( role ) return end local Item_bg = GetChaItem ( role , 2 , 1 ) if Item_type == 58 and Item_Traget_Type == 59 then Check_Exp = CheckElf_EXP ( role , Item_Traget ) if Check_Exp == 0 then SystemNotice(role , "Growth rate is not full. Unable to feed pet with Improved Constitution Fruit" ) UseItemFailed ( role ) else Lvup_Con_4 ( role , Item_Num , Item_Traget ) end end end function ItemUse_Great_Staup ( role , Item , Item_Traget ) local ret = CheckJingLingLv2( role , Item_Traget ) if ret == 0 then SystemNotice ( role , "Fairy Lv lower than 42. Unable to use Improved Spirit Fruit") UseItemFailed ( role ) return end local Cha_Boat = 0 Cha_Boat = GetCtrlBoat ( role ) if Cha_Boat ~= nil then SystemNotice( role , "Cannot use while sailing" ) UseItemFailed ( role ) return end local Item_type = GetItemType ( Item ) local Item_Traget_Type = GetItemType ( Item_Traget ) local Item_Num = GetItemID ( Item ) local Check_Exp = 0 local Elf_MaxEXP = GetItemAttr(Item_Traget,ITEMATTR_MAXENERGY) local Item_Target_ID = GetItemID ( Item_Traget ) local Pet_Slot = GetChaItem ( role , 2 , 1 ) local Pet_ID = GetItemID ( Pet_Slot ) if Item_Target_ID ~= Pet_ID then SystemNotice(role , "Pet must be in the Pet Slot" ) UseItemFailed ( role ) return end local Item_bg = GetChaItem ( role , 2 , 1 ) if Item_type == 58 and Item_Traget_Type == 59 then Check_Exp = CheckElf_EXP ( role , Item_Traget ) if Check_Exp == 0 then SystemNotice(role , "Growth rate is not full. Unable to feed pet with Improved Spirit Fruit" ) UseItemFailed ( role ) else Lvup_Sta_4 ( role , Item_Num , Item_Traget ) end end end
  15. Ouh for testing purpose, when you want to try the drop is working or not, please change the rate into 1 so that u can see that it works. I reduce the the success into 0.01 to make it hard for me to get it in an open Map with lots of level.
  16. Not at all. I script to learn and play solo. So I don't mind sharing any script I somehow manage to do. It's a bit messy but it work. local dead_id = GetChaID(dead) local mob = {} local arg_mob = {} -- argent local ms_mob = {} --magicsea local dblue_mob = {} local Cha = TurnToCha(role)--check lvl mob[696] = {ItemDrop = 7325, Quantity = 1, Quality = 4, Rate = 1} --100%% drop mob[687] = {ItemDrop = 7325, Quantity = 1, Quality = 4, Rate = 1} mob[690] = {ItemDrop = 7325, Quantity = 10, Quality = 4, Rate = 1} mob[693] = {ItemDrop = 7325, Quantity = 10, Quality = 4, Rate = 1} mob[707] = {ItemDrop = 7325, Quantity = 10, Quality = 4, Rate = 1} mob[686] = {ItemDrop = 7326, Quantity = 1, Quality = 4, Rate = 0.05} --abandoned city 1 mobs mob[689] = {ItemDrop = 7326, Quantity = 1, Quality = 4, Rate = 0.05} mob[688] = {ItemDrop = 7326, Quantity = 1, Quality = 4, Rate = 0.05} mob[695] = {ItemDrop = 7327, Quantity = 1, Quality = 4, Rate = 0.1}--dark swamp mob[697] = {ItemDrop = 7327, Quantity = 1, Quality = 4, Rate = 0.1} arg_mob[dead_id] = {ItemDrop = 7328, Quantity = 1, Quality = 4, Rate = 0.01, Peta = "garner"} ms_mob[dead_id] = {ItemDrop = 7328, Quantity = 1, Quality = 4, Rate = 0.01, Peta = "magicsea"} dblue_mob[dead_id] = {ItemDrop = 7328, Quantity = 1, Quality = 4, Rate = 0.01, Peta = "darkblue"} if mob[dead_id] ~= nil then if Percentage_Random(mob[dead_id].Rate) == 1 then GiveItem ( atk, 0, mob[dead_id].ItemDrop, mob[dead_id].Quantity , mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 IMP Point from "..GetChaDefaultName(dead) ) end if Percentage_Random(mob[dead_id].Rate) == 0.05 then GiveItem ( atk, 0, mob[dead_id].ItemDrop, mob[dead_id].Quantity , mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 Rock Voucher from "..GetChaDefaultName(dead) ) end if Percentage_Random(mob[dead_id].Rate) == 0.1 then GiveItem ( atk, 0, mob[dead_id].ItemDrop, mob[dead_id].Quantity , mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 Jade Voucher from "..GetChaDefaultName(dead) ) end end if (arg_mob[dead_id] ~= nil and GetChaMapName(atk) == arg_mob[dead_id].Peta) then if Percentage_Random(arg_mob[dead_id].Rate) == 0.01 then GiveItem( atk, 0, arg_mob[dead_id].ItemDrop, arg_mob[dead_id].Quantity, arg_mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 Accessories Fragment from "..GetChaDefaultName(dead) ) end end if (ms_mob[dead_id] ~= nil and GetChaMapName(atk) == ms_mob[dead_id].Peta) then if Percentage_Random(ms_mob[dead_id].Rate) == 0.01 then GiveItem( atk, 0, ms_mob[dead_id].ItemDrop, ms_mob[dead_id].Quantity, ms_mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 Accessories Fragment from "..GetChaDefaultName(dead) ) end end if (dblue_mob[dead_id] ~= nil and GetChaMapName(atk) == dblue_mob[dead_id].Peta) then if Percentage_Random(dblue_mob[dead_id].Rate) == 0.01 then GiveItem( atk, 0, dblue_mob[dead_id].ItemDrop, dblue_mob[dead_id].Quantity, dblue_mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 Accessories Fragment from "..GetChaDefaultName(dead) ) end end ---smpai sini
  17. This code have 2 part, the upper part work wonders and the 2nd part did not work. The 2nd part basically emulate the same way the first part work but still it does not work. This was placed inside exp_and_level under GetEXP_PKM. --custom drop dpt Item local dead_id = GetChaID(dead) local mob = {} local ChaX = TurnToCha(role)--check lvl mob[696] = {ItemDrop = 7325, Quantity = 1, Quality = 4, Rate = 1} --100%% drop mob[687] = {ItemDrop = 7325, Quantity = 1, Quality = 4, Rate = 1} mob[690] = {ItemDrop = 7325, Quantity = 10, Quality = 4, Rate = 1} mob[693] = {ItemDrop = 7325, Quantity = 10, Quality = 4, Rate = 1} mob[707] = {ItemDrop = 7325, Quantity = 10, Quality = 4, Rate = 1} mob[686] = {ItemDrop = 7326, Quantity = 1, Quality = 4, Rate = 0.05} --abandoned city 1 mobs mob[689] = {ItemDrop = 7326, Quantity = 1, Quality = 4, Rate = 0.05} mob[688] = {ItemDrop = 7326, Quantity = 1, Quality = 4, Rate = 0.05} mob[695] = {ItemDrop = 7327, Quantity = 1, Quality = 4, Rate = 0.1}--dark swamp mob[697] = {ItemDrop = 7327, Quantity = 1, Quality = 4, Rate = 0.1} if mob[dead_id] ~= nil then if Percentage_Random(mob[dead_id].Rate) == 1 then GiveItem ( atk, 0, mob[dead_id].ItemDrop, mob[dead_id].Quantity , mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 IMP Point from "..GetChaDefaultName(dead) ) end if Percentage_Random(mob[dead_id].Rate) == 0.05 then GiveItem ( atk, 0, mob[dead_id].ItemDrop, mob[dead_id].Quantity , mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 Rock Voucher from "..GetChaDefaultName(dead) ) end if Percentage_Random(mob[dead_id].Rate) == 0.1 then GiveItem ( atk, 0, mob[dead_id].ItemDrop, mob[dead_id].Quantity , mob[dead_id].Quality) BickerNotice(atk, "You have obtained 1 Jade Voucher from "..GetChaDefaultName(dead) ) end end --end here custom drop item --custom script untuk --from here it does not worked if((GetChaMapName(atk) == "garner" or GetChaMapName(atk) == "magicsea" or GetChaMapName(atk) == "darkblue" ) and Lv(ChaX)>= 41) then local MIB = GetChaID(dead) local MIBX = {} MIBX[MIB] = {ItemDrop = 7328, Quantity = 1, Quality = 4, Rate = 1} if MIBX[MIB] ~= nil then if Percentage_Random(MIBX[MIB].Rate) == 1 then GiveItem( atk, 0, MIBX[MIB].ItemDrop, MIBX[MIB].Quantity, MIBX[MIB].Quality) end end end --stop sini custom accessories mobs by map
  18. When working with CO files, does this mean if I'm to compile my own gameserver, can I attached LuaSQL.dll directly before compiling? would that confirm it to be working?
  19. kyleflow

    Hello

    Honestly I just customizing my own private server to play offline alone without intervention with SQL interface as much as possible to feel like I'm actually playing a complete game with it's mall working directly inside the game and able to buy things from the mall without intervention of SQL for its crystal. I know people are making npc to simulate exchanging the said 'crystal item' but it just not feel nostalgic in some sense. Normally I play this just to be in between mainstream game like Dota, PUBG and New World, just to relieve the tension of competing with other player and chill back, Good to see you back here Kong.
  20. Is this video related to the other method Wrexor used? https://www.youtube.com/watch?v=FbQcdP4NdlQ
  21. I think, based on FC/DS spawn code, you need to ensure all this setting is actually there and change appropriately. First, in KYJJ ctrl.lua, you can adapt this code. print( "Loading KJJJ Ctrl.lua" ) function config(map) MapCanSavePos(map, 0) -- 1 = Allow players to save respaw // 0 = Do not allow players to save respaw MapCanPK(map, 1) -- 1 = Turns on PK Mouse Sword Icon // 0 = Turns off PK Mouse Sword Icon ( Need to press CTRL key ) MapCopyNum(map, 1) -- 1 Copy of the map will be generated by GameServer SingleMapCopyPlyNum(map, 300) -- 300 Players are allowed to enter the map MapCanTeam(map , 1) -- 1 = Allow players to create party // 0 = Do not allow players to create party MapType ( map , 4 ) -- 0 = PvP Off // 1 = PvP Off // 2 = PvP On ( Not allowed to kill Guild and Party Mates ) // 3 = PvP On ( Allowed to kill any player but not Party Mates ) // 4 = PvP On ( Not allowed to kill Guild and Party Mates ) end function get_map_entry_pos_abandonedcity() -- change into kyjj map name e.g: function get_map_entry_pos_kyjj() local POS_X=819 --put X and Y coordinate respectively based on the map you want the portal to be open local POS_Y=3659 return POS_X , POS_Y end function init_entry(map) -- specify the location of the map you want the coordinate above to open SetMapEntryMapName(map, "magicsea") SetMapEntryTime(map, "2008/8/30/0/0", "0/3/0", "0/1/0", "0/2/0") -- The first set of numbers is the starting point (Year/Month/Day/Hour/Minute), next is opening interval (Day/Hour/Minute), portal open duration (Day/Hour/Minute), and last is the map duration (Day/Hour/Minute) end For KYJJ entry.lua function config_entry(entry) SetMapEntryEntiID(entry, 193,1) end The most important code you need to change is that, copy those number 193,1 if you want your portal to be on land. AddBirthPoint("map full name", "map name", XX,YY) -- spawn coordinate inside the targetted map Lastly input a new point in resource>Script>calculate>birth_conf.lua
  22. Wrexor on his replies in LuaSQL related post, did says he able to attached LuaSQL.dll with another method since a lot of the available GameServer in the forum is not suitable. Anyone knows on how ? How did he find the targeted address I assume to attached it properly. Anyone with the knowledge to do this, please make a guide for community since it will be a big help for the community.
  23. Where do I find that 'Whitelist' name. In function.lua I did find a GM name but its only used for event creation and the function are as below. function Reg_Player_Event_Name ( Event_Name ) --注册事件名 返回1 成功 0失败 if Event_Name == "Test" then return 0 end local i = 0 local Array_Length = table.getn(Player_Can_Do) --取数组长 local Now_Time = Day_Mission_Time() for i=1 , Array_Length ,1 do if Player_Can_Do[i].Event_Name == Event_Name then --如果存在该记录名则跳出 return 0 elseif Player_Can_Do[i].Event_Name ~= Event_Name and i == Array_Length then --不存在该记录则添加 table.insert( Player_Can_Do , { Event_Name = Event_Name , Value = {Player_Name = "GMEric" , Do_Day = Now_Time , Has_Record = true } } ) return 1 end end return 0 end 2) There are list of item that will induced the character to be disconnected but the one i commonly tried to make are heaven sword. 6096 Heaven Sword w0375 10100001 01010071 0 03010113 0 0 0 1 0 0 0 4 1 0 1 0 1 1 1 0 1,3,-2,-2 95 9,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 9,6,-2,-2,-2,-2,-2,-2,-2,-2 -1,-2,-2,-2,-2,-2,-2,-2,-2,-2 0 0 0 0 0 0 0 120 0 0 0 0 0 0 0 0 0 0 0 0 0 0 12,12 0,0 0,0 8,8 0,0 0,0 0,0 0,0 287,293 311,315 0,0 0,0 0,0 14,14 20,20 0,0 0,0 8,8 0,0 0,0 0,0 0,0 1 7000,7000 20000,20000 0 0 0 0 0 0 0 0 0 0 0 0 0 0,0 0 0 A holy sword from heaven. 0 Basically item from 6096 until 6261 Item ID have issues. This files is from 1.36 server files but gameserver.exe of 1.38.
×
×
  • Create New...