Версия Minecraft
1.12.2

sk9zist :l

Исправился
981
18
157
1) как осуществить ходьбу по воле/лаве
2) как сделать ну, типа пробитие брони и выбитие оружия из рук другого игрока
3) ночное видение при освещении 0
4) увеличение силы действия зелий
5) притягивание вещей
6) плавка сразу как в инвентарь попала руда
7) подводное дыхание если ты под водой
8) и, наконец: Как перенаправить получаемый урон другому игроку (с опред. предм. в инвентаре) и ещё, перенаправление также работает только если у тебя в инвентаре определенный предмет лежит

Вопросы простые да, так что прошу отвечать подробно пожалуйста
 
Решение
Да йопто, в onUpdate в своем предмете проверяй наличие предмета в инвентаре и вешай потион на персонажа, при отсутствии потион сам уберется, вешай на 3 секунды

Java:
    public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
    {
        super.onUpdate(par1ItemStack, par2World, par3Entity, par4, par5);

        if (par3Entity instanceof EntityLiving)
        {
            EntityLiving el = (EntityLiving)par3Entity;
            el.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0));
        }
    }

А в эвентхандлере своем метод сделай типо potionInventoryNoRender(сам назови как нить) и отменяй рендер потиона в инвентаре
1,038
57
229
Вопросы простые да, так что прошу отвечать подробно пожалуйста
А может это в коммерческий раздел?

7) подводное дыхание если ты под водой
такой предмет уже есть

4) увеличение силы действия зелий
не совсем понятны вопрос, нужен пример


2) как сделать ну, типа пробитие брони и выбитие оружия из рук другого игрока
а ты сам не догадываешься как? Событие получения урона..
 

sk9zist :l

Исправился
981
18
157
Хук в BlockFluidBase#getCollisionBoundingBox;
Я специально не задавал вопросы где хуки... Хуки я всё-же не люблю..
3 World#getLight == 0
7 EntityPlayer#isInsideOfMaterial(Material.WATER)
Спасибо!!

8) эвент получения урона, проверяешь наличие предмета у жертвы и передаешь урон нападавшему.
Ну вот, я так и просил не отвечать.. А как отнимать опред. количество хпшек у другого игрока?
А как получать инвентарь игрока? И если ты получаешь инвентарь игрока, то ты получаешь сразу все итемы или как? И, ведь существует такая штука @p в командах, как обнаружить близайшего игрока с помощью неё?
 
Последнее редактирование:

sk9zist :l

Исправился
981
18
157
не совсем понятны вопрос, нужен пример
Типо, пьёшь ты зелье какое-нибудь, при наличии предмета в инвентаре = его время действия, сила (ну типа, существует же например зелье вреда 2 уровня, так и тут)
 
643
6
14
Ты хочешь сделать то, не знаешь что, а если тебе дадут код - ты скопипастишь и ничего не поймешь.
Зачем тебе это? Начни с малого.
При наличии предмета в инвентаре(на клиентской стороне)
Для начала тебе нужно получить игрока,ниже ты получаешь его клиентскую версию.
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
Затем, тебе нужно создать условие, что если у игрока(player) имеется предмет(hasItem), то выполняется условие
Пример кода:
if(player.inventory.hasItem(ItemList.item_backpack1)) {
                GL11.glPushMatrix();
                super.renderPlayerAPI.getModelBipedMainField().bipedBody.postRender(0.0625F);
                GL11.glTranslatef(0.0F, 0.3F, 0.25F); //translateX, translate Y, translateZ
                GL11.glRotatef(180.0F, 0.0F, 90.0F, 0.0F); // rotateX, rotateY, rotateZ
                GL11.glRotatef(180.0F, 0.0F, 0.0F, 90.0F); // rotateX, rotateY, rotateZ
                GL11.glScalef(0.65F, 0.65F, 0.6F); // scaleX, scaleY, scaleZ
                mc.getTextureManager().bindTexture(ModelList.textureArmorBackpack);
                ModelList.modelArmorBackpack.renderAll();
                GL11.glPopMatrix();
            }
Но запомни, это всего лишь пример.
 

sk9zist :l

Исправился
981
18
157
Ты хочешь сделать то, не знаешь что, а если тебе дадут код - ты скопипастишь и ничего не поймешь.
Ну во первых, я не прошу код, а если бы мне его предоставили, я бы попытался понять, хотя с тем, что мне нужно там и так будет всё понятно, мне нужно лишь знать как правильно это всё делать
EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
Спасибо, но я его уже получил.
player.inventory.hasItem(ItemList.item_backpack1)
за эту вот строчку - благодарю.
И вот, теперь мне надо найти игрока поблизости, чтобы дать ему свой полученный урон.
1) найти игрока
2) отдать ему свой урон
и ещё даже:
3) получить полученный мною урон
 
643
6
14
Не на все могу найти ответ, но прилагаю код Тимахи из темы с радаром.

Java:
for (Object o : mc.theWorld.getEntitiesWithinAABB(EntityLiving.class, aabb)) {
                    EntityLivingBase entity = (EntityLiving)o;
                    offsetX = (float)(entity.posX - mc.thePlayer.posX);
                    offsetY = (float)(entity.posZ - mc.thePlayer.posZ);
                    GL11.glPushMatrix();
                    GL11.glTranslatef(offsetX, offsetY, 0);
                    //GL11.glScalef(0.5F, 0.5F, 0.5F);
                    mc.ingameGUI.drawTexturedModalRect(-2, -2, 0, 0, 4, 4);
                    GL11.glPopMatrix();
                }
По крайней мере я даю тебе наводку.
Если что, то mc:
Minecraft mc = Minecraft.getMinecraft();
 

sk9zist :l

Исправился
981
18
157
прилагаю код Тимахи из темы с радаром
я знаю про это... Но мне нужно немного другое
мне удобнее в каждой строчке отдельно прописыватьMinecraft.getMinecraft().
и
я нашёл тему с нужным мне ответом, набрав "@p" в поиске,
вот то, что я искал:
Java:
List<EntityPlayer> entities = Minecraft.getMinecraft().world.findNearestEntityWithinAABB(EntityPlayer.class, player.getEntityBoundingBox().expand(radius, radius, radius), player);
 

sk9zist :l

Исправился
981
18
157
такой предмет уже есть
И какой же это предмет, кстати говоря?
Предметы в модах могут повторяться по свойствам, но их применение и идея - разные.
ты сам не догадываешься как? Событие получения урона..
Можете теперь пожалуйста ответить на вопрос: Как отнимать хп игрока, с таким-то никоm? @ZZZubec
И желательно бы ещё как получать этот самый урон, но ладно
 
Последнее редактирование:
1,038
57
229
И какой же это предмет, кстати говоря?
258b4e3da7.jpg


Как отнимать хп игрока, с таким-то никоm?
во время получения урона, будет информация об уроне, там же и наверняка найдется информация.
Все исходники minecraft у вас на руках в файле forge_src, который вы можете открыть и посмотреть как он устроен. Как вообще наносится урон.
Первое что мне бы пришло в голову, посмотреть кто изменяет health (поставив курсор на него и нажав Alt+F7 или Alt+F12 в IntelliJ. Или ПКМ и выбрать: найти все использования) игрока и от туда вычислить метод наносящий урон. Там наверняка есть что-нить в духе setDamage(...) или setHealth(...)
А вообще, учите джаву, учите фордж. Всё придёт, но не сразу.. а сразу только платно)
 

sk9zist :l

Исправился
981
18
157
Всё придёт, но не сразу.. а сразу только платно)
Я знаю.

Зелье? Серьезно? Я создаю предмет, который пассивно даёт видение (подводное дыхание ну) , и крафтиться он гораздо сложнее зелья, скажу я вам
Кароче. Тема частично решена, пока что никто кроме Agravain ничего полезного не рассказал..
 
1,038
57
229
Зелье? Серьезно? Я создаю предмет, который пассивно даёт видение
а нельзя посмотреть как работают зелья и сравнить с тем как работают пассивки и сравнив сделать то что нужно?
 

sk9zist :l

Исправился
981
18
157
а нельзя посмотреть как работают зелья и сравнить с тем как работают пассивки и сравнив сделать то что нужно?
Во первых, ты говорил что якобы такой предмет, который я делаю - уже есть в виде зелья. Но у меня есть отличия:
1) пассивно
2) работает под водой (не нужно выпивать, ничего!)
И как мне "сравнить с тем как работают пассивки", где мне их достать.
 
643
6
14
Да йопто, в onUpdate в своем предмете проверяй наличие предмета в инвентаре и вешай потион на персонажа, при отсутствии потион сам уберется, вешай на 3 секунды

Java:
    public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
    {
        super.onUpdate(par1ItemStack, par2World, par3Entity, par4, par5);

        if (par3Entity instanceof EntityLiving)
        {
            EntityLiving el = (EntityLiving)par3Entity;
            el.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 20, 0));
        }
    }

А в эвентхандлере своем метод сделай типо potionInventoryNoRender(сам назови как нить) и отменяй рендер потиона в инвентаре
 
Сверху