Skip to content

Commit

Permalink
อัพเดท 2.5.0 อย่าเป็นทางการ
Browse files Browse the repository at this point in the history
  • Loading branch information
tigerza117 committed May 2, 2017
1 parent 7e7ef03 commit f244bba
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 52 deletions.
2 changes: 1 addition & 1 deletion plugin.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: AntiCheat
main: ac\Main
version: 2.0.0
version: 2.5.0
api: 1.0.2
author: TIGER
description: กัน Hack Cheat
30 changes: 19 additions & 11 deletions src/ac/CheckTask.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,30 @@ public function onRun($tick){
foreach ($list as $key => $value) {
$player = $this->instance->getServer()->getPlayer($key);
if($player instanceof Player){
$player->dataPacket($npcs[$player->getName()]["remove"]);
$npcs[$player->getName()]["add"]->x = $player->x;
$npcs[$player->getName()]["add"]->y = $player->y - 2;
$npcs[$player->getName()]["add"]->z = $player->z;
$player->dataPacket($npcs[$player->getName()]["add"]);
$player->dataPacket($npcs["remove"]);
$npcs["add"]->x = $player->x;
$npcs["add"]->y = $player->y - 2;
$npcs["add"]->z = $player->z;
$player->dataPacket($npcs["add"]);
}
if((int) $value["distance"] >= (int) 8.5){
$this->instance->point[$key]["distance"]++;
if((int) $this->instance->point[$key]["distance"] >= (int) 3){
if((float) $value["distance"] > (float) 7.4){
$this->instance->point[$key]["distance"] += (float) 1;
if((float) $this->instance->point[$key]["distance"] > (float) 2){
if($player instanceof Player){
$player->kick(TextFormat::RED."#HACK Speed");
}
}
} else {
$this->instance->movePlayers[$key]["distance"] = 0;
}
}
if((float) $value["fly"] > (float) 7.4){
$this->instance->point[$key]["fly"] += (float) 1;
if((float) $this->instance->point[$key]["fly"] > (float) 2){
if($player instanceof Player){
$player->kick(TextFormat::RED."#HACK Fly");
}
}
}
$this->instance->movePlayers[$key]["distance"] = (float) 0;
$this->instance->movePlayers[$key]["fly"] = (float) 0;
}
}
}
94 changes: 54 additions & 40 deletions src/ac/Main.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@
use pocketmine\event\player\PlayerQuitEvent;
use pocketmine\event\player\PlayerKickEvent;
use pocketmine\event\player\PlayerMoveEvent;
use pocketmine\event\entity\EntityDamageByEntityEvent;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\utils\TextFormat;
use pocketmine\utils\UUID;
use pocketmine\item\Item;
use pocketmine\entity\Entity;
use pocketmine\Player;
use pocketmine\event\entity\EntityDamageByEntityEvent;
use pocketmine\event\entity\EntityDamageEvent;
use pocketmine\math\Vector3;
use pocketmine\block\Block;

class Main extends PluginBase implements Listener {

Expand All @@ -30,36 +32,16 @@ class Main extends PluginBase implements Listener {
public $npcs = [];

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 onDamage(EntityDamageEvent $event){
if($event instanceof EntityDamageByEntityEvent and $event->getEntity() instanceof Player and $event->getDamager() instanceof Player){
if($event->getEntity()->distanceSquared($event->getDamager()) >= 12){
$event->setCancelled();
}
}
}

public function onPlayerJoin(PlayerJoinEvent $event){
$id = Entity::$entityCount++;
$uuid = UUID::fromRandom();
$player = $event->getPlayer();

$pkadd = new AddPlayerPacket();
$pkadd->uuid = $uuid;
$pkadd->username = "";
$pkadd->eid = $id;
$pkadd->x = $player->x;
$pkadd->y = $player->y - 2;
$pkadd->z = $player->z;
$pkadd->x = 0;
$pkadd->y = 0;
$pkadd->z = 0;
$pkadd->yaw = 0;
$pkadd->pitch = 0;
$pkadd->item = Item::fromString(0);;
Expand All @@ -76,53 +58,85 @@ public function onPlayerJoin(PlayerJoinEvent $event){
$pkremove = new RemoveEntityPacket();
$pkremove->eid = $id;

$this->npcs[$player->getName()]["add"] = $pkadd;
$this->npcs[$player->getName()]["id"] = $id;
$this->npcs[$player->getName()]["remove"] = $pkremove;
$player->dataPacket($this->npcs[$player->getName()]["add"]);
$this->movePlayers[$player->getName()]["distance"] = 0;
$this->point[$player->getName()]["distance"] = 0;
$this->npcs["add"] = $pkadd;
$this->npcs["id"] = $id;
$this->npcs["remove"] = $pkremove;

$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 onDamage(EntityDamageEvent $event){
if($event instanceof EntityDamageByEntityEvent and $event->getEntity() instanceof Player and $event->getDamager() instanceof Player){
if($event->isCancelled()){
} else {
if(round($event->getEntity()->distanceSquared($event->getDamager())) >= 12){
$event->setCancelled();
}
}
}
}

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

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

public function onPlayerMove(PlayerMoveEvent $event){
$player = $event->getPlayer();
$oldPos= $event->getFrom();
$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);
$FlyMove = (float) round($newPos->getY() - $oldPos->getY(),3);
$DistanceMove = (float) round(sqrt(($newPos->getX() - $oldPos->getX()) ** 2 + ($newPos->getZ() - $oldPos->getZ()) ** 2),2);
if($FlyMove === (float) -0.002 or $FlyMove === (float) -0.003){
$this->movePlayers[$player->getName()]["distance"] += 3;
}
$this->movePlayers[$player->getName()]["fly"] += $FlyMove;
$this->movePlayers[$player->getName()]["distance"] += $DistanceMove;
}
}

public function onRecieve(DataPacketReceiveEvent $event) {
$player = $event->getPlayer();
$packet = $event->getPacket();
if($packet instanceof UpdateAttributesPacket){
$player->kick(TextFormat::RED."HACK UpdateAttributesPacket");
$player->kick(TextFormat::RED."#HACK UpdateAttributesPacket");
}
if($packet instanceof SetPlayerGameTypePacket){
$player->kick(TextFormat::RED."HACK SetPlayerGameTypePacket");
$player->kick(TextFormat::RED."#HACK SetPlayerGameTypePacket");
}
if($packet instanceof AdventureSettingsPacket){
if(!$player->isCreative() and !$player->isSpectator() and !$player->isOp() and !$player->getAllowFlight()){
switch ($packet->flags){
switch ($packet->flags){ //Packet ส่งขอลอย
case 614:
case 102:
case 615:
case 103:
$player->kick(TextFormat::RED."HACK Fly and NoClip");
case 102:
case 38:
case 39:
$player->kick(TextFormat::RED."#HACK Fly and NoClip");
break;
default:
break;
}
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");
$player->kick(TextFormat::RED."#HACK Fly and NoClip");
}
}
}
Expand Down

0 comments on commit f244bba

Please sign in to comment.