From 6b29d293678e5d2f056238d4f2f3955cacde971e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=B6=E7=9A=93?= <1214946206@qq.com> Date: Sat, 3 Jul 2021 08:02:29 +0800 Subject: [PATCH] fix tagplayer bugs --- tagplayer.sc | 562 +++++++++++++++++++++++++++------------------------ 1 file changed, 298 insertions(+), 264 deletions(-) diff --git a/tagplayer.sc b/tagplayer.sc index de228b2..27502b2 100644 --- a/tagplayer.sc +++ b/tagplayer.sc @@ -2,42 +2,38 @@ //************请将该文件放入"world\scripts"文件夹中************ //*************可以自定义插件名,但不能为“player”************** //************************************************************* -scoreboard_add('carpetBot'); -team_add('carpetBot'); -team_add('shadowedPlayer'); -team_property('carpetBot', 'prefix', '假的'); -team_property('shadowedPlayer', 'prefix', '挂机'); -global_version = '2.4.0'; -global_carpet_version = split('\\+v',system_info('scarpet_version')); -global_require_carpet_version = ['1.4.22', 210113]; -global_filename = system_info('app_name'); -run('data merge storage minecraft:fz.tagplayer {filename:"' + global_filename + '"}'); -run('carpet setDefault commandPlayer ops'); - -config = read_file('config/config', 'json'); -global_config = m(); -if (config == null, - ( - global_config = {'allow_spawning_whitelist_players' -> 'true'}; - ), - if (config:'allow_spawning_whitelist_players' == null || - (config:'allow_spawning_whitelist_players' != 'true' && config:'allow_spawning_whitelist_players' != 'false'), - ( - global_config:'allow_spawning_whitelist_players' = 'true' - ), - global_config:'allow_spawning_whitelist_players' = config:'allow_spawning_whitelist_players'; - ); +__on_start() -> ( + if(scoreboard_add('carpetBot') == null, + scoreboard_property('carpetBot', 'criterion', 'dummy'); + ); + team_add('carpetBot'); + team_add('shadowedPlayer'); + team_property('carpetBot', 'prefix', '假的'); + team_property('shadowedPlayer', 'prefix', '挂机'); + global_version = '2.4.0'; + global_carpet_version = split('\\+v',system_info('scarpet_version')); + global_require_carpet_version = ['1.4.30', 210331]; + global_filename = system_info('app_name'); + run('data merge storage minecraft:fz.tagplayer {filename:"' + global_filename + '"}'); + run('carpet setDefault commandPlayer ops'); + reload(); + run(str('tellraw @a {"text": "[版本信息]' + global_filename + '版本: ' + global_version + '", "color": "#ffd900"}')); + run(str('tellraw @a {"text": "[版本信息]carpet版本: ' + global_carpet_version:0 + '", "color": "#ffd900"}')); + if(number(global_carpet_version:1) < global_require_carpet_version:1 || global_carpet_version == null, + run(str('tellraw @a {"text": "[错误]' + global_filename + '需要地毯' + global_require_carpet_version:0 + '或以上来运行!否则会出现预期之外的问题", "color": "#ff6100"}')); + ); ); -logger(config:'allow_spawning_whitelist_players'); -delete_file('config/config', 'json'); -write_file('config/config', 'json', global_config); - __config() -> { 'scope' -> 'global', 'stay_loaded' -> true, 'allow_command_conflicts' -> true, 'commands' -> { '' -> 'help', + ' ' -> 'tp', + ' ' -> 'tp_with_rotation', + ' ' -> 'tp_to_player', + ' atBot' -> 'tp_at_bot', + ' atBot' -> 'tp_at_bot_with_rotation', 'spawn ' -> ['summon',null,null,null], 'spawn at ' -> ['summon',null,null], 'spawn at facing ' -> ['summon',null], @@ -99,17 +95,22 @@ __config() -> { 'stop ' -> 'stop', 'check ' -> 'check', 'checkall' -> 'checkall', - 'tp ' -> 'tp', - 'tp ' -> 'tp_with_rotation', - 'tp ' -> 'tp_to_player', - 'tp atBot' -> 'tp_at_bot', - 'tp atBot' -> 'tp_at_bot_with_rotation', 'hotbar ' -> 'hotbar', 'shadow' -> 'shadow', + 'reload' -> 'reload' }, 'arguments' -> { + 'tp' -> { + 'type' -> 'term', + 'suggester' -> _(args) -> ( + if(global_config:'allow_bot_tp' == 'true', + return(['tp']); + ,(return(null)); + ); + ); + }, 'dimension' -> { - 'type' -> 'text', + 'type' -> 'term', 'suggest' -> ['overworld','the_nether','the_end'] }, 'hotbar' -> { @@ -130,8 +131,8 @@ __config() -> { ); ); put(bot_list, length(bot_list), player()); - return(bot_list) - ) + return(bot_list); + ); }, 'killbot' -> { 'type' -> 'term', @@ -144,8 +145,8 @@ __config() -> { put(bot_list, length(bot_list), player_list:i) ); ); - return(bot_list) - ) + return(bot_list); + ); }, 'player' -> { 'type' -> 'term', @@ -161,8 +162,8 @@ __config() -> { }, 'position' -> { 'type' -> 'location' - } - } + }; + }; }; __on_player_disconnects(player, reason) ->( delete_all_files(player); @@ -184,32 +185,32 @@ __on_server_shuts_down() ->( if(scoreboard('carpetBot', player) == 1, scoreboard_remove('actimeCounter', player_list:i); team_leave(player); - ) + ); ); scoreboard_remove('carpetBot'); team_remove('carpetBot'); - team_remove('shadowedPlayer') + team_remove('shadowedPlayer'); ); check_fakeplayer(player_name) ->( f_player = player(player_name); if (!f_player, ( print('§4假人'+player_name+'未在线'); - exit() + exit(); ), - scoreboard('carpetBot', f_player) != 1 && f_player != player(), + scoreboard('carpetBot', f_player) != 1 || f_player == player(), ( print('§4'+f_player+'不是假人'); - exit() - ) - ) + exit(); + ); + ); ); check_offline(player_name) ->( f_player = player(player_name); if (!f_player, print('§4玩家或假人'+player_name+'未在线'); - exit() - ) + exit(); + ); ); check_online(player_name) ->( if (global_config:'allow_spawning_whitelist_players' == 'false', @@ -225,24 +226,24 @@ check_online(player_name) ->( if (f_player, if (scoreboard('carpetBot', f_player) == 1, print('§4假人'+f_player+'已经在线了'); - exit() + exit(); ); print('§4玩家'+f_player+'已经在线了'); - exit() - ) + exit(); + ); ); check_pos(x) ->( x = number(x); if(x == null, print('§4请输入正确的坐标'); - exit() + exit(); ); - return(x) + return(x); ); check_dim(s_player,f_player) ->( if (s_player~'dimension' != f_player~'dimension', print('§4不在同一维度!'); - exit() + exit(); ); ); delete_all_files(f_player) ->( @@ -253,7 +254,40 @@ delete_all_files(f_player) ->( delete_file(f_player + '-' + 'swap_hands', 'text'); delete_file(f_player + '-' + 'use', 'text'); delete_file(f_player + '-' + 'move_vertical', 'text'); - delete_file(f_player + '-' + 'move_transverse', 'text') + delete_file(f_player + '-' + 'move_transverse', 'text'); +); +reload() -> ( + config = read_file('config/config', 'json'); + global_config = m(); + if (config == null, + ( + global_config = { + 'allow_spawning_whitelist_players' -> 'true', + 'allow_bot_tp' -> 'true' + }; + ), + if (config:'allow_spawning_whitelist_players' == null || + ( + config:'allow_spawning_whitelist_players' != 'true' && + config:'allow_spawning_whitelist_players' != 'false' + ), + ( + global_config:'allow_spawning_whitelist_players' = 'true' + ), + global_config:'allow_spawning_whitelist_players' = config:'allow_spawning_whitelist_players'; + ); + if (config:'allow_bot_tp' == null || (config:'allow_bot_tp' != 'true' && config:'allow_bot_tp' != 'false'), + ( + global_config:'allow_bot_tp' = 'true' + ), + global_config:'allow_bot_tp' = config:'allow_bot_tp'; + ); + ); + logger(global_config:'allow_spawning_whitelist_players'); + logger(global_config:'allow_bot_tp'); + delete_file('config/config', 'json'); + write_file('config/config', 'json', global_config); + print('配置文件重载成功!'); ); help() ->( print('--使用帮助:'); @@ -281,43 +315,38 @@ help() ->( if(number(global_carpet_version:1) < global_require_carpet_version:1 || global_carpet_version == null, print('§4' + global_filename + '需要地毯' + global_require_carpet_version:0 + '或以上来运行!否则会出现预期之外的问题') ); - return() -); -reload() ->( - run('script load ' + global_filename); - run('tellraw @a {"text":"+ global_filename +重载成功!"}'); - return() + return(); ); summon(player_name, position, rotation, dimension) ->( if(length(player_name) > 16, - player_name = slice(player_name,0,15) + player_name = slice(player_name,0,15); ); check_online(player_name); s_player = player(); if(position == null, - position = query(s_player, 'pos') + position = query(s_player, 'pos'); ); if(rotation == null, - rotation = l(query(s_player, 'yaw'), query(s_player, 'pitch')) + rotation = l(query(s_player, 'yaw'), query(s_player, 'pitch')); ); if(dimension == null, - dimension = query(s_player, 'dimension') + dimension = query(s_player, 'dimension'); ); run( str('player %s spawn at %f %f %f facing %f %f in %s', player_name, position:0, position:1, position:2, rotation:0, rotation:1, dimension - ) + ); ); f_player = player(player_name); if (!f_player, print('§4生成失败'); - return() + return(); ); delete_all_files(f_player); team_add('carpetBot', f_player); run('tellraw @a {"text":"↑假的"}'); scoreboard('carpetBot', f_player, 1); - return() + return(); ); kill(player_name) ->( f_player = player(player_name); @@ -327,9 +356,9 @@ kill(player_name) ->( run('tellraw @a {"text":"↓假的"}'); run(str('player %s kill', f_player)); ), - print('§4你不是假人') + print('§4你不是假人'); ); - return() + return(); ); killall() ->( player_list = team_list('carpetBot'); @@ -338,11 +367,11 @@ killall() ->( ); if(player_list == l(), print('§4不存在假人'); - return() + return(); ); game_tick(50); run('tellraw @a {"text":"已清除全部假人"}'); - return() + return(); ); //挂机 shadow() ->( @@ -350,12 +379,12 @@ shadow() ->( run(str('player %s shadow', f_player)); scoreboard('carpetBot', f_player, 1); team_add('shadowedPlayer', f_player); - return() + return(); ); //热键栏 hotbar(player_name, hotbar) ->( run(str('player %s hotbar %d', player_name, hotbar)); - return() + return(); ); //攻击 attack_continuous(player_name) ->( @@ -364,7 +393,7 @@ attack_continuous(player_name) ->( run(str('player %s attack continuous', player_name)); delete_file(f_player + '-' + 'attack', 'text'); write_file(f_player + '-' + 'attack', 'text', 0); - return() + return(); ); attack_interval(player_name,tick) ->( f_player = player(player_name); @@ -372,21 +401,21 @@ attack_interval(player_name,tick) ->( run(str('player %s attack interval %d', player_name, tick)); delete_file(f_player + '-' + 'attack', 'text'); write_file(f_player + '-' + 'attack', 'text', tick); - return() + return(); ); attack_once(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s attack once', player_name)); delete_file(f_player + '-' + 'attack', 'text'); - return() + return(); ); attack_stop(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s attack', player_name)); delete_file(f_player + '-' + 'attack', 'text'); - return() + return(); ); //丢弃 drop_continuous(player_name) ->( @@ -395,7 +424,7 @@ drop_continuous(player_name) ->( run(str('player %s drop continuous', player_name)); delete_file(f_player + '-' + 'drop', 'text'); write_file(f_player + '-' + 'drop', 'text', 0); - return() + return(); ); drop_interval(player_name,tick) ->( f_player = player(player_name); @@ -403,38 +432,38 @@ drop_interval(player_name,tick) ->( run(str('player %s drop interval %d', player_name, tick)); delete_file(f_player + '-' + 'drop', 'text'); write_file(f_player + '-' + 'drop', 'text', tick); - return() + return(); ); drop_once(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s drop once', player_name)); delete_file(f_player + '-' + 'drop', 'text'); - return() + return(); ); drop_stop(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s drop', player_name)); delete_file(f_player + '-' + 'drop', 'text'); - return() + return(); ); drop_all(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s drop all', player_name)); - return() + return(); ); drop_offhand(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); - return() + return(); ); drop_mainhand(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s drop mainhand', player_name)); - return() + return(); ); //丢弃一组 drop_stack_continuous(player_name) ->( @@ -443,7 +472,7 @@ drop_stack_continuous(player_name) ->( run(str('player %s dropStack continuous', player_name)); delete_file(f_player + '-' + 'drop_stack', 'text'); write_file(f_player + '-' + 'drop_stack', 'text', 0); - return() + return(); ); drop_stack_interval(player_name,tick) ->( f_player = player(player_name); @@ -451,39 +480,39 @@ drop_stack_interval(player_name,tick) ->( run(str('player %s dropStack interval %d', player_name, tick)); delete_file(f_player + '-' + 'drop_stack', 'text'); write_file(f_player + '-' + 'drop_stack', 'text', tick); - return() + return(); ); drop_stack_once(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s dropStack once', player_name)); delete_file(f_player + '-' + 'drop_stack', 'text'); - return() + return(); ); drop_stack_stop(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s dropStack', player_name)); delete_file(f_player + '-' + 'drop_stack', 'text'); - return() + return(); ); drop_stack_all(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s dropStack all', player_name)); - return() + return(); ); drop_stack_offhand(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s dropStack offhand', player_name)); - return() + return(); ); drop_stack_mainhand(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s dropStack mainhand', player_name)); - return() + return(); ); //跳跃 jump_continuous(player_name) ->( @@ -492,7 +521,7 @@ jump_continuous(player_name) ->( run(str('player %s jump continuous', player_name)); delete_file(f_player + '-' + 'jump', 'text'); write_file(f_player + '-' + 'jump', 'text', 0); - return() + return(); ); jump_interval(player_name,tick) ->( f_player = player(player_name); @@ -500,21 +529,21 @@ jump_interval(player_name,tick) ->( run(str('player %s jump interval %d', player_name, tick)); delete_file(f_player + '-' + 'jump', 'text'); write_file(f_player + '-' + 'jump', 'text', tick); - return() + return(); ); jump_once(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s jump once', player_name)); delete_file(f_player + '-' + 'jump', 'text'); - return() + return(); ); jump_stop(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s jump', player_name)); delete_file(f_player + '-' + 'jump', 'text'); - return() + return(); ); //换手 swap_hands_continuous(player_name) ->( @@ -523,7 +552,7 @@ swap_hands_continuous(player_name) ->( run(str('player %s swapHands continuous', player_name)); delete_file(f_player + '-' + 'swap_hands', 'text'); write_file(f_player + '-' + 'swap_hands', 'text', 0); - return() + return(); ); swap_hands_interval(player_name,tick) ->( f_player = player(player_name); @@ -531,21 +560,21 @@ swap_hands_interval(player_name,tick) ->( run(str('player %s swapHands interval %d', player_name, tick)); delete_file(f_player + '-' + 'swap_hands', 'text'); write_file(f_player + '-' + 'swap_hands', 'text', tick); - return() + return(); ); swap_hands_once(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s swapHands once', player_name)); delete_file(f_player + '-' + 'swap_hands', 'text'); - return() + return(); ); swap_hands_stop(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s swapHands', player_name)); delete_file(f_player + '-' + 'swap_hands', 'text'); - return() + return(); ); //右键 use_continuous(player_name) ->( @@ -554,7 +583,7 @@ use_continuous(player_name) ->( run(str('player %s use continuous', player_name)); delete_file(f_player + '-' + 'use', 'text'); write_file(f_player + '-' + 'use', 'text', 0); - return() + return(); ); use_interval(player_name,tick) ->( f_player = player(player_name); @@ -562,34 +591,34 @@ use_interval(player_name,tick) ->( run(str('player %s use interval %d', player_name, tick)); delete_file(f_player + '-' + 'use', 'text'); write_file(f_player + '-' + 'use', 'text', tick); - return() + return(); ); use_once(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s use once', player_name)); delete_file(f_player + '-' + 'use', 'text'); - return() + return(); ); use_stop(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s use', player_name)); delete_file(f_player + '-' + 'use', 'text'); - return() + return(); ); //骑乘 mount(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s mount', player_name)); - return() + return(); ); dismount(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s dismount', player_name)); - return() + return(); ); //冲刺 sprint(player_name) ->( @@ -597,14 +626,14 @@ sprint(player_name) ->( check_fakeplayer(player_name); run(str('player %s sprint', player_name)); write_file(f_player + '-' + 'sprint', 'text', tick); - return() + return(); ); unsprint(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s unsprint', player_name)); delete_file(f_player + '-' + 'sprint', 'text'); - return() + return(); ); //下蹲 sneak(player_name) ->( @@ -612,33 +641,33 @@ sneak(player_name) ->( check_fakeplayer(player_name); run(str('player %s sneak', player_name)); write_file(f_player + '-' + 'sneak', 'text', tick); - return() + return(); ); unsneak(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s unsneak', player_name)); delete_file(f_player + '-' + 'sneak', 'text'); - return() + return(); ); //转向 turn_back(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s turn back', player_name)); - return() + return(); ); turn_left(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s turn left', player_name)); - return() + return(); ); turn_right(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s turn right', player_name)); - return() + return(); ); //看向 look(player_name,rotation) ->( @@ -663,49 +692,49 @@ look(player_name,rotation) ->( modify(player(player_name), 'yaw', x); modify(player(player_name), 'pitch', y); print(str('已将'+player_name+'的视角指向§a[%.1f,%.1f]',x,y)); - return() + return(); ); look_up(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s look up', player_name)); - return() + return(); ); look_down(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s look down', player_name)); - return() + return(); ); look_east(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s look east', player_name)); - return() + return(); ); look_north(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s look north', player_name)); - return() + return(); ); look_south(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s look south', player_name)); - return() + return(); ); look_west(player_name) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s look west', player_name)); - return() + return(); ); look_pos(player_name, position) ->( f_player = player(player_name); check_fakeplayer(player_name); run(str('player %s look at %f %f %f', player_name, position:0, position:1, position:2)); - return() + return(); ); //移动 move_backward(player_name) ->( @@ -714,7 +743,7 @@ move_backward(player_name) ->( run(str('player %s move backward', player_name)); delete_file(f_player + '-' + 'move_vertical', 'text'); write_file(f_player + '-' + 'move_vertical', 'text', 'backward'); - return() + return(); ); move_forward(player_name) ->( f_player = player(player_name); @@ -722,7 +751,7 @@ move_forward(player_name) ->( run(str('player %s move forward', player_name)); delete_file(f_player + '-' + 'move_vertical', 'text'); write_file(f_player + '-' + 'move_vertical', 'text', 'forward'); - return() + return(); ); move_left(player_name) ->( f_player = player(player_name); @@ -730,7 +759,7 @@ move_left(player_name) ->( run(str('player %s move left', player_name)); delete_file(f_player + '-' + 'move_transverse', 'text'); write_file(f_player + '-' + 'move_transverse', 'text', 'left'); - return() + return(); ); move_right(player_name) ->( f_player = player(player_name); @@ -738,7 +767,7 @@ move_right(player_name) ->( run(str('player %s move right', player_name)); delete_file(f_player + '-' + 'move_transverse', 'text'); write_file(f_player + '-' + 'move_transverse', 'text', 'right'); - return() + return(); ); move_stop(player_name) ->( f_player = player(player_name); @@ -746,7 +775,7 @@ move_stop(player_name) ->( run(str('player %s move', player_name)); delete_file(f_player + '-' + 'move_vertical', 'text'); delete_file(f_player + '-' + 'move_transverse', 'text'); - return() + return(); ); //停止 stop(player_name) ->( @@ -754,112 +783,122 @@ stop(player_name) ->( check_fakeplayer(player_name); run(str('player %s stop', player_name)); delete_all_files(f_player); - return() + return(); ); //传送 -tp(player_name, position) ->( - f_player = player(player_name); - check_fakeplayer(player_name); - s_player = player(); - x = position:0; - y = position:1; - if(y>4096 || y<-4096, - print('§4y值不能超过±4096!'); - return() - ); - z = position:2; - print(s_player~'yaw'+'|'+s_player~'pitch'); - run(str('tp %s %f %f %f %f %f', f_player, x, y, z, s_player~'yaw', s_player~'pitch')); - print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); - return() +tp(tp, player_name, position) ->( + if(global_config:'allow_bot_tp' == true, + f_player = player(player_name); + check_fakeplayer(player_name); + s_player = player(); + x = position:0; + y = position:1; + if(y>4096 || y<-4096, + print('§4y值不能超过±4096!'); + return(); + ); + z = position:2; + print(s_player~'yaw'+'|'+s_player~'pitch'); + run(str('tp %s %f %f %f %f %f', f_player, x, y, z, s_player~'yaw', s_player~'pitch')); + print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); + ); + return(); ); -tp_with_rotation(player_name, position, rotation) ->( - f_player = player(player_name); - check_fakeplayer(player_name); - s_player = player(); - f_player = player(player_name); - x = position:0; - y = position:1; - if(y>4096 || y<-4096, - print('§4y值不能超过±4096!'); - return() - ); - z = position:2; - yaw = (rotation:1)%360; - pitch = (rotation:0)%180; - if(yaw > 180, - yaw = yaw - 360 - ); - if(yaw < -180, - yaw = yaw + 360 - ); - if(pitch > 90, - pitch = pitch - 180 - ); - if(pitch < -90, - pitch = pitch + 180 - ); - run(str('tp %s %f %f %f %f %f', f_player, x, y, z, yaw, pitch)); - print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); - return() +tp_with_rotation(tp, player_name, position, rotation) ->( + if(global_config:'allow_bot_tp' == true, + f_player = player(player_name); + check_fakeplayer(player_name); + s_player = player(); + f_player = player(player_name); + x = position:0; + y = position:1; + if(y>4096 || y<-4096, + print('§4y值不能超过±4096!'); + return(); + ); + z = position:2; + yaw = (rotation:1)%360; + pitch = (rotation:0)%180; + if(yaw > 180, + yaw = yaw - 360 + ); + if(yaw < -180, + yaw = yaw + 360 + ); + if(pitch > 90, + pitch = pitch - 180 + ); + if(pitch < -90, + pitch = pitch + 180 + ); + run(str('tp %s %f %f %f %f %f', f_player, x, y, z, yaw, pitch)); + print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); + ); + return(); ); -tp_to_player(player_name, target_name) ->( - f_player = player(player_name); - check_fakeplayer(player_name); - s_player = player(target_name); - if (!s_player, - print('§4玩家未在线'); - return() - ); - run(str('tp %s %s', f_player, s_player)); - print(str('已将'+player_name+'传送至'+s_player)); - return() +tp_to_player(tp, player_name, target_name) ->( + if(global_config:'allow_bot_tp' == true, + f_player = player(player_name); + check_fakeplayer(player_name); + s_player = player(target_name); + if (!s_player, + print('§4玩家未在线'); + return(); + ); + run(str('tp %s %s', f_player, s_player)); + print(str('已将'+player_name+'传送至'+s_player)); + ); + return(); ); -tp_at_bot(player_name, position) ->( - f_player = player(player_name); - check_fakeplayer(player_name); - s_player = player(); - x = position:0; - y = position:1; - if(y>4096 || y<-4096, - print('§4y值不能超过±4096!'); - return() - ); - z = position:2; - print(s_player~'yaw'+'|'+s_player~'pitch'); - run(str('execute at %s run tp %s %f %f %f', f_player, x, y, z)); - print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); - return() +tp_at_bot(tp, player_name, position) ->( + if(global_config:'allow_bot_tp' == true, + f_player = player(player_name); + check_fakeplayer(player_name); + s_player = player(); + x = position:0; + y = position:1; + if(y>4096 || y<-4096, + print('§4y值不能超过±4096!'); + return(); + ); + z = position:2; + print(s_player~'yaw'+'|'+s_player~'pitch'); + run(str('execute at %s run tp %s %f %f %f', f_player, x, y, z)); + print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); + ); + return(); ); -tp_at_bot_with_rotation(player_name, position, rotation) ->( - f_player = player(player_name); - check_fakeplayer(player_name); - s_player = player(); - f_player = player(player_name); - x = position:0; - y = position:1; - if(y>4096 || y<-4096, - print('§4y值不能超过±4096!'); - return() - ); - z = position:2; - yaw = (rotation:1)%360; - pitch = (rotation:0)%180; - if(yaw > 180, - yaw = yaw - 360 - ); - if(yaw < -180, - yaw = yaw + 360 - ); - if(pitch > 90, - pitch = pitch - 180 - ); - if(pitch < -90, - pitch = pitch + 180 - ); - run(str('execute at %s run tp %s %f %f %f %f %f', f_player, f_player, x, y, z, yaw, pitch)); - print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); - return() +tp_at_bot_with_rotation(tp, player_name, position, rotation) ->( + if(global_config:'allow_bot_tp' == true, + f_player = player(player_name); + check_fakeplayer(player_name); + s_player = player(); + f_player = player(player_name); + x = position:0; + y = position:1; + if(y>4096 || y<-4096, + print('§4y值不能超过±4096!'); + return(); + ); + z = position:2; + yaw = (rotation:1)%360; + pitch = (rotation:0)%180; + if(yaw > 180, + yaw = yaw - 360 + ); + if(yaw < -180, + yaw = yaw + 360 + ); + if(pitch > 90, + pitch = pitch - 180 + ); + if(pitch < -90, + pitch = pitch + 180 + ); + run(str('execute at %s run tp %s %f %f %f %f %f', f_player, f_player, x, y, z, yaw, pitch)); + print(str('已将'+player_name+'传送至§a[%.2f,%.2f,%.2f]',x,y,z)); + ); + return(); ); //状态检查 check(player_name) ->( @@ -964,7 +1003,7 @@ check(player_name) ->( inner_sec = inner_attack/20; print('- 每' + inner_attack + '游戏刻(' + inner_sec + '游戏秒)尝试攻击一次'); noAct = false - ) + ); ); //扔东西 inner_drop = read_file(f_player + '-' + 'drop', 'text'):0; @@ -977,7 +1016,7 @@ check(player_name) ->( inner_sec = inner_drop/20; print('- 每' + inner_drop + '游戏刻(' + inner_sec + '游戏秒)扔1个物品'); noAct = false - ) + ); ); inner_drop_stack = read_file(f_player + '-' + 'drop_stack', 'text'):0; if(inner_drop_stack != null, @@ -989,7 +1028,7 @@ check(player_name) ->( inner_sec = inner_drop_stack/20; print('- 每' + inner_drop_stack + '游戏刻(' + inner_sec + '游戏秒)扔1个物品'); noAct = false - ) + ); ); //跳跃 inner_jump = read_file(f_player + '-' + 'jump', 'text'):0; @@ -1002,7 +1041,7 @@ check(player_name) ->( inner_sec = inner_jump/20; print('- 每' + inner_jump + '游戏刻(' + inner_sec + '游戏秒)尝试跳跃一次'); noAct = false - ) + ); ); //换手 inner_swap_hands = read_file(f_player + '-' + 'swap_hands', 'text'):0; @@ -1015,7 +1054,7 @@ check(player_name) ->( inner_sec = inner_swap_hands/20; print('- 每' + inner_swap_hands + '游戏刻(' + inner_sec + '游戏秒)交换一次左右手的物品'); noAct = false - ) + ); ); //使用物品 inner_use = read_file(f_player + '-' + 'use', 'text'):0; @@ -1028,7 +1067,7 @@ check(player_name) ->( inner_sec = inner_use/20; print('- 每' + inner_use + '游戏刻(' + inner_sec + '游戏秒)尝试使用一次物♂品'); noAct = false - ) + ); ); //移动**********************************重点********************************* inner_move_vertical = read_file(f_player + '-' + 'move_vertical', 'text'):0; @@ -1046,7 +1085,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向前潜行↑'); noAct = false - ) + ); ); if(inner_move_vertical == 'backward', if(inner_move_transverse == 'right', @@ -1060,7 +1099,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向后潜行↓'); noAct = false - ) + ); ); if(inner_move_vertical == null, if(inner_move_transverse == 'right', @@ -1074,8 +1113,8 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在潜伏'); noAct = false - ) - ) + ); + ); ); if(inner_sprint == true, if(inner_swim == true, @@ -1091,7 +1130,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向前游泳↑'); noAct = false - ) + ); ); if(inner_move_vertical == 'backward', if(inner_move_transverse == 'right', @@ -1105,7 +1144,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向后游泳↓§e(没错它可以开挂)'); noAct = false - ) + ); ); if(inner_move_vertical == null, if(inner_move_transverse == 'right', @@ -1119,8 +1158,8 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在原地游泳↓§e(没错它可以开挂)'); noAct = false - ) - ) + ); + ); ); if(inner_swim == false, if(inner_move_vertical == 'forward', @@ -1135,7 +1174,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向前疾跑↑'); noAct = false - ) + ); ); if(inner_move_vertical == 'backward', if(inner_move_transverse == 'right', @@ -1149,7 +1188,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向后疾跑↓§e(没错它可以开挂)'); noAct = false - ) + ); ); if(inner_move_vertical == null, if(inner_move_transverse == 'right', @@ -1163,8 +1202,8 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在原地疾跑,§e(没错它可以开挂)'); noAct = false - ) - ) + ); + ); ); ); if(inner_sprint == false && inner_sneak == false, @@ -1180,7 +1219,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向前走↑'); noAct = false - ) + ); ); if(inner_move_vertical == 'backward', if(inner_move_transverse == 'right', @@ -1194,7 +1233,7 @@ check(player_name) ->( if(inner_move_transverse == null, print('- 正在向后走↓'); noAct = false - ) + ); ); if(inner_move_vertical == null, if(inner_move_transverse == 'right', @@ -1204,37 +1243,37 @@ check(player_name) ->( if(inner_move_transverse == 'left', print('- 正在向左走←'); noAct = false - ) - ) + ); + ); ); //乘坐 inner_mount = f_player~'mount'; if(inner_mount != null, if(inner_mount == 'horse', - print('- 正在骑马') + print('- 正在骑马'); ); if(inner_mount == 'donkey', - print('- 正在骑驴') + print('- 正在骑驴'); ); if(inner_mount == 'mule', - print('- 正在骑骡') + print('- 正在骑骡'); ); if(inner_mount == 'trader_llama', - print('- 正在骑羊驼') + print('- 正在骑羊驼'); ); if(inner_mount == 'pig', - print('- 正在骑猪') + print('- 正在骑猪'); ); if(inner_mount == 'skeleton_horse', - print('- 正在骑骷髅马') + print('- 正在骑骷髅马'); ); if(inner_mount == 'zombie_horse', - print('- 正在骑僵尸马') + print('- 正在骑僵尸马'); ); noAct = false ); if(noAct == true, - print('- 无地毯动作') + print('- 无地毯动作'); ); return() ); @@ -1243,10 +1282,5 @@ checkall() ->( c_for(i = 0, i < length(player_list), i += 1, check(player_list:i); ); - return() -); -run(str('tellraw @a {"text": "[版本信息]' + global_filename + '版本: ' + global_version + '", "color": "#ffd900"}')); -run(str('tellraw @a {"text": "[版本信息]carpet版本: ' + global_carpet_version:0 + '", "color": "#ffd900"}')); -if(number(global_carpet_version:1) < global_require_carpet_version:1 || global_carpet_version == null, - run(str('tellraw @a {"text": "[错误]' + global_filename + '需要地毯' + global_require_carpet_version:0 + '或以上来运行!否则会出现预期之外的问题", "color": "#ff6100"}');) + return(); ); \ No newline at end of file