-
Posts
109 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by TrueNoir
-
Adding the Greed Skill to other classes besides blacksmith
TrueNoir replied to TrueNoir's question in Source Requests
I did and its still not showing up i went ahead thinking it might have been just a clientside problem and added it to the client as well but then the skill is inactive and still isn't properly applying after a character is given the skill so i'm not sure what's wrong with it. -
Adding the Greed Skill to other classes besides blacksmith
TrueNoir posted a question in Source Requests
Before I switched over to rathena I had a quest which allowed other classes to obtain the greed skill and all that was required for it to work was edit the skilltree table for the quests and then give a player the skill. But now after switching to rathena the skill seems give the message that you have it but it doesn't appear to be useable and doesnt appear at all to the 3rd classes almost like there is a limit on max number of skills that can appear for any one class. Is there anyway to fix this problem and if so how do i go about doing it. -
with the 2.4 version i cant seem to get the sound to work on the patcher is that feature missing o.O? and also i noticed only the link for renewal is set up properly is there no way to patch the data.grf and rdata.grf?
-
So I'm guessing the newest version isn't useable? Cause no matter what I try I can't get it to work at all or is it just because theres no good guide that explains how to use it :S and if its broken any chance to get a fixed version?
-
Every time unknow packet_db Rathena R16213
TrueNoir replied to gilbertobitt's question in Client-side Support
are you diffing the exe using SkipPacketHeaderObfuscation also im pretty sure all the features for that client version aren't finished so if you can't figure out what's wrong maybe you should wait till its fully supported. -
diff the file without read data folder first and that will fix the screen size after you use setup.exe of course thats the only way to fix it just use multi grf and put everything in grf's.
-
Game Process priority changed to low its own.
TrueNoir replied to Baneado's question in Client-side Support
have you made sure that its not a problem with hardware acceleration or video card problem. the other possiblity is if you have a virus. or if the server your playing on uses molebox encryption the game client will take over 500mb's of ram because nothing gets decrypted in molebox so then you would need more ram. -
if you have ones which use duplicate entry's that also causes problem like having two headgears named the same in an entry and the client will always display errors at lua errors regardless of what you use cause thats how the client displays errors.
-
Decompiled Lua's For 2011-11-22aRagexeRE Client
TrueNoir replied to Rytech's topic in Client Releases
I see that you don't have skillinfolist.lua translated so i'm uploading mine for anyone that wants. skillinfolist.zip -
Competition or not I think the main point of the topic is mostly just to figure out which either iro or kro should be used mechanic wise. mirabell is correct it would be smarter to stick to iro since its easy for all of us to test on another thing too is because iro gets patches later then kro its usually more refined and bugs fixed atleast for the time being then of course once the svn is to the point were it has all the main classes working you could slowly transist into kro if you wanted to but it would be best to just stick with what is really easy to gather data from and get rathena up to iro's current settings.
-
Corruption and bots was the whole reason i quit playing pservers back like 7 years ago to work on making my own AnimaRO was horrible :S and the whole reason now for not playing pservers is I have a server to run and pretty much from the time i get up to the time i go to sleep is spent working on it i have too much dedication as an admin but i can't just not care at the same time :<
-
I've been having trouble trying to figure out when this dam lua error ive been getting during login ive tried rewriting skillinfo_f.lua afew times but i keep having either the range error during casting using the older way skillinfo_f.lua is written or the way which ive been trying now: -- Function #0 GetInheritJob = function(job) JobInheritTable = nil JobInheritTable = {} if job == nil then return nil end local i = 0 while job ~= nil do i = i + 1 JobInheritTable[i] = job job = JOB_INHERIT_LIST[job] end return i end All_NeedSkillList = {} -- Function #1 CheckNeedSkillList = function(skillInfo, skillDepth) if All_NeedSkillList ~= nil and skillInfo ~= nil then local depth = 0 while All_NeedSkillList[depth] do local idx = 1 t_skillInfo = All_NeedSkillList[depth][idx] while t_skillInfo do if t_skillInfo[1] == skillInfo[1] then if skillDepth > depth then return false end if t_skillInfo[2] < skillInfo[2] then All_NeedSkillList[depth][idx] = skillInfo end return true end idx = idx + 1 t_skillInfo = All_NeedSkillList[depth][idx] end depth = depth + 1 end end return false end -- Function #2 SetNeedSkillList = function(SKID, depth) local skillInfo = SKILL_INFO_LIST[sKID] if skillInfo ~= nill then local bIsNeedSkillList = false local needSkillList = skillInfo.NeedSkillList if needSkillList ~= nil then for j, k in pairs(JobInheritTable) do local jobID = JOB_INHERIT_LIST2[k] if jobID ~= -1 and jobID ~= nil then k = jobID end if needSkillList[k] ~= nil then needSkillList = needSkillList[k] bIsNeedSkillList = true break end end end if bIsNeedSkillList == false then needSkillList = skillInfo["_NeedSkillList"] end if needSkillList ~= nil then for idx, skill in pairs(needSkillList) do if CheckNeedSkillList(skill, depth) == false then local listSize = 0 if All_NeedSkillList[depth] == nil then All_NeedSkillList[depth] = {} else listSize = getTableSize(All_NeedSkillList[depth]) end All_NeedSkillList[depth][listSize + 1] = skill SetNeedSkillList(skill[1], depth +1) end end end end end -- Function #3 GetSkillInfo = function(SKID) All_NeedSkillList = nil All_NeedSkillList = {} local skillInfo = SKILL_INFO_LIST[sKID] if skillInfo ~= nill then local strSkillID = skillInfo[1] local strSkillName = skillInfo.SkillName local MaxLv = skillInfo.MaxLv local UserUpgradable = 1 if skillInfo.Type == "Quest" or skillInfo.Type == "Soul" then UserUpgradable = 0 end SetNeedSkillList(SKID, 0) return strSkillID, strSkillName, MaxLv, UserUpgradable end return "", "", -1, -1 end -- Function #4 AddNeedSkillList = function(SKID) if All_NeedSkillList ~= nil then local depth = 0 while All_NeedSkillList[depth] do local idx = 1 skillInfo = All_NeedSkillList[depth][idx] while skillInfo do if skillInfo[2] == nil then skillInfo[2] = 0 end c_AddNeedSkillList(SKID, skillInfo[1], skillInfo[2]) idx = idx + 1 skillInfo = All_NeedSkillList[depth][idx] end depth = depth + 1 end end end -- Function #5 InitSkillTreeView = function(jobID, arrayNum) local skillList = SKILL_TREEVIEW_FOR_JOB[jobID] if skillList ~= nil then local skillPos = 0 local listSize = getTableSize(skillList) while listSize > 0 do local skillID = skillList[skillPos] if skillID ~= nil then local strSkillID, strSkillName, MaxLv, UserUpgradable = GetSkillInfo(skillID) if strSkillID ~= nil and strSkillID ~= "" then c_AddSkillList(arrayNum, skillID, strSkillID, skillPos, MaxLv, UserUpgradable) AddNeedSkillList(skillID) end listSize = listSize - 1 end skillPos = skillPos + 1 end end end -- Function #6 GetSkillIdName = function(SkillID) local obj = SKILL_INFO_LIST[skillID] if obj ~= nil then obj = SKILL_INFO_LIST[skillID][1] end if obj ~= nil then return obj end return "" end -- Function #7 GetSkillName = function(SkillID) local obj = SKILL_INFO_LIST[skillID] if obj ~= nil then obj = SKILL_INFO_LIST[skillID].SkillName end if obj ~= nil then return obj end return "" end -- Function #8 IsLevelUseSkill = function(SkillID) local skillInfo = SKILL_INFO_LIST[skillID] local rst = nil if skillInfo ~= nil then rst = skillInfo.bSeperateLv if rst ~= nil then return rst end local spAmount = skillInfo.SpAmount return spAmount == nil end return false end -- Function #9 GetLevelUseSpAmount = function(SkillID, idx) local obj = SKILL_INFO_LIST[skillID] if obj ~= nil then obj = SKILL_INFO_LIST[skillID].SpAmount end if obj ~= nil then obj = SKILL_INFO_LIST[skillID].SpAmount[idx] end if obj ~= nil then return obj end return 0 end -- Function #10 GetSkillDescript = function(JobID, SKID, bChangeColor) local descript = "" local obj = SKILL_DESCRIPT[sKID] if obj ~= nil then local s = "777777½ÀµæÁ¶°Ç : " for i,v in pairs(obj) do s_pos, f_pos = string.find(v, s) bCopyText = false if s_pos ~= nil then s_pos = s_pos - 1 subStr = string.sub(v, 1, s_pos - 1) if bChangeColor == 1 then local temp = subStr .. "^FF1493" .. string.sub(v, s_pos + 7, -1) v = temp end if s_pos > 1 then for j, k in pairs(JobInheritTable) do if subStr == string.format("%d", k) then descript = descript .. string.sub(v, s_pos, -1) descript = descript .. "rn" break end end else bCopyText = true end else bCopyText = true end if bCopyText == true then descript = descript .. v descript = descript .. "rn" end end end return descript end -- Function #11 TestFile = function(saveFileName) saveFile = io.open(saveFileName, "w") if saveFile ~= nil and All_NeedSkillList ~= nil then local depth = 0 while All_NeedSkillList[depth] do local idx = 1 skillInfo = All_NeedSkillList[depth][idx] while skillInfo do saveFile:write(string.format("[%d,%d]n", skillInfo[1], skillInfo[2])) idx = idx + 1 skillInfo = All_NeedSkillList[depth][idx] end depth = depth + 1 end end io.close(saveFile) end GetSkillAttackRange = function(in_SKID, in_Level, in_curMaxLv) local attackRange = 1 local attackRangeOfMaxLv = 0 local maxLv = 0 local obj = SKILL_INFO_LIST[in_SKID] if obj ~= nil then obj = SKILL_INFO_LIST[in_SKID].AttackRange maxLv = SKILL_INFO_LIST[in_SKID].MaxLv end if obj ~= nil then attackRange = SKILL_INFO_LIST[in_SKID].AttackRange[in_Level] end if maxLv ~= nil and maxLv < in_curMaxLv then in_curMaxLv = maxLv end attackRangeOfMaxLv = SKILL_INFO_LIST[in_SKID].AttackRange[in_curMaxLv] if attackRangeOfMaxLv == nil then attackRangeOfMaxLv = 0 end if attackRange ~= nil then return attackRange, attackRangeOfMaxLv end return 1, attackRangeOfMaxLv end skillinfozskillinfolist string "buf": 9209 table index is nil GetSkillIDName skillinfo_f.lua145 attempt to index global skill_info_list nil value and pretty much won't actually login to game at that point :S
-
[Help] Client crashing everytime a 3rd Job Class does anything
TrueNoir replied to Nemumancer's question in Client-side Support
Sounds like its a lua error maybe during using skills? error like rangenil or something to that effect try this: skillinfoz/skillinfo_f.lua -- Function #0 GetInheritJob = function(job) JobInheritTable = nil JobInheritTable = {} if job == nil then return nil end local i = 0 while job ~= nil do i = i + 1 JobInheritTable[i] = job job = JOB_INHERIT_LIST[job] end return i end All_NeedSkillList = {} -- Function #1 CheckNeedSkillList = function(skillInfo, skillDepth) if All_NeedSkillList ~= nil and skillInfo ~= nil then local depth = 0 while All_NeedSkillList[depth] do local idx = 1 t_skillInfo = All_NeedSkillList[depth][idx] while t_skillInfo do if t_skillInfo[1] == skillInfo[1] then if skillDepth > depth then return false end if t_skillInfo[2] < skillInfo[2] then All_NeedSkillList[depth][idx] = skillInfo end return true end idx = idx + 1 t_skillInfo = All_NeedSkillList[depth][idx] end depth = depth + 1 end end return false end -- Function #2 SetNeedSkillList = function(SKID, depth) local skillInfo = SKILL_INFO_LIST[sKID] if skillInfo ~= nill then local bIsNeedSkillList = false local needSkillList = skillInfo.NeedSkillList if needSkillList ~= nil then for j, k in pairs(JobInheritTable) do local jobID = JOB_INHERIT_LIST2[k] if jobID ~= -1 and jobID ~= nil then k = jobID end if needSkillList[k] ~= nil then needSkillList = needSkillList[k] bIsNeedSkillList = true break end end end if bIsNeedSkillList == false then needSkillList = skillInfo["_NeedSkillList"] end if needSkillList ~= nil then for idx, skill in pairs(needSkillList) do if CheckNeedSkillList(skill, depth) == false then local listSize = 0 if All_NeedSkillList[depth] == nil then All_NeedSkillList[depth] = {} else listSize = getTableSize(All_NeedSkillList[depth]) end All_NeedSkillList[depth][listSize + 1] = skill SetNeedSkillList(skill[1], depth +1) end end end end end -- Function #3 GetSkillInfo = function(SKID) All_NeedSkillList = nil All_NeedSkillList = {} local skillInfo = SKILL_INFO_LIST[sKID] if skillInfo ~= nill then local strSkillID = skillInfo[1] local strSkillName = skillInfo.SkillName local MaxLv = skillInfo.MaxLv local UserUpgradable = 1 if skillInfo.Type == "Quest" or skillInfo.Type == "Soul" then UserUpgradable = 0 end SetNeedSkillList(SKID, 0) return strSkillID, strSkillName, MaxLv, UserUpgradable end return "", "", -1, -1 end -- Function #4 AddNeedSkillList = function(SKID) if All_NeedSkillList ~= nil then local depth = 0 while All_NeedSkillList[depth] do local idx = 1 skillInfo = All_NeedSkillList[depth][idx] while skillInfo do if skillInfo[2] == nil then skillInfo[2] = 0 end c_AddNeedSkillList(SKID, skillInfo[1], skillInfo[2]) idx = idx + 1 skillInfo = All_NeedSkillList[depth][idx] end depth = depth + 1 end end end -- Function #5 InitSkillTreeView = function(jobID, arrayNum) local skillList = SKILL_TREEVIEW_FOR_JOB[jobID] if skillList ~= nil then local skillPos = 0 local listSize = getTableSize(skillList) while listSize > 0 do local skillID = skillList[skillPos] if skillID ~= nil then local strSkillID, strSkillName, MaxLv, UserUpgradable = GetSkillInfo(skillID) if strSkillID ~= nil and strSkillID ~= "" then c_AddSkillList(arrayNum, skillID, strSkillID, skillPos, MaxLv, UserUpgradable) AddNeedSkillList(skillID) end listSize = listSize - 1 end skillPos = skillPos + 1 end end end -- Function #6 GetSkillIdName = function(SkillID) local obj = SKILL_INFO_LIST[skillID] if obj ~= nil then obj = SKILL_INFO_LIST[skillID][1] end if obj ~= nil then return obj end return "" end -- Function #7 GetSkillName = function(SkillID) local obj = SKILL_INFO_LIST[skillID] if obj ~= nil then obj = SKILL_INFO_LIST[skillID].SkillName end if obj ~= nil then return obj end return "" end -- Function #8 IsLevelUseSkill = function(SkillID) local obj = SKILL_INFO_LIST[skillID] if obj ~= nil then obj = SKILL_INFO_LIST[skillID].SpAmount end if obj ~= nil then return 1 end return 0 end -- Function #9 GetLevelUseSpAmount = function(SkillID, idx) local obj = SKILL_INFO_LIST[skillID] if obj ~= nil then obj = SKILL_INFO_LIST[skillID].SpAmount end if obj ~= nil then obj = SKILL_INFO_LIST[skillID].SpAmount[idx] end if obj ~= nil then return obj end return 0 end -- Function #10 GetSkillDescript = function(JobID, SKID, bChangeColor) local descript = "" local obj = SKILL_DESCRIPT[sKID] if obj ~= nil then local s = "777777½ÀµæÁ¶°Ç : " for i,v in pairs(obj) do s_pos, f_pos = string.find(v, s) bCopyText = false if s_pos ~= nil then s_pos = s_pos - 1 subStr = string.sub(v, 1, s_pos - 1) if bChangeColor == 1 then local temp = subStr .. "^FF1493" .. string.sub(v, s_pos + 7, -1) v = temp end if s_pos > 1 then for j, k in pairs(JobInheritTable) do if subStr == string.format("%d", k) then descript = descript .. string.sub(v, s_pos, -1) descript = descript .. "rn" break end end else bCopyText = true end else bCopyText = true end if bCopyText == true then descript = descript .. v descript = descript .. "rn" end end end return descript end -- Function #11 TestFile = function(saveFileName) saveFile = io.open(saveFileName, "w") if saveFile ~= nil and All_NeedSkillList ~= nil then local depth = 0 while All_NeedSkillList[depth] do local idx = 1 skillInfo = All_NeedSkillList[depth][idx] while skillInfo do saveFile:write(string.format("[%d,%d]n", skillInfo[1], skillInfo[2])) idx = idx + 1 skillInfo = All_NeedSkillList[depth][idx] end depth = depth + 1 end end io.close(saveFile) end GetSkillAttackRange = function(in_SKID, in_Level) local attackRange = 1 local attackRangeOfMaxLv = 0 local maxLv = 0 local obj = SKILL_INFO_LIST[in_SKID] if obj ~= nil then obj = SKILL_INFO_LIST[in_SKID].AttackRange maxLv = SKILL_INFO_LIST[in_SKID].MaxLv end if obj ~= nil then attackRange = SKILL_INFO_LIST[in_SKID].AttackRange[in_Level] end if attackRangeOfMaxLv == nil then attackRangeOfMaxLv = 0 end if attackRange ~= nil then return attackRange, attackRangeOfMaxLv end return 1, attackRangeOfMaxLv end -
Well I figured that most of the quests might be finished for 13.2 I haven't looked at it in detail at all but I also ment like feature wise as well like what parts of renewal and all but most quest stuff is most likely incomplete I know most of the job change quests haven't even been done cause most of that started around 13.3 I believe. Which is also why the warlock skill book and ulimate book most likely haven't been done either unless someone else has them finished.
-
Well it's ok regardless I'm sure I should flex some of my failed arts skills into making something different xD!
-
well the signature was made by a friend awhile ago if it bothers you I'll make a different one xD!
-
There's a face we haven't seen in a million years good to know your still around usako and glad to see your keeping up with your art skills
-
Wiki pages are cool too gotta love wikimedia's tables and the nice organization you can do with it xD!
-
I was hoping I could post the topic under the renewal discussion but since I don't have access to that I'm wondering if there's a list going of whats completed mechanics wise as well as quest wise similar to the Script Dev. Tasks that was on eathena. The reason I'm wondering what is completed I have some scripts which if they aren't already finished might help the progress they were done by our developer Dj-Yhn. And script wise i'm talking about the quest for the warlock skill books as well as the ultimate book of comet. But either way it would be great to know what is finished and what still needs to be worked on.
-
People with using bot nets to try and take down sites are funny had someone try to do it to our server only they didn't realize its not on the same host so they managed to take down the website and the forums for about 10 mins which our host set up a firewall and blocked the website from accessing the server to prevent any sql problems. It was pretty halarious someone managed to go spend like 200 dollars for a botnet and didn't even do any damage >.>'
-
eAthena Sakrayish Test Server! For Developers :O
TrueNoir replied to Mercurial's topic in rAthena General
Its pretty pointless to even allow the public to login I know with the test server the I use normal players can't access it due to client restrictions because otherwise i'll be trying to test something and they'll be screwing around with only god knows what and causes the server to crash and then i have no idea if it was what i was doing or whether it was something stupid they did with a gm command they had or whatever. But I was only adding input I'm not asking to be on the tester team since I have enough trouble with my test server as it is xD! -
roBrowser is just a client (running in a browser), not a server ! There is a lot of check client-side to avoid cheat but don't forget that there is also all the server-side check. So yeah you can modify zeny-items with some cheat softwares as all current servers but don't forget that this modifications aren't save in the server. The only reason than I don't support Anti-Cheat solution is just that I don't know how they encrypt packets. And if ever I'll find this encryption key, all bots will use it and the encryption method will change. Well at the same time you probly wouldn't want to use the same encryption method anyway they use UPX encryption which is why it gives false positives with antivirus but if you made your own would be better in that sense something that simply packs data clients might be useful for people who want there customs safe. And of course something that doesn't set off antivirus on false positives would keep it user friendly. But it looks really good anyhow something needs to kill runescape anyways lol. The other thing I was wondering is you mentioned that it requires a good connection does that mean that the game over all require's higher system requirements and if so what does it require? And also RSM wise is the structure the same and does it use the same limits or is the creation of new models different. Example within the normal game client if you go over 5,000 poly's within a model it starts to have texture problems and if you go over 7,000 vertical textures the model causes you to crash because the game rendering wasn't ment to go so high (besides the fact it takes longer to load more lag within game too)
-
Having a google account is a must for google webmaster tools so i defently have one
-
This project seems pretty interesting I heard about it from someone over msn awhile ago but the one question i do have for you is you said that vanguard and other anti hack and bot systems can't be used on this system but what stops people from directly browser hacking and ruining your game like for example using cheat engine to edit value's like money and all of that usually its really easy for people to do that theyre always hacking candystand.com games. While it seems like an awesome project I think the botting and hacking community could really crush something like this or cost you alot of time and money.
-
How/Where to get custom mounts that could be added as items
TrueNoir replied to Pink Guy's question in Script Requests
I'm still working on trying to get all the 3rd class ones to work with trojal's patch. I haven't quite figured out if maybe its something clientside and the exe that i'm using isn't new enough or what yet to display them all properly but when i do figure it out I plan on releasing it especially since the official method of the mounts seems to be actual job class id's which is why there listed within the client atleast most of them are according to the jobinheritlist.lub