Jump to content

hendra814

Members
  • Posts

    1281
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by hendra814

  1. 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
  2. Yes, try like that, because .@remain should be reset to recieve the reward again.
  3. after this script getitem FHitem,1; put .@remain = 0;
  4. get error when run sql script, can you help me for this error
  5. Put in data folder if your client read data folder first. if your client read GRF put in your custom GRF file.
  6. ok thanks to for that information.
  7. i don't know, maybe need dev team to answer that.
  8. 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
  9. 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; }
  10. 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; }
  11. but your normal stat for agi already over 99 (108), pre renewal it's not posible stat over 99.
  12. nevermind, already found the sql file from this link https://github.com/rathena/rathena/commit/9dda166c0ebbf77003c2ac33debabda15c0c835c
  13. try guide from this link click or this link click
  14. try change this part if (getequippercentrefinery(.@equip) > rand(100)) { into if (getequippercentrefinery(.@equip) > 0) {
  15. Are you sure this is pre renewal and for Sniper? Because pre renewal server max stat only 99.
  16. so it's not same with purchase option?
  17. 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.
  18. make sure you not disable rathena default script at npc folder.
  19. check in data folder or GRF at this path data\luafiles514\lua files\service_korea
  20. 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.
  21. 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
  22. yes, so at system folder you have 2 item info.lua with different name here the example at my system folder
  23. 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.
×
×
  • Create New...