rizsu0107 Posted July 7, 2023 Posted July 7, 2023 Hello, having trouble on this script, I really don't know how to fix it. Please help me! if (query_sql("USE `ragnarok_accounts` SELECT `last_ip` FROM `login` WHERE `account_id` = '" + .@aid[.@j] + "'", .@last_ip$) < 1) If I understand the query_sql correctly this is the setup just based on the script. ragnarok_accounts last_ip account_id Quote
KazumaSatou Posted July 7, 2023 Posted July 7, 2023 23 minutes ago, rizsu0107 said: Hello, having trouble on this script, I really don't know how to fix it. Please help me! if (query_sql("USE `ragnarok_accounts` SELECT `last_ip` FROM `login` WHERE `account_id` = '" + .@aid[.@j] + "'", .@last_ip$) < 1) If I understand the query_sql correctly this is the setup just based on the script. ragnarok_accounts last_ip account_id Try this : query_sql("SELECT `last_ip` FROM `login`.`ragnarok_accounts` WHERE `account_id` = "+.@aid[.@j]+"",.@last_ip$); if(.@last_ip$ == ""){ do things here when last ip is empty. } I don't know why you're using the < 1 on checking ip since the ip is a string so it won't be read if you're comparing it to an integer. Quote
rizsu0107 Posted July 7, 2023 Author Posted July 7, 2023 (edited) 10 minutes ago, KazumaSatou said: Try this : query_sql("SELECT `last_ip` FROM `login`.`ragnarok_accounts` WHERE `account_id` = "+.@aid[.@j]+"",.@last_ip$); if(.@last_ip$ == ""){ do things here when last ip is empty. } I don't know why you're using the < 1 on checking ip since the ip is a string so it won't be read if you're comparing it to an integer. I just copied this in Euphy's WOE Controller, the one that have " // " is the default, I just added the User `ragnarok_accounts` because I have multiple servers. It is also the same when the woe ends I receive SQL DB error too. Edited July 7, 2023 by rizsu0107 Quote
KazumaSatou Posted July 7, 2023 Posted July 7, 2023 10 minutes ago, rizsu0107 said: I just copied this in Euphy's WOE Controller, the one that have " // " is the default, I just added the User `ragnarok_accounts` because I have multiple servers. It is also the same when the woe ends I receive SQL DB error too. Yes, that's why I added the database name on the table on my code, try to use the < 1 on the if(.@lastip$ if it works Quote
rizsu0107 Posted July 7, 2023 Author Posted July 7, 2023 13 minutes ago, KazumaSatou said: Yes, that's why I added the database name on the table on my code, try to use the < 1 on the if(.@lastip$ if it works I still getting errors. This is the script I am working on. world_boss.txt Quote
KazumaSatou Posted July 7, 2023 Posted July 7, 2023 26 minutes ago, rizsu0107 said: I still getting errors. This is the script I am working on. world_boss.txt 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 ); Here. The database and table has been swapped. Quote
rizsu0107 Posted July 7, 2023 Author Posted July 7, 2023 (edited) 24 minutes ago, KazumaSatou said: 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 ); Here. The database and table has been swapped. 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; } Edited July 7, 2023 by rizsu0107 Quote
hendra814 Posted July 7, 2023 Posted July 7, 2023 (edited) 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]+","; } } Edited July 7, 2023 by hendra814 Quote
rizsu0107 Posted July 7, 2023 Author Posted July 7, 2023 7 hours ago, hendra814 said: 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]+","; } } Thank you. I've been looking for something like this. thank you so much! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.