Skip to content

Commit

Permalink
แก้ไขบัค เพิ่ม สามารถกัน Speed Hack ได้ ✌️
Browse files Browse the repository at this point in the history
แก้ไขบัค เพิ่ม สามารถกัน Speed Hack ได้
  • Loading branch information
tigerza117 committed Apr 30, 2017
1 parent dbcf21d commit 649fe66
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 48 deletions.
Binary file added bin/AntiCheat_v1.0.3.phar
Binary file not shown.
36 changes: 36 additions & 0 deletions src/ac/CheckTask.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php
namespace ac;

use pocketmine\scheduler\PluginTask;
use pocketmine\utils\TextFormat;
use pocketmine\Player;

Class CheckTask extends PluginTask {

private $instance;

public function __construct(Main $plugin){
parent::__construct($plugin);
$this->instance = $plugin;
}

public function onRun($tick){
$list = $this->instance->movePlayers;
foreach ($list as $key => $value) {
var_dump($value["distance"]);
if((int) $value["distance"] >= (int) 8.5){
$this->instance->point[$key]["distance"]++;
if((int) $this->instance->point[$key]["distance"] >= (int) 3){
$player = $this->instance->getServer()->getPlayer($key);
if($player instanceof Player){
$player->kick(TextFormat::RED."#HACK Speed");
}
}
} else {
$this->instance->movePlayers[$key]["distance"] = 0;
}
}
}

}
?>
97 changes: 49 additions & 48 deletions src/ac/Main.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,76 +6,77 @@
use pocketmine\plugin\PluginBase;
use pocketmine\network\protocol\AdventureSettingsPacket;
use pocketmine\event\server\DataPacketReceiveEvent;
use pocketmine\network\protocol\UpdateAttributesPacket;
use pocketmine\event\player\PlayerJoinEvent;
use pocketmine\event\player\PlayerQuitEvent;
use pocketmine\event\player\PlayerKickEvent;
use pocketmine\event\player\PlayerMoveEvent;
use pocketmine\entity\Effect;
use pocketmine\utils\TextFormat;
use pocketmine\network\protocol\UpdateAttributesPacket;
use pocketmine\Player;

class Main extends PluginBase implements Listener {

#เอาไปใช้ดีก็ขอบคุณกันนิดนึง
#By TIGER OWNER APPLECRAFt

#AppleCraft ip : applecraft.cf port : 19132
public $movePlayers = [];

public $players = [];
public $point = [];

public function onEnable() {
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$this->getServer()->getScheduler()->scheduleRepeatingTask(new CheckTask($this), 20);
}

public function onPlayerKick(PlayerKickEvent $event){
if($event->getReason() === "Sorry, hack mods are not permitted on Steadfast... at all."){
$event->setCancelled(true);
}
}

public function onPlayerJoin(PlayerJoinEvent $event){
$this->players[$event->getPlayer()->getName()] = 0;
$player = $event->getPlayer();
$this->movePlayers[$player->getName()]["distance"] = 0;
$this->point[$player->getName()]["distance"] = 0;
}

public function onPlayerQuit(PlayerQuitEvent $event){
$player = $event->getPlayer();
unset($this->movePlayers[$player->getName()]);
unset($this->point[$player->getName()]);
}

public function onPlayerMove(PlayerMoveEvent $event){
$player = $event->getPlayer();
$oldPos= $event->getFrom();
$newPos = $event->getTo();
if(!$player->isCreative() and !$player->isSpectator() and !$player->isOp() and !$player->getAllowFlight()){
$this->movePlayers[$player->getName()]["distance"] += sqrt(($newPos->getX() - $oldPos->getX()) ** 2 + ($newPos->getZ() - $oldPos->getZ()) ** 2);
}
}

public function onRecieve(DataPacketReceiveEvent $event) {
$player = $event->getPlayer();
$packet = $event->getPacket();
if($packet instanceof UpdateAttributesPacket){ #กัน Player ส่ง Data AttributesPacket เพราะมันเกี่ยวกันเลือด อาหาร Speed การเดิม //พบคน Hack อาการนี้น้อย
var_dump($player->getName()." Hack AttributesPacket");
$player->kick("HACK AttributesPacket");
if($packet instanceof UpdateAttributesPacket){
$player->kick(TextFormat::RED."HACK UpdateAttributesPacket");
}
if ($packet instanceof AdventureSettingsPacket) {
switch ($packet->flags) {
case 614: #กัน Fly ชั้นที่ 1 เช้ค packet ใช้ปุ่มลอย ไม่เตะมั่ว 100%
if(!$player->isCreative() and !$player->isSpectator() and !$player->isOp() and !$player->getAllowFlight()){
var_dump($player->getName()." Hack Fly");
$player->kick("HACK Fly");
}
break;
case 102: #กัน Fly ชั้นที่ 1 เช้ค packet ใช้ปุ่มลอย ไม่เตะมั่ว 100%
if(!$player->isCreative() and !$player->isSpectator() and !$player->isOp() and !$player->getAllowFlight()){
var_dump($player->getName()." Hack Fly");
$player->kick(TextFormat::RED."HACK Fly");
}
break;
default:
break;
}
if($packet instanceof SetPlayerGameTypePacket){
$player->kick(TextFormat::RED."HACK SetPlayerGameTypePacket");
}
}

public function PlayerMove(PlayerMoveEvent $event){
$player = $event->getPlayer();
if(!$player->isCreative() and !$player->isSpectator() and !$player->isOp()){
/* if(!$player->hasEffect(Effect::SPEED)){ #กัน TapTelePort เตะทันทีที่วาป โอกาศ 80% กันได้ กัน Speed ได้แค่ 10% ไม่เตะมั่ว 80%
if(abs(round(($event->getTo()->getX() - $event->getFrom()->getX()) * ($event->getTo()->getZ() - $event->getFrom()->getZ()),3)) >= 3){
var_dump($player->getName()." Hack Speed");
$player->kick(TextFormat::RED."Hack Speed");
if($packet instanceof AdventureSettingsPacket){
if(!$player->isCreative() and !$player->isSpectator() and !$player->isOp() and !$player->getAllowFlight()){
switch ($packet->flags){
case 614:
case 102:
case 615:
case 103:
$player->kick(TextFormat::RED."HACK Fly and NoClip");
break;
default:
break;
}
}*/
if(!$player->getAllowFlight() and !$player->hasEffect(Effect::JUMP)){ #กัน โดดสูงๆ โอกาศป้องกันขั้นนี้ 90% ไม่เตะมั่ว 100%
if(round($event->getTo()->getY() - $event->getFrom()->getY(),3) === 0.375) {
$this->players[$player->getName()] ++;
}else{
$this->players[$player->getName()] = 0;
}
if($this->players[$player->getName()] >= 3){
var_dump($player->getName()." Hack HighJUMP");
$player->kick(TextFormat::RED."Hack HighJUMP");
if((($packet->flags >> 9) & 0x01 === 1) or (($packet->flags >> 7) & 0x01 === 1) or (($packet->flags >> 6) & 0x01 === 1)){
$player->kick(TextFormat::RED."HACK Fly and NoClip");
}
}
}
}
}
}

0 comments on commit 649fe66

Please sign in to comment.