-
Posts
1191 -
Joined
-
Last visited
-
Days Won
17
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by hendra814
-
-
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
-
On 7/29/2023 at 6:30 PM, zeusc137 said:
Hello there! thank you for this!!!
Could you also point what *.sql files for guild emblem I need? I can't find anytyhing inside /sql-files in rathena repo!Thanks again!!!
check guide at this link click
-
11 hours ago, Meteor91 said:
hi hendra814, thanks for the script. i have look into it, for me i wanna to make only prontera can have multiple login do this means i need to put all map inside the array? how about the server processing? is it taking alot of resource or not?
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]+","; } }
-
2 hours ago, Meteor91 said:
Hello Team,
i would like to get support for this script below. i found this ip limit script in this forum, the script working fine and i use it until now. the problem is, i want to make an adjustment where at prontera city there were no ip limit but when the player warp to dungeon map or other place the script will check whether they have 3 other chars outside prontera. if they have then the 4th login will be kick. i have try to make <if (strcharinfo(3) == "prontera") end;> it is not working means player can use this as advantage to login more than 3 id. kindly guide and assist me on this. below is the code:-
- script Only3perIP -1,{ OnPCLoginEvent: if (getgmlevel() >= 99) end; set .@myname$, strcharinfo(0); if (query_sql("SELECT `char`.`name` FROM `char` LEFT JOIN login ON `char`.account_id=login.account_id WHERE login.last_ip='"+getcharip()+"' AND `char`.online=1 AND `char`.char_id!="+getcharid(0), .@name$) >= 3) { for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) { if (checkvending(.@name$[.@i]) != 2) set .@sameip, .@sameip +1; } if (.@sameip >= 3) { announce "Sorry, only 3 accounts per IP can be logged in at a time.", bc_self; sleep 1000; atcommand "@kick " + .@myname$; } } end; }
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]+","; } }
-
On 7/11/2023 at 11:24 AM, nekoyarou said:
Hi rAthena,
so i have a problem with izlude map, there are some unwalkable tiles and the warp portal is in the wrong place.
i have tried searching the forums for fix but everyone suggests using weepmapcache (which no longer exists or whatever idk, i cant open all of the link provided) or using mapcache editor but don't really specify what should i do when using it.
can anyone help me to fix this.
thanks in advance.
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
-
is this issue already post at rathena github?
-
-
18 hours ago, someoneloveyou said:
done thanks, but do you have latest pre-renewal client ?, i using old client and want try to change latest client
which client do you want?
don't what the version for lastest pre renewal
-
On 6/30/2023 at 11:08 AM, Brynner said:
it seems not really an official server. they also use the exact english client translation we are using on their client.
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)
-
4 hours ago, rizsu0107 said:
I don't receive any errors now. Thank you so much. Also my Woe Controller is Fixed thank you so much for this.
Also, can I ask about this. It is not detecting the same user IP, if you don't mind :).
- script No_Multiple_Accounts -1,{
OnPCLoadMapEvent:
if( strcharinfo(3) == .Map$ ){query_sql("SELECT `last_ip` FROM `ragnarok_accounts`.`login` WHERE `account_id` = "+getcharid(3)+"",.@IP );
query_sql("SELECT `account_id` FROM `ragnarok_accounts`.`login` WHERE `last_ip` = "+.@IP+"",.@Accountlist );for( set .@i,0; .@i < getarraysize( .@Accountlist ); set .@i,.@i + 1 )
if( isloggedin( .@Accountlist[.@i] ) )
set .@DetectedOnline,.@DetectedOnline + 1;if( .@DetectedOnline > .Limit ){
mes "We detected there is "+.@DetectedOnline+" Users with same IP Logged in.";
mes "Please log off these unused account.";
close2;
warp "thana_town",100,100;
}
}
end;OnInit:
// How many User with Same IP can logged in and stay at the specific map
set .Limit,1;
// What map will be restricted
set .Map$,"jupe_ele";
setmapflag .Map$,mf_loadevent;
end;
}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]+","; } }
MVP Check By NPC
in Script Requests
Posted · Edited by hendra814
sorry i'm forget to remove script ::convex at the first line
try this
but when i test it, i got error when run the command and i don't know to solve it