Compare commits
6 commits
Author | SHA1 | Date | |
---|---|---|---|
1000644d98 | |||
0203f6e9a0 | |||
|
57dbbe2f6c | ||
dd4c3d95e8 | |||
b7367eb4fd | |||
1f8bb46d84 |
7 changed files with 24 additions and 60 deletions
|
@ -4,4 +4,5 @@ branches:
|
|||
projects:
|
||||
Spooky:
|
||||
path: ""
|
||||
icon: "icon.png"
|
||||
...
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
## This repository was moved to [git.ad5001.eu](https://git.ad5001.eu/Ad5001/Spooky)
|
||||
# Spooky
|
||||
Halloween plugin.
|
||||
A new bossfight's waiting for you and your players. <b>The Ghost is <i>here</i></b>.
|
||||
|
|
BIN
icon.png
Executable file
BIN
icon.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 240 B |
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: Spooky
|
||||
author: Ad5001
|
||||
version: 1.0
|
||||
version: 1.0.1
|
||||
api: [3.0.0-ALPHA9]
|
||||
main: Ad5001\Spooky\Main
|
||||
commands: []
|
||||
|
|
|
@ -44,32 +44,33 @@ class Main extends PluginBase implements Listener{
|
|||
$this->getServer()->getScheduler()->scheduleRepeatingTask(new TickTask($this), 2);
|
||||
$this->getServer()->getPluginManager()->registerEvents($this, $this);
|
||||
// Resource pack
|
||||
if(!file_exists($this->getDataFolder())){
|
||||
mkdir($this->getDataFolder());
|
||||
}
|
||||
$downRP = false;
|
||||
if(!file_exists($this->getDataFolder() . "Spooky.mcpack")) {
|
||||
$downRP = true;
|
||||
echo TextFormat::toANSI("§f[Spooky] ⚪ Downloading resource pack...");
|
||||
file_put_contents($this->getDataFolder() . "Spooky.mcpack", Utils::getURL("https://download.ad5001.eu/other/Spooky/Spooky.mcpack"));
|
||||
file_put_contents($this->getDataFolder() . "Spooky.mcpack", Utils::getURL("https://github.com/Ad5001/Spooky/releases/download/1.0/Spooky.mcpack"));
|
||||
}
|
||||
echo str_repeat("\010", $downRP ? strlen(TextFormat::toANSI("§f[Spooky] ⚪ Downloading resource pack...")) : 0) . TextFormat::toANSI("§f[Spooky] ⚪ Applying resource pack... "); // Replacing latest message
|
||||
$pack = new ZippedResourcePack($this->getDataFolder() . "Spooky.mcpack");
|
||||
$r = new \ReflectionClass("pocketmine\\resourcepacks\\ResourcePackManager");
|
||||
if($pack instanceof \pocketmine\resourcepacks\ResourcePack){
|
||||
// Reflection because devs thought it was a great idea to not let plugins manage resource packs :/
|
||||
$resourcePacks = $r->getProperty("resourcePacks");
|
||||
$resourcePacks->setAccessible(true);
|
||||
$rps = $resourcePacks->getValue($this->getServer()->getResourceManager());
|
||||
$rps[] = $pack;
|
||||
$resourcePacks->setValue($this->getServer()->getResourceManager(), $rps);
|
||||
$resourceUuids = $r->getProperty("uuidList");
|
||||
$resourceUuids->setAccessible(true);
|
||||
$uuids = $resourceUuids->getValue($this->getServer()->getResourceManager());
|
||||
$uuids[$pack->getPackId()] = $pack;
|
||||
$resourceUuids->setValue($this->getServer()->getResourceManager(), $uuids);
|
||||
// Forcing resource packs. We want the client to hear the music!
|
||||
$forceResources = $r->getProperty("serverForceResources");
|
||||
$forceResources->setAccessible(true);
|
||||
$forceResources->setValue($this->getServer()->getResourceManager(), true);
|
||||
}
|
||||
// Reflection because devs thought it was a great idea to not let plugins manage resource packs :/
|
||||
$resourcePacks = $r->getProperty("resourcePacks");
|
||||
$resourcePacks->setAccessible(true);
|
||||
$rps = $resourcePacks->getValue($this->getServer()->getResourceManager());
|
||||
$rps[] = $pack;
|
||||
$resourcePacks->setValue($this->getServer()->getResourceManager(), $rps);
|
||||
$resourceUuids = $r->getProperty("uuidList");
|
||||
$resourceUuids->setAccessible(true);
|
||||
$uuids = $resourceUuids->getValue($this->getServer()->getResourceManager());
|
||||
$uuids[$pack->getPackId()] = $pack;
|
||||
$resourceUuids->setValue($this->getServer()->getResourceManager(), $uuids);
|
||||
// Forcing resource packs. We want the client to hear the music!
|
||||
$forceResources = $r->getProperty("serverForceResources");
|
||||
$forceResources->setAccessible(true);
|
||||
$forceResources->setValue($this->getServer()->getResourceManager(), true);
|
||||
echo str_repeat("\010", strlen("⚪ Applying resource pack... ")) . TextFormat::toANSI("§a✔️ Done! Spooky enabled! \n");
|
||||
}
|
||||
|
||||
|
@ -197,4 +198,4 @@ class Main extends PluginBase implements Listener{
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,25 +104,6 @@ class Ghost extends Human {
|
|||
$p->sendPopup("Music: The Return by Niviro, www.djniviro.com");
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts a sequence where the ghost is in an intense fight.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function intenseFight(){
|
||||
if(!$this->checkIfConnected()) return;
|
||||
// TODO: Custom intense fight
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts a sequence where the ghost is in an calm fight.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function calmFight(){
|
||||
if(!$this->checkIfConnected()) return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts a sequence where the ghost blinds the player,
|
||||
* slows him down (zooming effect w/ fov) and he appears invuulnerable
|
||||
|
@ -449,7 +430,7 @@ class Ghost extends Human {
|
|||
$pk->headYaw = $this->yaw;
|
||||
$pk->pitch = $this->pitch;
|
||||
$this->getPlayer()->dataPacket($pk);
|
||||
$this->getPlayer()->sendPopup("He's " . ($this->x - $this->getPlayer()->x) . ", " . ($this->y - $this->getPlayer()->y) . ", " . ($this->z - $this->getPlayer()->z) . " blocks away");
|
||||
$this->getPlayer()->sendPopup("He's " . round($this->x - $this->getPlayer()->x, 1) . ", " . round($this->y - $this->getPlayer()->y, 1) . ", " . round($this->z - $this->getPlayer()->z, 1) . " blocks away");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -43,15 +43,11 @@ class TickTask extends PluginTask {
|
|||
self::$ghosts[$i]->spawnTo(self::$ghosts[$i]->getPlayer());
|
||||
self::$ghosts[$i]->scareEnterPhase();
|
||||
break;
|
||||
case 66: // 1m06s
|
||||
self::$ghosts[$i]->intenseFight();
|
||||
break;
|
||||
case 82: // 1m22s
|
||||
self::$ghosts[$i]->movePlayerRandomly();
|
||||
self::$ghosts[$i]->repeatFunc = "move";
|
||||
break;
|
||||
case 88: // 1m28s
|
||||
self::$ghosts[$i]->calmFight();
|
||||
self::$ghosts[$i]->repeatFunc = null;
|
||||
break;
|
||||
case 95: // 1m35s
|
||||
|
@ -62,18 +58,9 @@ class TickTask extends PluginTask {
|
|||
self::$ghosts[$i]->repeatFunc = null;
|
||||
self::$ghosts[$i]->scareEnterPhase();
|
||||
break;
|
||||
case 103: // 1m43s
|
||||
self::$ghosts[$i]->intenseFight();
|
||||
break;
|
||||
case 136: // 2m16s
|
||||
self::$ghosts[$i]->calmFight();
|
||||
break;
|
||||
case 151: // 2m31s
|
||||
self::$ghosts[$i]->scareEnterPhase();
|
||||
break;
|
||||
case 153: // 2m33s
|
||||
self::$ghosts[$i]->intenseFight();
|
||||
break;
|
||||
case 168: // 2m48s
|
||||
self::$ghosts[$i]->movePlayerRandomly();
|
||||
self::$ghosts[$i]->repeatFunc = "move";
|
||||
|
@ -84,17 +71,10 @@ class TickTask extends PluginTask {
|
|||
break;
|
||||
case 183: // 3m03s
|
||||
self::$ghosts[$i]->repeatFunc = null;
|
||||
self::$ghosts[$i]->intenseFight();
|
||||
break;
|
||||
case 197: // 3m17s
|
||||
self::$ghosts[$i]->scareEnterPhase();
|
||||
break;
|
||||
case 198: // 3m18s
|
||||
self::$ghosts[$i]->intenseFight();
|
||||
break;
|
||||
case 227: // 3m47s
|
||||
self::$ghosts[$i]->calmFight();
|
||||
break;
|
||||
case 262: // 4m22
|
||||
self::$ghosts[$i]->getPlayer()->sendMessage("Mwahahahaha... Try being faster next time!");
|
||||
self::$ghosts[$i]->close();
|
||||
|
|
Loading…
Reference in a new issue