Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - script GMCP -1,{
- OnWhisperGlobal:
- if( getgmlevel() < .gm_level ){
- mes "Only GM can use.";
- }else{
- mes "How can i help you ?";
- next;
- switch( select( "Reset Player Position",
- "Search IP",
- "Search Item",
- "Search Player Account",
- "Map Setting",
- "View GM Commands Logs" ) ){
- Case 1:
- mes "Insert Player name.";
- input .@player_name$;
- if( isloggedin( getcharid( 3,.@player_name$ ),getcharid( 0,.@player_name$ ) ) ){
- warp "SavePoint",0,0;
- message .@player_name$,"Position Reset";
- }else{
- .@player_name$ = escape_sql( .@player_name$ );
- query_sql( "UPDATE `char` SET `last_map`=`save_map`,`last_x`=`save_x`,`last_y`=`save_y` WHERE `name` LIKE '"+.@player_name$+"'" );
- }
- mes "Done";
- break;
- Case 2:
- mes "Insert IP Address.";
- input .@ip_address$;
- .@ip_address$ = escape_sql( .@ip_address$ );
- 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$ );
- .@account_id_size = getarraysize( .@userid$ );
- mes "Found "+.@account_id_size+" account with IP of ^0055FF"+.@ip_address$+"^000000.";
- if( .@account_id_size ){
- do{
- next;
- .@i = select( implode( .@userid$,":" ) ) - 1;
- mes "^0055FFAID : ^777777"+.@account_id[.@i]+"^000000";
- mes "^0055FFUserID : ^777777"+.@userid$[.@i]+"^000000";
- mes "^0055FFPassword : ^777777"+.@user_pass$[.@i]+"^000000";
- mes "^0055FFSex : ^777777"+.@sex$[.@i]+" ^0055FFGroup ID : ^777777"+.@group_id[.@i]+"^000000";
- mes "^0055FFEmail : ^777777"+.@email$[.@i]+"^000000";
- // mes "^0055FFState : ^777777"+.@state[.@i]+"^000000";
- if( .@unban_time[.@i] )
- mes "^0055FFUnban Time : ^777777"+.@unban_time[.@i]+"^000000";
- if( .@logincount[.@i] ){
- mes "^0055FFLogin Count : ^777777"+.@logincount[.@i]+"^000000";
- mes "^0055FFLast Login : ^777777"+.@lastlogin$[.@i]+"^000000";
- mes "^0055FFLast IP : ^777777"+.@last_ip$[.@i]+"^000000";
- }
- if( .@birthdate$[.@i] != "0000-00-00" )
- mes "^0055FFBirthdate : ^777777"+.@birthdate$[.@i]+"^000000";
- }while( select( "View Another","Close" ) == 1 );
- }
- break;
- Case 3:
- mes "Insert Item name.";
- do{
- input .@item_id,0,32767;
- if( !.@item_id ) close;
- }while( getitemname( .@item_id ) == "null" );
- if( .@item_id ){
- .@max_per_page = 30;
- setarray .@sql_table$[0],"inventory","cart_inventory","storage";
- .@search_type = select( "Search Inventory","Search Cart","Search Storage" );
- do{
- next;
- switch( .@search_type ){
- Case 1:
- Case 2: .@search_by$ = "char_id"; break;
- Case 3: .@search_by$ = "account_id"; break;
- default: close;
- }
- 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 );
- .@id_size = getarraysize( .@id );
- mes "Records No. : "+.@offset+" ~ "+( .@offset + .@max_per_page );
- mes "Found : "+.@id_size+" Records ^FF0000( "+getitemname( .@item_id )+" )^000000";
- for( .@i = 0; .@i < .@id_size; .@i++ ){
- .@total = 0;
- 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 );
- 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 );
- 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 );
- 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 );
- 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 );
- set .@total,.@total + ( .@amount + .@card0 + .@card1 + .@card2 + .@card3 );
- query_sql( "SELECT `name` FROM `char` WHERE `"+.@search_by$+"`='"+.@id[.@i]+"'",.@name$ );
- mes "^0055FF"+.@name$+" > ^777777"+.@total+" each^000000";
- }
- .@offset += .@max_per_page;
- deletearray .@id;
- }while( select( ( .@id_size < 1 )?"":"Next "+.@max_per_page+" Records.","Close" ) == 1 );
- }
- break;
- Case 4:
- mes "Insert Player name.";
- input .@player_name$;
- .@player_name$ = escape_sql( .@player_name$ );
- if( !query_sql( "SELECT `account_id`,`name` FROM `char` WHERE `name` LIKE '%"+.@player_name$+"%'",.@account_id,.@name$ ) ){
- mes "Not found.";
- }else{
- mes "Found "+getarraysize( .@name$ )+" Player with name of ^0055FF"+.@player_name$+"^000000.";
- do{
- next;
- .@i = select( implode( .@name$,":" ) ) - 1;
- 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$ );
- if( getarraysize( .@userid$ ) ){
- mes "^0055FFAID : ^777777"+.@account_id[.@i]+"^000000";
- mes "^0055FFUserID : ^777777"+.@userid$[.@i]+"^000000";
- mes "^0055FFPassword : ^777777"+.@user_pass$[.@i]+"^000000";
- mes "^0055FFSex : ^777777"+.@sex$[.@i]+" ^0055FFGroup ID : ^777777"+.@group_id[.@i]+"^000000";
- mes "^0055FFEmail : ^777777"+.@email$[.@i]+"^000000";
- // mes "^0055FFState : ^777777"+.@state[.@i]+"^000000";
- if( .@unban_time[.@i] )
- mes "^0055FFUnban Time : ^777777"+.@unban_time[.@i]+"^000000";
- if( .@logincount[.@i] ){
- mes "^0055FFLogin Count : ^777777"+.@logincount[.@i]+"^000000";
- mes "^0055FFLast Login : ^777777"+.@lastlogin$[.@i]+"^000000";
- mes "^0055FFLast IP : ^777777"+.@last_ip$[.@i]+"^000000";
- }
- if( .@birthdate$[.@i] != "0000-00-00" )
- mes "^0055FFBirthdate : ^777777"+.@birthdate$[.@i]+"^000000";
- }
- }while( select( "View Another","List Char with this IP","Close" ) == 1 );
- if( @menu == 2 ){
- next;
- query_sql( "SELECT `name` FROM `char` WHERE `account_id` IN ( SELECT `account_id` FROM `login` WHERE `last_ip`='"+.@last_ip$[.@i]+"' )",.@name$ );
- set .@size,getarraysize( .@name$ );
- mes "Found "+.@size+" Characters.";
- mes "IP : ^777777"+.@last_ip$[.@i]+"^000000";
- for( set .@i,0; .@i < .@size; set .@i,.@i + 1 )
- mes " ~ ^777777"+.@name$[.@i]+"^000000";
- }
- }
- break;
- Case 5:
- do{
- mes "how can i help you ?";
- set .@menu$,"";
- for( set .@i,0; .@i < $map_size; set .@i,.@i + 1 ){
- set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@i]+"_$" ) );
- mes "^0055FF"+$map_name$[.@i]+" : "+.@map_user_size+" users^000000";
- // for( set .@x,0; .@x < .@map_user_size; set .@x,.@x + 1 )
- // mes " > ^777777"+getd( "$map_"+$map_name$[.@i]+"_$["+.@x+"]" )+"^000000";
- set .@menu$,.@menu$ + "^0055FF"+$map_name$[.@i]+" - "+.@map_user_size+" users^000000" +":";
- }
- switch( select( ( $map_size > 99 )?"":"Add Map",( !$map_size )?"":"Remove Map","Add Map User","Remove Map User" ) ){
- Case 1:
- mes "Enter map name";
- do{
- input .@map$;
- }while( getmapusers( .@map$ ) < 0 );
- if( compare( .@menu$,.@map$+" - " ) ){
- mes "This map is already in the list.";
- close;
- }
- mes "Added Map : "+.@map$+".";
- set $map_name$[$map_size],.@map$;
- if( !getmapflag( .@map$,mf_loadevent ) )
- setmapflag .@map$,mf_loadevent;
- break;
- Case 2:
- mes "Select a Map to remove.";
- set .@map,select( .@menu$ ) - 1;
- next;
- mes "Remove this map ?";
- set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@map]+"_$" ) );
- mes "^0055FF"+$map_name$[.@map]+" - ^777777"+.@map_user_size+" users^000000";
- next;
- if( select( "Cancel","Confirm" ) == 2 ){
- if( getmapflag( $map_name$[.@map],mf_loadevent ) )
- removemapflag $map_name$[.@map],mf_loadevent;
- deletearray getd( "$map_"+$map_name$[.@map]+"_$" ),.@map_user_size;
- deletearray $map_name$[.@map],1;
- mes "Done";
- }
- break;
- Case 3:
- mes "Select a Map";
- set .@map,select( .@menu$ ) - 1;
- do{
- set .@menu$,"";
- set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@map]+"_$" ) );
- next;
- mes "MAP : ^0055FF"+$map_name$[.@map]+"^000000";
- for( set .@x,0; .@x < .@map_user_size; set .@x,.@x + 1 ){
- mes " > ^777777"+getd( "$map_"+$map_name$[.@map]+"_$["+.@x+"]" )+"^000000";
- }
- input .@name$;
- if( getstrlen( .@name$ ) < 4 ) close;
- mes " > ^777777"+.@name$+"^000000";
- setd( "$map_"+$map_name$[.@map]+"_$["+.@map_user_size+"]" ),.@name$;
- }while( select( "Add another user","Back" ) == 1 );
- break;
- Case 4:
- mes "Select a Map";
- set .@map,select( .@menu$ ) - 1;
- do{
- set .@menu$,"";
- set .@map_user_size,getarraysize( getd( "$map_"+$map_name$[.@map]+"_$" ) );
- next;
- mes "MAP : ^0055FF"+$map_name$[.@map]+"^000000";
- if( .@map_user_size ){
- for( set .@x,0; .@x < .@map_user_size; set .@x,.@x + 1 ){
- mes " > ^777777"+getd( "$map_"+$map_name$[.@map]+"_$["+.@x+"]" )+"^000000";
- set .@menu$,.@menu$ + getd( "$map_"+$map_name$[.@map]+"_$["+.@x+"]" ) +":";
- }
- set .@i,select( .@menu$ ) - 1;
- message strcharinfo(0),"Removed "+getd( "$map_"+$map_name$[.@map]+"_$["+.@i+"]" )+" from "+$map_name$[.@map]+".";
- mes "^FF0000Removed : "+getd( "$map_"+$map_name$[.@map]+"_$["+.@i+"]" )+"^000000";
- deletearray getd( "$map_"+$map_name$[.@map]+"_$["+.@i+"]" ),1;
- }else{
- mes " > ^777777No users^000000";
- }
- }while( select( ( .@map_user_size < 1 )?"":"Continue","Back" ) == 1 );
- break;
- default: break;
- }
- set $map_size,getarraysize( $map_name$ );
- next;
- }while( 1 );
- break;
- Case 6:
- mes "Insert Player name.";
- input .@player_name$;
- .@player_name$ = escape_sql( .@player_name$ );
- .@i = query_logsql("SELECT `char_name` FROM `atcommandlog` WHERE `char_name` LIKE '"+.@player_name$+"' LIMIT 1",.@charname$ );
- if( !.@i ){
- mes "No Record found for player named ^FF0000"+.@player_name$+"^000000.";
- }else{
- if( select( "Search Command","List All" ) == 1 ){
- mes "Input the @Command.";
- input .@search$;
- }
- .@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$ );
- if( !.@i ){
- mes "No Record found";
- }else{
- next;
- mes "Player : ^0055FF"+.@player_name$+"^000000";
- if( .@search$ != "" ) mes "Command : ^0055FF"+.@search$+"^000000";
- .@size = getarraysize( .@date$ );
- for( .@i = 0; .@i < .@size; .@i++ ){
- mes "^FF0000["+.@date$[.@i]+"] ^0055FF"+.@map$[.@i]+"^000000";
- mes " > "+.@command$[.@i];
- }
- }
- }
- default: break;
- }
- }
- close;
- OnInit:
- set .gm_level,99;
- for( set .@i,0; .@i < $map_size; set .@i,.@i + 1 )
- if( !getmapflag( $map_name$[.@i],mf_loadevent ) )
- setmapflag $map_name$[.@i],mf_loadevent;
- end;
- OnPCLoadMapEvent:
- if( getgmlevel() < .gm_level ){
- set .@name$,strcharinfo(0);
- set .@map$,strcharinfo(3);
- set .@map_user_size,getarraysize( getd( "$map_"+.@map$+"_$" ) );
- for( set .@i,0; .@i < .@map_user_size; set .@i,.@i + 1 )
- if( getd( "$map_"+.@map$+"_$["+.@i+"]" ) == .@name$ )
- end;
- mes "You cant enter "+.@map$+".";
- close2;
- warp "SavePoint",0,0;
- }
- end;
- }
- prontera,142,180,5 script GM Control Panel 117,{
- doevent "GMCP::OnWhisperGlobal";
- }
Advertisement
Add Comment
Please, Sign In to add comment