剣に雷効果付属 ついでにコード紹介

Modding・サーバPlugin制作・ツール制作など、開発関連の質問があればこちらにお願い致します。
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.95389)

剣に雷効果付属 ついでにコード紹介

投稿記事by あれく » 2013年4月24日(水) 22:34

たびたびな質問ですいません。
今回は、武器に雷を落とせる効果を付属してみたのですが…
コード: 全て選択
   public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer)
        {
        if(itemstack.getItemDamage() == 0)
        {
        MovingObjectPosition movingobjectposition = entityplayer.rayTrace(75.0D, 1.0F);
        if(movingobjectposition == null)
        {
        return itemstack;
        }
        Vec3 vec3d = movingobjectposition.hitVec;
        double x = vec3d.xCoord;
        double y = vec3d.yCoord;
        double z = vec3d.zCoord;
        int i = MathHelper.floor_double(x);
        int j = MathHelper.floor_double(y);
        int k = MathHelper.floor_double(z);
        if(world.canBlockSeeTheSky(i, j, k) == false)        {        return itemstack;       
}
       EntityLightningBolt entitybolt = new EntityLightningBolt(world, 0D, 0D, 0D);
       entitybolt.setLocationAndAngles(x, y -1, z, 0, 0.0F);
 {                                   
world.spawnEntityInWorld(entitybolt);


です。
ですがこのままだと雷は落ちますが、自分が大ダメージを受けてしまいます。
どういったように直せばこの現象は直るでしょうか?
わかる方がいらしたら説明お願いします。

追伸
まあどういうコードかは1度使ってみればわかると思います。
半径100ます?以内のブロックの上面を右クリックすると雷が落ちる、というコードです。
コード: 全て選択
   public boolean hitEntity(ItemStack par1ItemStack, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving){        lightningEffect(par2EntityLiving);
        par1ItemStack.damageItem(1, par3EntityLiving);
         return true;}public void lightningEffect(EntityLiving par1EntityLiving){         double x = par1EntityLiving.posX;         double y = par1EntityLiving.posY;
         double z = par1EntityLiving.posZ;
         World world = par1EntityLiving.worldObj;
         EntityLightningBolt lightning = new EntityLightningBolt(world, x, y, z);
         lightning.setPosition(x, y + 1, z);
         world.spawnEntityInWorld(lightning);}

ちなみにこのコードは、殴った相手に雷が落ちるコードです。
相変わらず殴ると自分が巻き込まれます。
使ってみたい、というドMの方がいらっしゃるのであれば。
なんか基本的にマイクラのMODやらテクスチャやらをいじくり倒して遊んでます。
(人にはあまり見せないけど)
たまにマルチに顔見せたりの不定期生活。
アバター
あれく
ID:5f558990
木を殴ってる
 
記事: 12
登録日時: 2012年12月02日(日) 15:08

  • (PostNo.95637)

Re: 剣に雷効果付属 ついでにコード紹介

投稿記事by mozipi » 2013年4月26日(金) 16:36

継承して、EntityLightingBoltのonUpdateを書き換えるしかないかと...

一応、ダメージ判定範囲内にいるEntityを取得するコードはこれです
double d0 = 3.0D;
List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getAABBPool().getAABB(this.posX - d0, this.posY - d0, this.posZ - d0, this.posX + d0, this.posY + 6.0D + d0, this.posZ + d0));

for (int l = 0; l < list.size(); ++l)
{
Entity entity = (Entity)list.get(l);
entity.onStruckByLightning(this);
}

ここのentity.onStru(ry
の部分にif文を書き加えればいいと思います。
画像
UsefulMilletなどの製作を行っています。
よろしければどうぞ。
ニコニコミュニティ:co2105535
サイト:http://mozipi.jpn.ph/

NAGServerの運営もしております。ぜひ投票・サーバーログインお願い致します
画像
アバター
mozipi
ID:0736aa99
レッドストーン掘り
 
記事: 569
登録日時: 2011年12月26日(月) 19:44
お住まい: 岐阜

  • (PostNo.304899)

Re: 剣に雷効果付属 ついでにコード紹介

投稿記事by sin5804 » 2017年7月17日(月) 01:31

そのコードはどうやって使うのですか?
sin5804
ID:2081a7f2
 


Return to 質問:開発・制作関連

x