yuhsing

Untitled

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