[pocketmine-mp] プラグインサンプルコード集

pocketmine-mpのプラグインのサンプルコード集です。
ここのソースは肉なり焼くなり好きにしてください。
https://gist.github.com/haniokasai/


プレイヤーが殺した時お金をもらう。
<?php
use pocketmine\Player;
use pocketmine\event\player\PlayerDeathEvent;
public function deathdesu(PlayerDeathEvent $event){
if($event->getEntity()->getLastDamageCause() instanceof EntityDamageByEntityEvent){
$player = $event->getEntity();
if ($player instanceof Player){
$killer =$event->getEntity()->getLastDamageCause()->getDamager();
$killername = $killer->getName();//殺した人
$shinda =$event->getEntity();//殺されたプレイヤー
$shindaname = $event->getEntity()->getName();
$this->getServer()->getPluginManager()->getPlugin("EconomyAPI")->addMoney($killername,1);
}
}
}




チーム分けのphpのコードです。
このコードはコアがのhpが0になったチームには入らないはずです。
チームの人数も確認できます。
この例では4チームですが、いくらでもふやせます。
参考 
http://blog.g34.co/auto_team_join/


<?php
public function onEnable(){
$this->team = [1 => [] , 2 => [] , 3 => [], 4 => [] ];
$this->joinedpvp = [];
$this->teamcore = [1, 2, 3, 4];
}
public function onCommand(CommandSender $sender, Command $command,$label,array $args){
switch($command->getName()){
case "stat":{
$sender->sendMessage(TextFormat::RED ."[HoneyPVP]各チームの人数です。");
$sender->sendMessage(TextFormat::RED ."[[レッド]] ".count($this->team[1])."人、[コア]".$this->teamcore[1]."HP");
$sender->sendMessage(TextFormat::RED ."[[ラピ]] ".count($this->team[2])."人、[コア]".$this->teamcore[2]."HP");
$sender->sendMessage(TextFormat::RED ."[[ゴールド]]".count($this->team[3])."人、[コア]".$this->teamcore[3]."HP");
$sender->sendMessage(TextFormat::RED ."[[エメ]] ".count($this->team[4])."人、[コア]".$this->teamcore[4]."HP");
break;
}
case "pvp":{
$name = $sender->getName();
if(isset($this->joinedpvp[$name] )){
if($this->joinedpvp[$name] == 1 ){
$sender->sendMessage(TextFormat::RED ."[HoneyPVP]あなたはすでにpvpに参加しています。");
break;
}
}else{
$this->joinedpvp[$name] = 1;
if(min($this->team[1],$this->team[2],$this->team[3],$this->team[4]) == $this->team[1] and $this->teamcore[1] != 0){
$this->team[1][$name] = 1;
}elseif(min($this->team[2],$this->team[3],$this->team[4]) == $this->team[2] and $this->teamcore[3] != 0){
$this->team[2][$name] = 1;
}elseif(min($this->team[3],$this->team[4]) == $this->team[3] and $this->teamcore[3] != 0){
$this->team[3][$name] = 1;
}elseif($this->teamcore[4] != 0){
$this->team[4][$name] = 1;
}else{
$sender->sendMessage(TextFormat::GREEN."[HoneyPVP]問題が発生しました、管理者に報告お願いします。PVPCMDERROR");
break;
}
break;
}
}}}


コメント

  1. 返信
    1. 半ばパブリックドメイン(著作権放棄)なので遠慮なく使ってくださいね!

      削除
    2. こんなの作れてすごいですね(t^t)僕はまだ修行中です泣 難しい笑

      削除
    3. 今後もサンプルコード追加する予定ありますので、それも参考にしてくれたらいいと思います。

      削除

コメントを投稿

このブログの人気の投稿

pocketmine-mp隠れたおすすめ プラグイン一覧

[Nukkit-JAVA版PocketMine-MP] Nukkitのプラグインを作る!

[pocketmine-mp]pocketmineの0.14対応化 pocketmine-mp.phar src