Jump to content

hendra814

Members
  • Posts

    1188
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by hendra814

  1. 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; }
  2. but your normal stat for agi already over 99 (108), pre renewal it's not posible stat over 99.
  3. nevermind, already found the sql file from this link https://github.com/rathena/rathena/commit/9dda166c0ebbf77003c2ac33debabda15c0c835c
  4. try guide from this link click or this link click
  5. try change this part if (getequippercentrefinery(.@equip) > rand(100)) { into if (getequippercentrefinery(.@equip) > 0) {
  6. Are you sure this is pre renewal and for Sniper? Because pre renewal server max stat only 99.
  7. so it's not same with purchase option?
  8. 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.
  9. make sure you not disable rathena default script at npc folder.
  10. check in data folder or GRF at this path data\luafiles514\lua files\service_korea
  11. 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.
  12. 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
  13. yes, so at system folder you have 2 item info.lua with different name here the example at my system folder
  14. 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.
  15. i'm not sure, but try this - script dualclientkicker -1,{ OnPCLoadMapEvent: set .@charmap$, strcharinfo(3); if(compare(.tmp$,.@charmap$)) end; set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE`account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` =(SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND`online` <> 0;",.@a); for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) { if(!getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d])) && .@charmap$==.@map$) set .@c,.@c+ 1; } if(.@c > .limitacc ) { dispbottom "Dual client only avaiable at Prontera City"; warp "SavePoint",0,0; } end; OnInit: set .limitacc,1; setarray .maps$,"prontera"; set .lens , getarraysize(.maps$) ; for(set(.a,0);.a<.lens;set(.a,.a+1)) { setmapflag .maps$[.a], mf_loadevent ; set .tmp$ ,.tmp$+.maps$[.a]+","; } }
  16. try my script below you can edit the map and the condition - script dualclientkicker -1,{ OnPCLoadMapEvent: set .@charmap$, strcharinfo(3); if(!compare(.tmp$,.@charmap$)) end; set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE`account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` =(SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND`online` <> 0;",.@a); for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) { if(!getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d])) && .@charmap$==.@map$) set .@c,.@c+ 1; } if(.@c > .limitacc ) { dispbottom "Dual accounts not allowed in PVP."; warp "prontera",0,0; } end; OnInit: set .limitacc,1; setarray .maps$,"guild_vs1","guild_vs2","guild_vs3","guild_vs4","guild_vs5","turbo_e_4","turbo_e_8","turbo_e_16", "pvp_y_1-1","pvp_y_1-2","pvp_y_1-3","pvp_y_1-4","pvp_y_1-5","pvp_y_2-1","pvp_y_2-2","pvp_y_2-3","pvp_y_2-4","pvp_y_2-5", "pvp_y_3-1","pvp_y_3-2","pvp_y_3-3","pvp_y_3-4","pvp_y_3-5","pvp_y_4-1","pvp_y_4-2","pvp_y_4-3","pvp_y_4-4","pvp_y_4-5", "pvp_y_5-1","pvp_y_5-2","pvp_y_5-3","pvp_y_5-4","pvp_y_5-5","pvp_y_6-1","pvp_y_6-2","pvp_y_6-3","pvp_y_6-4","pvp_y_6-5", "pvp_y_7-1","pvp_y_7-2","pvp_y_7-3","pvp_y_7-4","pvp_y_7-5","pvp_y_8-1","pvp_y_8-2","pvp_y_8-3","pvp_y_8-4","pvp_y_8-5", "pvp_n_1-1","pvp_n_1-2","pvp_n_1-3","pvp_n_1-4","pvp_n_1-5","pvp_n_2-1","pvp_n_2-2","pvp_n_2-3","pvp_n_2-4","pvp_n_2-5", "pvp_n_3-1","pvp_n_3-2","pvp_n_3-3","pvp_n_3-4","pvp_n_3-5","pvp_n_4-1","pvp_n_4-2","pvp_n_4-3","pvp_n_4-4","pvp_n_4-5", "pvp_n_5-1","pvp_n_5-2","pvp_n_5-3","pvp_n_5-4","pvp_n_5-5","pvp_n_6-1","pvp_n_6-2","pvp_n_6-3","pvp_n_6-4","pvp_n_6-5", "pvp_n_7-1","pvp_n_7-2","pvp_n_7-3","pvp_n_7-4","pvp_n_7-5","pvp_n_8-1","pvp_n_8-2","pvp_n_8-3","pvp_n_8-4","pvp_n_8-5", "pvp_2vs2"; set .lens , getarraysize(.maps$) ; for(set(.a,0);.a<.lens;set(.a,.a+1)) { setmapflag .maps$[.a], mf_loadevent ; set .tmp$ ,.tmp$+.maps$[.a]+","; } }
  17. try using this map files if your client read grf put the file into your custom grf and then put your grf name at the first line in data.ini
  18. is this issue already post at rathena github?
  19. which client do you want? don't what the version for lastest pre renewal
  20. i'm not sure, but looking at this link. I think this server really official under gravity And i know this server because it's promoted by official Facebook account Ragnarok Indonesia (Ragnarok Forever Love)
  21. for disable dual client, try my script below you can change the map for disable dual client. - script dualclientkicker -1,{ OnPCLoadMapEvent: set .@charmap$, strcharinfo(3); if(!compare(.tmp$,.@charmap$)) end; set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE`account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` =(SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND`online` <> 0;",.@a); for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) { if(!getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d])) && .@charmap$==.@map$) set .@c,.@c+ 1; } if(.@c > .limitacc ) { dispbottom "Dual accounts not allowed in PVP."; warp "prontera",0,0; } end; OnInit: set .limitacc,1; setarray .maps$,"guild_vs1","guild_vs2","guild_vs3","guild_vs4","guild_vs5","turbo_e_4","turbo_e_8","turbo_e_16", "pvp_y_1-1","pvp_y_1-2","pvp_y_1-3","pvp_y_1-4","pvp_y_1-5","pvp_y_2-1","pvp_y_2-2","pvp_y_2-3","pvp_y_2-4","pvp_y_2-5", "pvp_y_3-1","pvp_y_3-2","pvp_y_3-3","pvp_y_3-4","pvp_y_3-5","pvp_y_4-1","pvp_y_4-2","pvp_y_4-3","pvp_y_4-4","pvp_y_4-5", "pvp_y_5-1","pvp_y_5-2","pvp_y_5-3","pvp_y_5-4","pvp_y_5-5","pvp_y_6-1","pvp_y_6-2","pvp_y_6-3","pvp_y_6-4","pvp_y_6-5", "pvp_y_7-1","pvp_y_7-2","pvp_y_7-3","pvp_y_7-4","pvp_y_7-5","pvp_y_8-1","pvp_y_8-2","pvp_y_8-3","pvp_y_8-4","pvp_y_8-5", "pvp_n_1-1","pvp_n_1-2","pvp_n_1-3","pvp_n_1-4","pvp_n_1-5","pvp_n_2-1","pvp_n_2-2","pvp_n_2-3","pvp_n_2-4","pvp_n_2-5", "pvp_n_3-1","pvp_n_3-2","pvp_n_3-3","pvp_n_3-4","pvp_n_3-5","pvp_n_4-1","pvp_n_4-2","pvp_n_4-3","pvp_n_4-4","pvp_n_4-5", "pvp_n_5-1","pvp_n_5-2","pvp_n_5-3","pvp_n_5-4","pvp_n_5-5","pvp_n_6-1","pvp_n_6-2","pvp_n_6-3","pvp_n_6-4","pvp_n_6-5", "pvp_n_7-1","pvp_n_7-2","pvp_n_7-3","pvp_n_7-4","pvp_n_7-5","pvp_n_8-1","pvp_n_8-2","pvp_n_8-3","pvp_n_8-4","pvp_n_8-5", "pvp_2vs2"; set .lens , getarraysize(.maps$) ; for(set(.a,0);.a<.lens;set(.a,.a+1)) { setmapflag .maps$[.a], mf_loadevent ; set .tmp$ ,.tmp$+.maps$[.a]+","; } }
  22. enable npc at npc folder\script-costom.conf change //npc: npc/custom/warper.txt into npc: npc/custom/warper.txt and then restart your server or run command @reloadscript using your GM Account character.
×
×
  • Create New...