Сейчас опишу как сделать радар используя только E2, начнем
Нам понадобится только@name
@inputs
@outputs
@persist
@trigger
Начнем писать код чипа:
Игроки на радаре будут голограммами
Сначала нам нужно определить координаты всех игроков сервера. Воспользуемся функцией for(){}
@name asdf
interval(66)
for(N=1,numPlayers()){
holoCreate(N)
holoPos(N,entity():pos()+vec(players():entity(N):pos():x()/75,vec(players():entity(N):pos():y()/75,20))
holoScale(N,vec(0.3,0.3.0.3))}
Описание использованных функций:
for(N=1,numPlayers()){<условие>} - цикл, начинается с N=1 и заканчивается на N равное кол-ву игроков на сервере.
players():entity(N):pos() - обращаемся к позиции игрока N
Примечание: на радаре тоже есть начало координат, как и на карте(это точка с координатой 0,0,0), это сам ЧИП.
Я немного усовершенствовал свой радар и добавил разные цвета к каждому игроку и сделал EGP, показывающий цвета соответствующие игрокам.
Автор: Niro
Комментарии
14.01.2012
Профиль Ответ Цитата
31.07.2011
Профиль Ответ Цитата
10.07.2011
Профиль Ответ Цитата
23.06.2011
Профиль Ответ Цитата
17.05.2011
Профиль Ответ Цитата
11.05.2011
Скажите плиззз!!!
Профиль Ответ Цитата
14.05.2011
Профиль Ответ Цитата
10.05.2011
Профиль Ответ Цитата
09.05.2011
Профиль Ответ Цитата
10.05.2011
Профиль Ответ Цитата
09.05.2011
Профиль Ответ Цитата
08.05.2011
Итак, вот мой кривой, но работающий код:
@inputs
@outputs
@persist N H
@trigger
if(first()|dupefinished())
{ N=numPlayers()
for(I=1,N)
{holoCreate(I)
holoPos(I,entity():pos()+vec(players():entity(I):pos():x()/15,
players():entity(I):pos():y()/15,
players():entity(I):pos():z()/15+15))
holoScale(I,vec(0.3,0.3,0.3))
holoCreate(I+40)
holoModel(I+40,"hqicosphere")
holoModel(I,"hqcylinder")
holoPos(I+40,holoEntity(I):pos()+vec(0,0,3))
holoScale(I+40,vec(0.1,0.1,0.1))
holoParent(I+40,I)
if(players()[I,entity]:isAdmin())
{holoColor(I,vec(255,0,0))}
elseif(players()[I,entity]:isSuperAdmin())
{holoColor(I,vec(0,255,0))}
else{holoColor(I,vec(0,0,255))}
}}
interval(100)
for(I=1,N)
{holoPos(I,entity():pos()+vec(players():entity(I):pos():x()/15,
players():entity(I):pos():y()/15,
players():entity(I):pos():z()/15+15))
holoAng(I,players():entity(I):angles())
if(changed(players():entity(I):health()))
{H=players():entity(I):health()
if(players():entity(I):health()==100){holoColor(I+40,vec(0,255,0))}
elseif(H<=75 & H>50)
{holoColor(I+40,vec(75,175,0))}
elseif(H<=50 & H>25)
{holoColor(I+40,vec(150,125,0))}
elseif(H<=25& H>10)
{holoColor(I+40,vec(175,75,0))}
elseif(H<=10 & H>0)
{holoColor(I+40,vec(255,0,0))}
elseif(players():entity(I):isAlive()!=1)
{holoColor(I+40,vec(0,0,0))}
}
}
Профиль Ответ Цитата
06.02.2012
Профиль Ответ Цитата