-
Posts
1307 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Posts posted by hendra814
-
-
On 8/29/2023 at 10:06 AM, someoneloveyou said:
Hi all i need you suggestion what is the stable ragexe for lastest version of rathena, i try to use version 20200601 isnt stable. and always crash.
i use translation by IIcrishII so many file missing... did you have suggestion ?use rathena recomended client. check at src\config\packet.hpp
client between 2020-09-02 and 2021-11-18
#ifndef PACKETVER_RE /// From November 2015 only RagexeRE are supported. /// After July 2018 only Ragexe are supported. #if ( PACKETVER > 20151104 && PACKETVER < 20180704 ) || ( PACKETVER >= 20200902 && PACKETVER <= 20211118 ) #define PACKETVER_RE #endif #endif
-
15 minutes ago, Cyborg said:
ma_in01,49,99,3 script Fallen Hero#main 651,{ cutin "3rd_rune_knight",2; .Fneed_minute = 480; .@remain = (.Fneed_minute - #daily_minute_count); mes "[ ^0000FFFallen Hero^000000 ]"; if (.@remain > 60) { mes "You Have ^FF0000"+#daily_minute_count+"^000000 "+ ( ( #daily_minute_count < .Fneed_minute )?" hours left to get your reward.":"Completed" ); if ( #daily_minute_count < .Fneed_minute ) { close2; cutin "",255; end; } else next; if(gettimetick(2) - #lastpickfallen > (60 * 60 * 24)) { cutin "3rd_rune_knight",2; mes "[ ^0000FFFallen Hero^000000 ]"; mes "Hello "+strcharinfo(0)+" "; mes "Get free items every day."; mes "Let's hope that this day will get something"; next; mes "[ ^0000FFFallen Hero^000000 ]"; mes "Random Item"; mes "For Today..."; if (rand(100) < 10) setarray .@i[0],6232,6228,13710,12916,5184,5199,5209,5762,5467; // 10% chance else if (rand(100) < 20) setarray .@i[0],12884,12885,12886,12887,35078; // 20% chance else setarray .@i[0],13698,13697,14175,14587,12920,12921,14192,16504,12922,7776,12412,35111; // 70% chance set FHitem,.@i[rand(getarraysize(.@i))]; getitem FHitem,1; .@remain = 0; announce strcharinfo(0)+" has obtained "+getitemname(FHitem)+" from our Fallen Hero!",bc_all,0x00FFFF,FW_NORMAL,15; mes "You get "+getitemname(FHitem)+""; set #lastpickfallen,gettimetick(2); next; mes "[ ^0000FFFallen Hero^000000 ]"; mes "To come back to win new"; close2; cutin "",255; } else if (.@remain > 0) { mes "[ ^0000FFFallen Hero^000000 ]"; cutin "3rd_rune_knight",2; mes "You have ^FF0000"+.@remain+"^000000 minute left to get your reward."; close2; cutin "",255; } } }
like this?
Yes, try like that, because .@remain should be reset to recieve the reward again.
-
2 hours ago, Cyborg said:
how to fix this timer because it doesn't work the time in the game is always at zero can you help me for this so that it works
ma_in01,49,99,3 script Fallen Hero#main 651,{ cutin "3rd_rune_knight",2; .Fneed_minute = 480; .@remain = (.Fneed_minute - #daily_minute_count); mes "[ ^0000FFFallen Hero^000000 ]"; if (.@remain > 60) { mes "You Have ^FF0000"+#daily_minute_count+"^000000 "+ ( ( #daily_minute_count < .Fneed_minute )?" hours left to get your reward.":"Completed" ); if ( #daily_minute_count < .Fneed_minute ) { close2; cutin "",255; end; } else next; if(gettimetick(2) - #lastpickfallen > (60 * 60 * 24)) { cutin "3rd_rune_knight",2; mes "[ ^0000FFFallen Hero^000000 ]"; mes "Hello "+strcharinfo(0)+" "; mes "Get free items every day."; mes "Let's hope that this day will get something"; next; mes "[ ^0000FFFallen Hero^000000 ]"; mes "Random Item"; mes "For Today..."; if (rand(100) < 10) setarray .@i[0],6232,6228,13710,12916,5184,5199,5209,5762,5467; // 10% chance else if (rand(100) < 20) setarray .@i[0],12884,12885,12886,12887,35078; // 20% chance else setarray .@i[0],13698,13697,14175,14587,12920,12921,14192,16504,12922,7776,12412,35111; // 70% chance set FHitem,.@i[rand(getarraysize(.@i))]; getitem FHitem,1; announce strcharinfo(0)+" has obtained "+getitemname(FHitem)+" from our Fallen Hero!",bc_all,0x00FFFF,FW_NORMAL,15; mes "You get "+getitemname(FHitem)+""; set #lastpickfallen,gettimetick(2); next; mes "[ ^0000FFFallen Hero^000000 ]"; mes "To come back to win new"; close2; cutin "",255; } else if (.@remain > 0) { mes "[ ^0000FFFallen Hero^000000 ]"; cutin "3rd_rune_knight",2; mes "You have ^FF0000"+.@remain+"^000000 minute left to get your reward."; close2; cutin "",255; } } }
after this script
getitem FHitem,1;
put
.@remain = 0;
-
3 hours ago, Winterfox said:
I am not sure what result Emistry wants to achieve since dropping the table and only creating it if it doesn't exist afterward is a bit contradictory, but you could change DELETE to DROP like this:
DROP TABLE IF EXISTS `ero_buildmanager`;
thanks working after change it.
-
-
20 hours ago, yoseph said:
do you know how to appy this now ?
On 2/16/2023 at 6:33 AM, Charlemagne19 said:May I know how to apply this?
Put in data folder if your client read data folder first.
if your client read GRF put in your custom GRF file.
-
5 hours ago, GM Winter said:
thank you for your effort the problem solved by changing.
geffen,140,173,5 script MVP Checker 882,{ to - script MVP Status -1,{
ok thanks to for that information.
-
6 hours ago, Heartfelt said:
the thing is, the total aspd gained with this stats 153 AGI and 127 Dex
is not accurate. any idea on why?i don't know, maybe need dev team to answer that.
-
2 hours ago, GM Winter said:
sorry i'm forget to remove script ::convex at the first line
try this
//===== eAthena Script ======================================= //= Super Convex Mirror //===== By: ================================================== //= Brian //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= Detects if every MVP is alive or dead. //===== Additional Comments: ================================= //= http://www.eathena.ws/board/index.php?showtopic=242050 //============================================================ geffen,140,173,5 script MVP Checker 882,{ ONMVPSTATUS: for( .@i = 0; .@i < getarraysize( .mvp_name$ ); .@i++ ) { switch (.@i) { case 42: .@alive = ( $@thana_summon < 6 || mobcount( "thana_boss", "#Death::OnThanaDead" ) ); break; default: .@alive = mobcount( .mvp_map$[.@i], "" ); break; } if ( .display_type == 2 ) .@menu$ = .@menu$ + ( ( .@alive ) ? "^008000" : "^FF0000" ) + .mvp_name$[.@i] + "^000000 (" + .mvp_map$[.@i] + "):"; else if ( .display_type == 1 ) mes ( ( .@alive ) ? "^FF0000" : "^008000" ) + .mvp_name$[.@i] + "^000000 (" + .mvp_map$[.@i] + ")"; } if ( .display_type == 1 ) close; .@num = select( .@menu$ ) - 1; if (.warp_to_mvp == 1) warp .mvp_map$[.@num],0,0; else if(.warp_to_mvp == 2) { sleep2 1000; sc_start SC_BOSSMAPINFO,600000,0; } end; OnInit: bindatcmd "MVPSTATUS",strnpcinfo(0)+"::ONMVPSTATUS"; // 0 = disabled, 1 = enabled, 2 = enabled + SC_BOSSMAPINFO .warp_to_mvp = 0; setarray .mvp_map$, "moc_pryd06","ra_fild03","ra_fild04","ve_fild01","ve_fild02", "lou_dun03","prt_maze03","abbey03", "gl_chyard","abyss_03","gef_dun02","gef_dun01","treasure02", "pay_fild10","gon_dun03","abbey02","xmas_fild01","ra_san05", "prt_sewb4","mosk_dun03","thor_v03","ama_dun03", "kh_dun02","ayo_dun02","niflheim","anthell02", "mjolnir_04","pay_dun04","gef_fild03","gef_fild10", "moc_pryd04","in_sphinx5","moc_fild17","ein_dun02","xmas_dun02", "beach_dun","thana_boss","tur_dun04","odin_tem03", "jupe_core","lhz_dun02"; setarray .mvp_name$, "AmonRa","Atroce","Atroce","Atroce","Atroce", "Bacsojin","Baphomet","Beelzebub", "DarkLord","Detale","Doppelganger","Dracula","Drake", "Eddga","EvilSnakeLord","FallenBishop","Garm","GloomUnderNight", "GoldenThiefBug","Gopinich","Ifrit","IncantationSamurai", "KielD01","LadyTanee","LordofDeath","Maya", "Mistress","MoonlightFlower","OrcHero","OrcLord", "Osiris","Pharaoh","Phreeoni","RSX0806","Stormy Knight", "TaoGunka","Thanatos","TurtleGeneral","ValkyrieRandgris", "Vesper","Ygnizem"; .display_type = 1; if( .warp_to_mvp > 0 ) .display_type = 2; end; }
but when i test it, i got error when run the command and i don't know to solve it
-
1
-
-
5 hours ago, GM Winter said:
is there any chance to put some command here just like @mvpstatus to open it even your not talking to the npc?
try this
//===== eAthena Script ======================================= //= Super Convex Mirror //===== By: ================================================== //= Brian //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= Detects if every MVP is alive or dead. //===== Additional Comments: ================================= //= http://www.eathena.ws/board/index.php?showtopic=242050 //============================================================ geffen,140,173,5 script MVP Checker::convex 882,{ ONMVPSTATUS: for( .@i = 0; .@i < getarraysize( .mvp_name$ ); .@i++ ) { switch (.@i) { case 42: .@alive = ( $@thana_summon < 6 || mobcount( "thana_boss", "#Death::OnThanaDead" ) ); break; default: .@alive = mobcount( .mvp_map$[.@i], "" ); break; } if ( .display_type == 2 ) .@menu$ = .@menu$ + ( ( .@alive ) ? "^008000" : "^FF0000" ) + .mvp_name$[.@i] + "^000000 (" + .mvp_map$[.@i] + "):"; else if ( .display_type == 1 ) mes ( ( .@alive ) ? "^FF0000" : "^008000" ) + .mvp_name$[.@i] + "^000000 (" + .mvp_map$[.@i] + ")"; } if ( .display_type == 1 ) close; .@num = select( .@menu$ ) - 1; if (.warp_to_mvp == 1) warp .mvp_map$[.@num],0,0; else if(.warp_to_mvp == 2) { sleep2 1000; sc_start SC_BOSSMAPINFO,600000,0; } end; OnInit: bindatcmd "MVPSTATUS",strnpcinfo(0)+"::ONMVPSTATUS"; // 0 = disabled, 1 = enabled, 2 = enabled + SC_BOSSMAPINFO .warp_to_mvp = 0; setarray .mvp_map$, "moc_pryd06","ra_fild03","ra_fild04","ve_fild01","ve_fild02", "lou_dun03","prt_maze03","abbey03", "gl_chyard","abyss_03","gef_dun02","gef_dun01","treasure02", "pay_fild10","gon_dun03","abbey02","xmas_fild01","ra_san05", "prt_sewb4","mosk_dun03","thor_v03","ama_dun03", "kh_dun02","ayo_dun02","niflheim","anthell02", "mjolnir_04","pay_dun04","gef_fild03","gef_fild10", "moc_pryd04","in_sphinx5","moc_fild17","ein_dun02","xmas_dun02", "beach_dun","thana_boss","tur_dun04","odin_tem03", "jupe_core","lhz_dun02"; setarray .mvp_name$, "AmonRa","Atroce","Atroce","Atroce","Atroce", "Bacsojin","Baphomet","Beelzebub", "DarkLord","Detale","Doppelganger","Dracula","Drake", "Eddga","EvilSnakeLord","FallenBishop","Garm","GloomUnderNight", "GoldenThiefBug","Gopinich","Ifrit","IncantationSamurai", "KielD01","LadyTanee","LordofDeath","Maya", "Mistress","MoonlightFlower","OrcHero","OrcLord", "Osiris","Pharaoh","Phreeoni","RSX0806","Stormy Knight", "TaoGunka","Thanatos","TurtleGeneral","ValkyrieRandgris", "Vesper","Ygnizem"; .display_type = 1; if( .warp_to_mvp > 0 ) .display_type = 2; end; }
-
14 hours ago, GM Winter said:
hello is it possible to put @rotdstatus command so that the player will know what is the race active on the spot without coming to the rotd npc ,
Try this
add sript line 6 and 80
prontera,155,181,5 script ROTD 436,{ set .@gmlevel,getgmlevel(); ONROTD: do{ set .@menu,select("^4EEE94ROTD Information^000000", ( .@gmlevel < .gm_level )?"":"^FF0000[GM]^000000Set a New Monster's Race", ( .@gmlevel < .gm_level )?"":"^FF0000[GM]^000000Set EXP Bonus", ( .@gmlevel < .gm_level )?"":"^FF0000[GM]^000000Set Item / Zeny Bonus", "Close" ); switch( .@menu ) { Case 1: mes "^FF0000ROTD^000000 refer to ^0000FFRace of the Day^000000"; mes "In another word, it mean that the ^FF0000Monster's Race^000000 that you killed by day will grant you ^FF0000Extra Bonus EXP / Item / Zeny ^000000."; next; mes "[ ^FF0000Today's ROTD^000000 ]"; mes "^0000FF"+.rotd$[.today_rotd]+"^000000 Race"; if ( .rotd_exp_bonus ) mes " ~ ^777777"+.rotd_exp_bonus+"% more exp^000000"; if ( ( .rotd_item_amount && .rotd_item_rate ) || .rotd_zeny || .rotd_exp_bonus ) { mes " "; mes "Reward : "+( ( .rotd_item_rate )? .rotd_item_rate+"%":"" )+" : "; if ( .rotd_item_amount && .rotd_item_rate ) mes " ~ ^777777"+.rotd_item_amount+" x "+getitemname( .rotd_item_id )+"^000000"; if ( .rotd_zeny ) mes " ~ ^777777"+.rotd_zeny+" Zeny^000000"; mes " "; mes "Amount are random..."; } break; Case 2: mes "Select new race."; set .today_rotd,select( .rotd_menu$ ) - 1; if ( .today_rotd >= .rotd_size ) set .today_rotd,rand( .rotd_size ); mes "New Race : ^777777"+.rotd$[.today_rotd]+"^000000"; delwaitingroom; waitingroom "[ROTD]:"+.rotd$[.today_rotd]+" ",0; break; Case 3: mes "Set new exp bonus. (%)"; input .rotd_exp_bonus,0,100; if ( .rotd_exp_bonus ) mes "ROTD EXP : "+.rotd_exp_bonus+" %"; break; Case 4: mes "Set Rotd bonus"; mes "Inset Zeny Bonus"; input .@zeny; mes "Insert Item ID"; do{ input .@item,0,32767; if ( !.@item ) close; }while( getitemname( .@item ) == "null" ); mes "Enter amount."; input .@amount,0,30000; mes "Enter Rate to gain."; input .@rate,0,100; if ( .@amount && .@rate ) { next; mes "Updated item bonus : ( "+.@rate+"% )"; mes "^777777"+.@amount+" x "+getitemname( .@item )+"^000000"; mes "^777777"+.@zeny+" Zeny^000000"; if ( select( "Confirm","Cancel" ) == 1 ) { set .rotd_item_id,.@item; set .rotd_item_amount,.@amount; set .rotd_item_rate,.@rate; set .rotd_zeny,.@zeny; mes "Updated."; } } default: close; } next; }while( .@menu != 5 ); close; OnInit: // min gm level set .gm_level,80; bindatcmd "ROTD",strnpcinfo(0)+"::ONROTD"; // monster race list setarray .rotd$[0], "Formless", "Undead", "Brute", "Plant", "Insect", "Fish", "Demon", "Demi Human", "Angel", "Dragon", "Boss", "Non-Boss"; set .rotd_size,getarraysize( .rotd$ ); for( set .@i,0; .@i < .rotd_size; set .@i,.@i + 1 ) set .rotd_menu$,.rotd_menu$ + .rotd$[.@i] +":"; set .rotd_menu$,.rotd_menu$ + "^0055FFRandom Race^000000"; // min party member lv to gain exp set .party_level_range,10; // daily reset OnClock0000: set .today_rotd,rand( .rotd_size ); set .rotd_exp_bonus,rand( 1,100 ); delwaitingroom; waitingroom "[ROTD]:"+.rotd$[.today_rotd]+" ",0; end; OnNPCKillEvent: if ( getmonsterinfo( killedrid,MOB_RACE ) == .today_rotd ) { set .@partyid,getcharid(1); set .@mob_base_exp,(( getmonsterinfo( killedrid,MOB_BASEEXP ) / 100 ) * .rotd_exp_bonus ); set .@mob_job_exp,(( getmonsterinfo( killedrid,MOB_JOBEXP ) / 100 ) * .rotd_exp_bonus ); if ( .@partyid ) { set .@aid,getcharid(3); set .@baselevel,BaseLevel; set .@map$,strcharinfo(3); getpartymember .@partyid,1; getpartymember .@partyid,2; while( .@i < $@partymembercount ) { if ( isloggedin( $@partymemberaid[.@i],$@partymembercid[.@i] ) ) if ( attachrid( $@partymemberaid[.@i] ) ) if ( strcharinfo(3) == .@map$ && ( BaseLevel - .@baselevel ) <= .party_level_range && ( BaseLevel - .@baselevel ) >= ~.party_level_range && Hp >= 1 ) { set BaseExp,( BaseExp + .@mob_base_exp ); set JobExp,( JobExp + .@mob_job_exp ); dispbottom "[ROTD Party] : "+.@mob_base_exp+" EXP"; } set .@i,.@i + 1; } attachrid( .@aid ); } else { set BaseExp,( BaseExp + .@mob_base_exp ); set JobExp,( JobExp + .@mob_job_exp ); dispbottom "[ROTD SOLO] : "+.@mob_base_exp+" EXP"; } if ( rand( 100 ) < .rotd_item_rate && .rotd_zeny ) set Zeny,Zeny + rand( .rotd_zeny ); if ( rand( 100 ) < .rotd_item_rate && .rotd_item_amount ) getitem .rotd_item_id,rand( .rotd_item_amount ),.@aid; } end; }
-
1
-
-
2 hours ago, Heartfelt said:
yes its pre renewal sir, i use gm account to match the status only, thats why its more than 100
but your normal stat for agi already over 99 (108), pre renewal it's not posible stat over 99.
-
On 8/11/2023 at 5:44 PM, Chaos92 said:
nevermind, already found the sql file from this link https://github.com/rathena/rathena/commit/9dda166c0ebbf77003c2ac33debabda15c0c835c
-
-
On 7/14/2023 at 6:35 AM, ooGubAoo said:
Thank you it work.
But i need to refine succes 100% every level.
How to change Percent to refine.
Thank you very much.
try change this part
if (getequippercentrefinery(.@equip) > rand(100)) {
into
if (getequippercentrefinery(.@equip) > 0) {
-
3 hours ago, Heartfelt said:
i found a little bug here
Im using Sniper job 99 70 level
it seems like this status doesn't give the correct number of ASPD
with 153 AGI and 127 Dex
it should be 187 ASPD
i dont use any other aspd % bonus eqiupment, this is pure from agi and dex stat only
it appears that the flee is not accurate as well, it should be 254
any idea? thanksAre you sure this is pre renewal and for Sniper?
Because pre renewal server max stat only 99.
-
On 8/9/2023 at 8:18 PM, Chaos92 said:
Yes I can confirm this happens in latest fluxCP. But to be honest, that page does nothing except showing the Cash Shop part which need to be added manually. Maybe to show user about what items we added in ingame cash shop.
so it's not same with purchase option?
-
Can someone help me to fix this issue
The error happen when click this button
and i check rathena SQL database for item cash db already removed.
-
-
5 hours ago, zeusc137 said:
Hey! Thanks for that! However I was not able to find this ExternalSettings file ( I asked ChatGPT too, but maybe this is Client side?)
Could you also help me find this one? Thanks!check in data folder or GRF at this path data\luafiles514\lua files\service_korea
-
1
-
-
21 minutes ago, AinsLord said:
the morethan 2 itemInfo.lub is quite tricky
coz honestly i want to make like 3 custom lua
so i can separate my custom items from other server
so i know where the 99/70 custom item from 255 customs
i think 2 item info already enough, 1 form chris translation project, and 1 from you custom iteminfo file.
if you want put custom item, you can add it at your custom item info file.
So when chris translation project have update, it's not impact to your custom item info file.
-
1
-
-
1 hour ago, AinsLord said:
do i need to do something in Diff/nemo patches?
mine my client reads the itemInfo_EN.lua so i created itemInfo_EN_test.lua and put this
tell me if this correct
dofile("System/itemInfo_EN_test.lua") tbl_custom = { [30000] = { unidentifiedDisplayName = "Zeny", unidentifiedResourceName = "¹«ÇѰ¡Á×ÁÖ¸Ó´Ï", unidentifiedDescriptionName = { "Unknown Item, can be identified by using a ^6666CCMagnifier^000000." }, identifiedDisplayName = "Zeny", identifiedResourceName = "¹«ÇѰ¡Á×ÁÖ¸Ó´Ï", identifiedDescriptionName = { "..." }, slotCount = 0, ClassNum = 0, costume = false }, [30001] = { unidentifiedDisplayName = "Cash Points", unidentifiedResourceName = "ÄíÆù", unidentifiedDescriptionName = { "Unknown Item, can be identified by using a ^6666CCMagnifier^000000." }, identifiedDisplayName = "Cash Points", identifiedResourceName = "ÄíÆù", identifiedDescriptionName = { "..." }, slotCount = 0, ClassNum = 0, costume = true }, } -- Now for a helper function because i hate repetitions -- It adds items from curTable if it is not present in refTable function itemAdder(curTable, refTable) for ItemID,DESC in pairs(curTable) do if refTable == nil or refTable[ItemID] == nil then result, msg = AddItem(ItemID,DESC.unidentifiedDisplayName,DESC.unidentifiedResourceName,DESC.identifiedDisplayName,DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum) if not result then return false, msg end for k,v in pairs(DESC.unidentifiedDescriptionName) do result, msg = AddItemUnidentifiedDesc(ItemID, v) if not result then return false, msg end end for k,v in pairs(DESC.identifiedDescriptionName) do result, msg = AddItemIdentifiedDesc(ItemID, v) if not result then return false, msg end end if nil ~= DESC.EffectID then result, msg = AddItemEffectInfo(ItemID, DESC.EffectID) end if not result == true then return false, msg end if nil ~= DESC.costume then result, msg = AddItemIsCostume(ItemID, DESC.costume) end if not result == true then return false, msg end end end return true, "good" end -- And the newly designed main function function main() result, msg = itemAdder(tbl_custom, nil) -- add custom items (including official overrides) if result then result, msg = itemAdder(tbl, tbl_custom) -- add non-overridden official items end return result, msg end
do i need to put something in the itemInfo_EN.lua?
EDIT:
figure this one out thanks
if your client read itemInfo_EN.lua, you must put the script in the itemInfo_EN.lua file.
and original itemInfo_EN.lua put at itemInfo_EN_test.lua ( do file already correct for this option)
but, it you put the script in the iteminfo_en_test.lua change do file info iteminfo_en.lua
and diif/patch your client to read item info_en_test.lua
no change for iteminfo_en.lua for this part
-
14 minutes ago, AinsLord said:
so for this part no need to put this in the original lua?
dofile("System/itemInfo_EN.lua")
yes, so at system folder you have 2 item info.lua with different name
here the example at my system folder
-
1 hour ago, AinsLord said:
is this still working in a new iteminfo.lua files?
if yes can anyone have like a walkthrough on how to apply
seems different in the guide and in my iteminfo
thanks
yes stil working
first prepare new iteminfolua file to collect all item info files
here my example for collect data for chris item info file and you can add add new custom item at this rile
dofile("System/itemInfo_EN.lua") tbl_custom = { [15035] = { unidentifiedDisplayName = "Unidentified Armor", unidentifiedResourceName = "¿ìµç¸ÞÀÏ", unidentifiedDescriptionName = { "Can be identified by using a ^990099Magnifier^000000." }, identifiedDisplayName = "2010 Love Dad", identifiedResourceName = "2010·¯ºê´ëµð", identifiedDescriptionName = { "Bonus Allstat +1.", "_______________________", "MaxHP +150", "_______________________", "MaxSP+150.", "_______________________", "Increases ^663399Stone Curse^000000 resistance by 90%.", "Increases ^663399Frozen^000000 resistance by 90%.", "Increases ^663399Stun^000000 resistance by 90%.", "Increases ^663399Sleep^000000 resistance by 90%.", "Increases ^663399Silence^000000 resistance by 90%.", "Increases ^663399Curse^000000 resistance by 90%.", "Increases ^663399Confusion^000000 resistance by 90%.", "Increases ^663399Blind^000000 resistance by 90%.", "Increases ^663399Poison^000000 resistance by 90%.", "Increases ^663399Bleeding^000000 resistance by 90%.", "_______________________", "^0000CCType:^000000 Armor", "^0000CCDefense:^000000 6", "^0000CCWeight:^000000 10", "^0000CCArmor Level:^000000 1", "^0000CCEnchantable:^000000 No", "_______________________", "^0000CCRequirement:^000000", "Base Level 1", "All Job" }, slotCount = 0, ClassNum = 0, costume = false }, } -- Now for a helper function because i hate repetitions -- It adds items from curTable if it is not present in refTable function itemAdder(curTable, refTable) for ItemID,DESC in pairs(curTable) do if refTable == nil or refTable[ItemID] == nil then result, msg = AddItem(ItemID,DESC.unidentifiedDisplayName,DESC.unidentifiedResourceName,DESC.identifiedDisplayName,DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum) if not result then return false, msg end for k,v in pairs(DESC.unidentifiedDescriptionName) do result, msg = AddItemUnidentifiedDesc(ItemID, v) if not result then return false, msg end end for k,v in pairs(DESC.identifiedDescriptionName) do result, msg = AddItemIdentifiedDesc(ItemID, v) if not result then return false, msg end end if nil ~= DESC.EffectID then result, msg = AddItemEffectInfo(ItemID, DESC.EffectID) end if not result == true then return false, msg end if nil ~= DESC.costume then result, msg = AddItemIsCostume(ItemID, DESC.costume) end if not result == true then return false, msg end end end return true, "good" end -- And the newly designed main function function main() result, msg = itemAdder(tbl_custom, nil) -- add custom items (including official overrides) if result then result, msg = itemAdder(tbl, tbl_custom) -- add non-overridden official items end return result, msg end
please look at this part
dofile("System/itemInfo_EN.lua")
here the main function to get data from other item info files.
and make sure your client to read this iteminfo file.
-
2
-
char server asking for what table?
in Database Support
Posted
go to Rathena\sql-files folder, import mail.sql file