yuhsing

Untitled

May 19th, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.46 KB | None | 0 0
  1.  
  2. - script GMCP -1,{
  3. OnWhisperGlobal:
  4. if( getgmlevel() < .gm_level ){
  5. mes "Only GM can use.";
  6. }else{
  7. mes "How can i help you ?";
  8. next;
  9. switch( select( "Reset Player Position",
  10. "Search IP",
  11. "Search Item",
  12. "Search Player Account",
  13. "Map Setting",
  14. "View GM Commands Logs" ) ){
  15. Case 1:
  16. mes "Insert Player name.";
  17. input .@player_name$;
  18. if( isloggedin( getcharid( 3,.@player_name$ ),getcharid( 0,.@player_name$ ) ) ){
  19. warp "SavePoint",0,0;
  20. message .@player_name$,"Position Reset";
  21. }else{
  22. .@player_name$ = escape_sql( .@player_name$ );
  23. query_sql( "UPDATE `char` SET `last_map`=`save_map`,`last_x`=`save_x`,`last_y`=`save_y` WHERE `name` LIKE '"+.@player_name$+"'" );
  24. }
  25. mes "Done";
  26. break;
  27. Case 2:
  28. mes "Insert IP Address.";
  29. input .@ip_address$;
  30. .@ip_address$ = escape_sql( .@ip_address$ );
  31. query_sql( "SELECT `account_id`,`userid`,`user_pass`,`sex`,`email`,`group_id`,`state`,`unban_time`,`logincount`,`lastlogin`,`last_ip`,`birthdate` FROM `login` WHERE `last_ip` LIKE '"+.@ip_address$+"' AND `account_id` >= 2000000 LIMIT 50",.@account_id,.@userid$,.@user_pass$,.@sex$,.@email$,.@group_id,.@state,.@unban_time,.@logincount,.@lastlogin$,.@last_ip$,.@birthdate$ );
  32. .@account_id_size = getarraysize( .@userid$ );
  33. mes "Found "+.@account_id_size+" account with IP of ^0055FF"+.@ip_address$+"^000000.";
  34. if( .@account_id_size ){
  35. do{
  36. next;
  37. .@i = select( implode( .@userid$,":" ) ) - 1;
  38. mes "^0055FFAID : ^777777"+.@account_id[.@i]+"^000000";
  39. mes "^0055FFUserID : ^777777"+.@userid$[.@i]+"^000000";
  40. mes "^0055FFPassword : ^777777"+.@user_pass$[.@i]+"^000000";
  41. mes "^0055FFSex : ^777777"+.@sex$[.@i]+" ^0055FFGroup ID : ^777777"+.@group_id[.@i]+"^000000";
  42. mes "^0055FFEmail : ^777777"+.@email$[.@i]+"^000000";
  43. // mes "^0055FFState : ^777777"+.@state[.@i]+"^000000";
  44. if( .@unban_time[.@i] )
  45. mes "^0055FFUnban Time : ^777777"+.@unban_time[.@i]+"^000000";
  46. if( .@logincount[.@i] ){
  47. mes "^0055FFLogin Count : ^777777"+.@logincount[.@i]+"^000000";
  48. mes "^0055FFLast Login : ^777777"+.@lastlogin$[.@i]+"^000000";
  49. mes "^0055FFLast IP : ^777777"+.@last_ip$[.@i]+"^000000";
  50. }
  51. if( .@birthdate$[.@i] != "0000-00-00" )
  52. mes "^0055FFBirthdate : ^777777"+.@birthdate$[.@i]+"^000000";
  53. }while( select( "View Another","Close" ) == 1 );
  54. }
  55. break;
  56. Case 3:
  57. mes "Insert Item name.";
  58. do{
  59. input .@item_id,0,32767;
  60. if( !.@item_id ) close;
  61. }while( getitemname( .@item_id ) == "null" );
  62. if( .@item_id ){
  63. .@max_per_page = 30;
  64. setarray .@sql_table$[0],"inventory","cart_inventory","storage";
  65. .@search_type = select( "Search Inventory","Search Cart","Search Storage" );
  66. do{
  67. next;
  68. switch( .@search_type ){
  69. Case 1:
  70. Case 2: .@search_by$ = "char_id"; break;
  71. Case 3: .@search_by$ = "account_id"; break;
  72. default: close;
  73. }
  74. query_sql( "SELECT DISTINCT(`"+.@search_by$+"`) FROM `"+.@sql_table$[@menu-1]+"` WHERE `nameid`='"+.@item_id+"' OR `card0`='"+.@item_id+"' OR `card1`='"+.@item_id+"' OR `card2`='"+.@item_id+"' OR `card3`='"+.@item_id+"' ORDER BY `"+.@search_by$+"` LIMIT "+.@max_per_page+" OFFSET "+.@offset,.@id );
  75. .@id_size = getarraysize( .@id );
  76. mes "Records No. : "+.@offset+" ~ "+( .@offset + .@max_per_page );
  77. mes "Found : "+.@id_size+" Records ^FF0000( "+getitemname( .@item_id )+" )^000000";
  78. for( .@i = 0; .@i < .@id_size; .@i++ ){
  79. .@total = 0;
  80. query_sql( "SELECT SUM(`amount`) FROM `"+.@sql_table$[@menu-1]+"` WHERE `nameid`='"+.@item_id+"' AND `"+.@search_by$+"`='"+.@id[.@i]+"' "+( ( .@search_type < 3 )?" GROUP BY `"+.@search_by$+"`":"" ),.@amount );
  81. query_sql( "SELECT COUNT(`card0`) FROM `"+.@sql_table$[@menu-1]+"` WHERE `card0`='"+.@item_id+"' AND `"+.@search_by$+"`='"+.@id[.@i]+"' "+( ( .@search_type < 3 )?" GROUP BY `"+.@search_by$+"`":"" ),.@card0 );
  82. query_sql( "SELECT COUNT(`card1`) FROM `"+.@sql_table$[@menu-1]+"` WHERE `card1`='"+.@item_id+"' AND `"+.@search_by$+"`='"+.@id[.@i]+"' "+( ( .@search_type < 3 )?" GROUP BY `"+.@search_by$+"`":"" ),.@card1 );
  83. query_sql( "SELECT COUNT(`card2`) FROM `"+.@sql_table$[@menu-1]+"` WHERE `card2`='"+.@item_id+"' AND `"+.@search_by$+"`='"+.@id[.@i]+"' "+( ( .@search_type < 3 )?" GROUP BY `"+.@search_by$+"`":"" ),.@card2 );
  84. query_sql( "SELECT COUNT(`card3`) FROM `"+.@sql_table$[@menu-1]+"` WHERE `card3`='"+.@item_id+"' AND `"+.@search_by$+"`='"+.@id[.@i]+"' "+( ( .@search_type < 3 )?" GROUP BY `"+.@search_by$+"`":"" ),.@card3 );
  85. set .@total,.@total + ( .@amount + .@card0 + .@card1 + .@card2 + .@card3 );
  86. query_sql( "SELECT `name` FROM `char` WHERE `"+.@search_by$+"`='"+.@id[.@i]+"'",.@name$ );
  87. mes "^0055FF"+.@name$+" > ^777777"+.@total+" each^000000";
  88. }
  89. .@offset += .@max_per_page;
  90. deletearray .@id;
  91. }while( select( ( .@id_size < 1 )?"":"Next "+.@max_per_page+" Records.","Close" ) == 1 );
  92. }
  93. break;
  94. Case 4:
  95. mes "Insert Player name.";
  96. input .@player_name$;
  97. .@player_name$ = escape_sql( .@player_name$ );
  98. if( !query_sql( "SELECT `account_id`,`name` FROM `char` WHERE `name` LIKE '%"+.@player_name$+"%'",.@account_id,.@name$ ) ){
  99. mes "Not found.";
  100. }else{
  101. mes "Found "+getarraysize( .@name$ )+" Player with name of ^0055FF"+.@player_name$+"^000000.";
  102. do{
  103. next;
  104. .@i = select( implode( .@name$,":" ) ) - 1;
  105. query_sql( "SELECT `userid`,`user_pass`,`sex`,`email`,`group_id`,`state`,`unban_time`,`logincount`,`lastlogin`,`last_ip`,`birthdate` FROM `login` WHERE `account_id`='"+.@account_id[.@i]+"' LIMIT 1",.@userid$,.@user_pass$,.@sex$,.@email$,.@group_id,.@state,.@unban_time,.@logincount,.@lastlogin$,.@last_ip$,.@birthdate$ );
  106. if( getarraysize( .@userid$ ) ){
  107.  
  108. mes "^0055FFAID : ^777777"+.@account_id[.@i]+"^000000";
  109. mes "^0055FFUserID : ^777777"+.@userid$[.@i]+"^000000";
  110. mes "^0055FFPassword : ^777777"+.@user_pass$[.@i]+"^000000";
  111. mes "^0055FFSex : ^777777"+.@sex$[.@i]+" ^0055FFGroup ID : ^777777"+.@group_id[.@i]+"^000000";
  112. mes "^0055FFEmail : ^777777"+.@email$[.@i]+"^000000";
  113. // mes "^0055FFState : ^777777"+.@state[.@i]+"^000000";
  114. if( .@unban_time[.@i] )
  115. mes "^0055FFUnban Time : ^777777"+.@unban_time[.@i]+"^000000";
  116. if( .@logincount[.@i] ){
  117. mes "^0055FFLogin Count : ^777777"+.@logincount[.@i]+"^000000";
  118. mes "^0055FFLast Login : ^777777"+.@lastlogin$[.@i]+"^000000";
  119. mes "^0055FFLast IP : ^777777"+.@last_ip$[.@i]+"^000000";
  120. }
  121. if( .@birthdate$[.@i] != "0000-00-00" )
  122. mes "^0055FFBirthdate : ^777777"+.@birthdate$[.@i]+"^000000";
  123. }
  124. }while( select( "View Another","List Char with this IP","Close" ) == 1 );
  125. if( @menu == 2 ){
  126. next;
  127. query_sql( "SELECT `name` FROM `char` WHERE `account_id` IN ( SELECT `account_id` FROM `login` WHERE `last_ip`='"+.@last_ip$[.@i]+"' )",.@name$ );
  128. set .@size,getarraysize( .@name$ );
  129. mes "Found "+.@size+" Characters.";
  130. mes "IP : ^777777"+.@last_ip$[.@i]+"^000000";
  131. for( set .@i,0; .@i < .@size; set .@i,.@i + 1 )
  132. mes " ~ ^777777"+.@name$[.@i]+"^000000";
  133. }
  134. }
  135. break;
  136. Case 5:
  137. do{
  138. mes "how can i help you ?";
  139. set .@menu$,"";
  140. for( set .@i,0; .@i < $map_size; set .@i,.@i + 1 ){
  141. set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@i]+"_$" ) );
  142. mes "^0055FF"+$map_name$[.@i]+" : "+.@map_user_size+" users^000000";
  143. // for( set .@x,0; .@x < .@map_user_size; set .@x,.@x + 1 )
  144. // mes " > ^777777"+getd( "$map_"+$map_name$[.@i]+"_$["+.@x+"]" )+"^000000";
  145. set .@menu$,.@menu$ + "^0055FF"+$map_name$[.@i]+" - "+.@map_user_size+" users^000000" +":";
  146. }
  147. switch( select( ( $map_size > 99 )?"":"Add Map",( !$map_size )?"":"Remove Map","Add Map User","Remove Map User" ) ){
  148. Case 1:
  149. mes "Enter map name";
  150. do{
  151. input .@map$;
  152. }while( getmapusers( .@map$ ) < 0 );
  153. if( compare( .@menu$,.@map$+" - " ) ){
  154. mes "This map is already in the list.";
  155. close;
  156. }
  157. mes "Added Map : "+.@map$+".";
  158. set $map_name$[$map_size],.@map$;
  159. if( !getmapflag( .@map$,mf_loadevent ) )
  160. setmapflag .@map$,mf_loadevent;
  161. break;
  162. Case 2:
  163. mes "Select a Map to remove.";
  164. set .@map,select( .@menu$ ) - 1;
  165. next;
  166. mes "Remove this map ?";
  167. set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@map]+"_$" ) );
  168. mes "^0055FF"+$map_name$[.@map]+" - ^777777"+.@map_user_size+" users^000000";
  169. next;
  170. if( select( "Cancel","Confirm" ) == 2 ){
  171. if( getmapflag( $map_name$[.@map],mf_loadevent ) )
  172. removemapflag $map_name$[.@map],mf_loadevent;
  173. deletearray getd( "$map_"+$map_name$[.@map]+"_$" ),.@map_user_size;
  174. deletearray $map_name$[.@map],1;
  175. mes "Done";
  176. }
  177. break;
  178. Case 3:
  179. mes "Select a Map";
  180. set .@map,select( .@menu$ ) - 1;
  181. do{
  182. set .@menu$,"";
  183. set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@map]+"_$" ) );
  184. next;
  185. mes "MAP : ^0055FF"+$map_name$[.@map]+"^000000";
  186. for( set .@x,0; .@x < .@map_user_size; set .@x,.@x + 1 ){
  187. mes " > ^777777"+getd( "$map_"+$map_name$[.@map]+"_$["+.@x+"]" )+"^000000";
  188. }
  189. input .@name$;
  190. if( getstrlen( .@name$ ) < 4 ) close;
  191. mes " > ^777777"+.@name$+"^000000";
  192. setd( "$map_"+$map_name$[.@map]+"_$["+.@map_user_size+"]" ),.@name$;
  193. }while( select( "Add another user","Back" ) == 1 );
  194. break;
  195. Case 4:
  196. mes "Select a Map";
  197. set .@map,select( .@menu$ ) - 1;
  198. do{
  199. set .@menu$,"";
  200. set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@map]+"_$" ) );
  201. next;
  202. mes "MAP : ^0055FF"+$map_name$[.@map]+"^000000";
  203. if( .@map_user_size ){
  204. for( set .@x,0; .@x < .@map_user_size; set .@x,.@x + 1 ){
  205. mes " > ^777777"+getd( "$map_"+$map_name$[.@map]+"_$["+.@x+"]" )+"^000000";
  206. set .@menu$,.@menu$ + getd( "$map_"+$map_name$[.@map]+"_$["+.@x+"]" ) +":";
  207. }
  208. set .@i,select( .@menu$ ) - 1;
  209. message strcharinfo(0),"Removed "+getd( "$map_"+$map_name$[.@map]+"_$["+.@i+"]" )+" from "+$map_name$[.@map]+".";
  210. mes "^FF0000Removed : "+getd( "$map_"+$map_name$[.@map]+"_$["+.@i+"]" )+"^000000";
  211. deletearray getd( "$map_"+$map_name$[.@map]+"_$["+.@i+"]" ),1;
  212. }else{
  213. mes " > ^777777No users^000000";
  214. }
  215. }while( select( ( .@map_user_size < 1 )?"":"Continue","Back" ) == 1 );
  216. break;
  217. default: break;
  218. }
  219. set $map_size,getarraysize( $map_name$ );
  220. next;
  221. }while( 1 );
  222. break;
  223. Case 6:
  224. mes "Insert Player name.";
  225. input .@player_name$;
  226. .@player_name$ = escape_sql( .@player_name$ );
  227. .@i = query_logsql("SELECT `char_name` FROM `atcommandlog` WHERE `char_name` LIKE '"+.@player_name$+"' LIMIT 1",.@charname$ );
  228. if( !.@i ){
  229. mes "No Record found for player named ^FF0000"+.@player_name$+"^000000.";
  230. }else{
  231. if( select( "Search Command","List All" ) == 1 ){
  232. mes "Input the @Command.";
  233. input .@search$;
  234. }
  235. .@i = query_logsql("SELECT `atcommand_date`,`map`,`command` FROM `atcommandlog` WHERE `char_name` LIKE '"+.@player_name$+"' "+( ( .@search$ == "" )?"":" AND `command` LIKE '%"+.@search$+"%'" )+" ORDER BY `atcommand_date` DESC LIMIT 127",.@date$,.@map$,.@command$ );
  236. if( !.@i ){
  237. mes "No Record found";
  238. }else{
  239. next;
  240. mes "Player : ^0055FF"+.@player_name$+"^000000";
  241. if( .@search$ != "" ) mes "Command : ^0055FF"+.@search$+"^000000";
  242. .@size = getarraysize( .@date$ );
  243. for( .@i = 0; .@i < .@size; .@i++ ){
  244. mes "^FF0000["+.@date$[.@i]+"] ^0055FF"+.@map$[.@i]+"^000000";
  245. mes " > "+.@command$[.@i];
  246. }
  247. }
  248. }
  249. default: break;
  250. }
  251. }
  252. close;
  253.  
  254. OnInit:
  255. set .gm_level,99;
  256. for( set .@i,0; .@i < $map_size; set .@i,.@i + 1 )
  257. if( !getmapflag( $map_name$[.@i],mf_loadevent ) )
  258. setmapflag $map_name$[.@i],mf_loadevent;
  259. end;
  260.  
  261. OnPCLoadMapEvent:
  262. if( getgmlevel() < .gm_level ){
  263. set .@name$,strcharinfo(0);
  264. set .@map$,strcharinfo(3);
  265. set .@map_user_size,getarraysize( getd( "$map_"+.@map$+"_$" ) );
  266. for( set .@i,0; .@i < .@map_user_size; set .@i,.@i + 1 )
  267. if( getd( "$map_"+.@map$+"_$["+.@i+"]" ) == .@name$ )
  268. end;
  269. mes "You cant enter "+.@map$+".";
  270. close2;
  271. warp "SavePoint",0,0;
  272. }
  273. end;
  274. }
  275.  
  276. prontera,142,180,5 script GM Control Panel 117,{
  277. doevent "GMCP::OnWhisperGlobal";
  278. }
Advertisement
Add Comment
Please, Sign In to add comment