forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Толпа вопросов. (http://forum.boolean.name/showthread.php?t=9127)

Dark_Fox 12.09.2009 14:13

Толпа вопросов.
 
1. У меня есть функция которая показывает полоску жизни противника.
Все это работает, если я ударил противника(параметр stasys стал равен 1)
Но мне нужно сделать что если я ударил другого монстра, у прошлого параметр стал 0.
Делаю я это так(ибо мне посоветовали, сперва все обнулять а потом по новой ставить параметр)
Код:

For ro.pro=Each  pro
If EntityDistance (user,ro\model)<4
If mouse_1
If ro\Statys>0
For ro.pro=Each  pro 
    ro\Statys=0 
Next
EndIf
    ro\Statys=1 
  ro\head#=ro\head#-yron
EndIf 
EndIf
Next

Но в в ответ только "Предмет не существует".
Подскажите(и бо я не втыкаю в чем тут глюк) как это сделать и что бы полоска жизни не про подала, при "пустом" ударе, а только при при ударе нового противника(кто играл в Метин2, понял наверное о чем я).

Spy4433 12.09.2009 14:22

Ответ: Толпа вопросов.
 
если я правельно понял.. то должно получится что то типо того
Код:


For ro.pro=Each  pro
ro\Statys=0
if EntityDistance (user,ro\model)<4 then
        If mouse_1 then
        ro\Statys=1 
        ro\head#=ro\head#-yron
        endif
endif

next

могу ошибаться

Dark_Fox 12.09.2009 14:48

Ответ: Толпа вопросов.
 
Не, не то.
В этом в коде, постоянно обновляется параметр "статуса".
То есть полоска жизни исчезает сразу же после вызова.

Вот точнее описываю, что я задумал
Уме есть 3 бота.
у ударяю одного(его статус стал равным 1), а подхожу к другому видя к примеру первого и бью его(второго). у первого пропадает полоска и появляется у второго(которого я ударил). Если я отойду от ботов и просто ударю воздух, то показываться будет жизнь последнего ударенного(не не умершего).

Spy4433 12.09.2009 15:11

Ответ: Толпа вопросов.
 
Код:

For ro.pro=Each  pro
If mouse_1 then
if EntityDistance (user,ro\model)<4 then
un_select()
ro\Statys=1 
ro\head#=ro\head#-yron
endif
endif
next


function un_select()
For ro.pro=Each  pro
ro\status=0
next
end function

хм :)) попытка #2 )

Spy4433 12.09.2009 15:23

Ответ: Толпа вопросов.
 
возможно даже нужно вынести нажатие мыши за цикл

Dark_Fox 12.09.2009 15:58

Ответ: Толпа вопросов.
 
Ну попытка №2 это тоже самое что и у мя, тока проверка вынесена в функцию.
Цитата:

возможно даже нужно вынести нажатие мыши за цикл
А не че, что она будет работать один раз(если я правильно помню)

:SOS: Помогите кто нить(советом, пальцем(:-D ), кодом), ибо запарка тока в этом.

FrankH 12.09.2009 21:56

Ответ: Толпа вопросов.
 
Намного проще использовать Handle
Цитата:

global Statused
NameEntity ro\pivot,Handle(ro); для всех при создании

если ударил тогда SetUnit(ударенный): ResetUnit(Statused): Statused=ударенный

Function SetUnit(t)
ro.pro=Object.pro(EntityName(t))
ro\status=1
End Function

Function ResetUnit(t)
ro.pro=Object.pro(EntityName(t))
ro\status=0
End Function

Dream 13.09.2009 00:10

Ответ: Толпа вопросов.
 
Цитата:

Сообщение от Dark_Fox (Сообщение 118327)
1. У меня есть функция которая показывает полоску жизни противника.
Все это работает, если я ударил противника(параметр stasys стал равен 1)
Но мне нужно сделать что если я ударил другого монстра, у прошлого параметр стал 0.
Делаю я это так(ибо мне посоветовали, сперва все обнулять а потом по новой ставить параметр)
Код:

For ro.pro=Each  pro
If EntityDistance (user,ro\model)<4
If mouse_1
If ro\Statys>0
For ro.pro=Each  pro 
    ro\Statys=0 
Next
EndIf
    ro\Statys=1 
  ro\head#=ro\head#-yron
EndIf 
EndIf
Next

Но в в ответ только "Предмет не существует".
Подскажите(и бо я не втыкаю в чем тут глюк) как это сделать и что бы полоска жизни не про подала, при "пустом" ударе, а только при при ударе нового противника(кто играл в Метин2, понял наверное о чем я).

Проблема в том что у тебя два вложеных цыкла которые оперируют одинаковыми переменными,
Код:

For ro.pro=Each  pro
For ro.pro=Each  pro 
Next
Next

ro - у тебя за один проход первого цыкла доходит до последнего своего значения

Dream 13.09.2009 00:17

Ответ: Толпа вопросов.
 
если тебе всётаки надо перебирать кадлый праз всё, то
Цитата:

For ro.pro=Each pro
If EntityDistance (user,ro\model)<4
If mouse_1
If ro\Statys>0
t_handle=handle(ro);
For ro.pro=Each pro
if(hendle(ro)!=t_handle)
ro\Statys=0
Next
ro=Object(t_handle). pro;
EndIf
ro\Statys=1
ro\head#=ro\head#-yron
EndIf
EndIf
Next
может немного с синтаксисом под партачил, не помню уже)

Dark_Fox 18.09.2009 00:36

Ответ: Толпа вопросов.
 
Че то не работает.
С синтаксисом че то(в добавок в хелпе нема).

2.Посоветуйте библиотеку для использования окон.
Ну что бы можно было открывать файлы,сохранять.
Что бы не особо за мудреная(есть просто сменил параметр в окошек, и это ушло в переменную).хорошо если еще с инструкцией.

3.Как вырезать один предмет из другого???То есть мне нужно срезанный на половину конус или его половина, котора(я\ый) получен(а\) с помощью вычитания из первого меша(конус) другого меша?

4.Можно ли получить текстурную развертку в программе(кодом и др.)???
и ей сохранить?

5.Есть противник. Состоит от из двух частей.
Башни и орудия. как сделать наведение орудия, всего этого на перса и чтобы все было нормально(оружие смотрела на героя и наклонялось(поворачивалось) в зависимости от высоты, и наводилась(Y) на перса, и наводку для башни)?
команда наведения предмета на другой предмет не прокатило.

Dream 18.09.2009 20:16

Ответ: Толпа вопросов.
 
кури Object на форуме не раз поднималась эта тема. и Вобще советую прочитать ФАКЮ и Blitz Et Cetera
по поводу пятого вопроса кури AlignToVector entity,vector_x#,vector_y#,vector_z#,axis или сам расчитывай.

Dark_Fox 23.09.2009 22:50

Ответ: Толпа вопросов.
 
Цитата:

кури Object на форуме не раз поднималась эта тема
че то плохо курится. кто может по асе и др. объяснить?


Часовой пояс GMT +4, время: 05:27.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot