NoX World - форум об игре NoX

 
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  
Сейчас онлайн стрима нет!
Сейчас на сервере никого нет!

Обязательно все ознакомьтесь с новыми Правилами Портала!

Актуальные новости:
IP сервера изменён! Новый IP: 45.144.64.229. Сервер также доступен через Westwood Online (XWIS, игру через сервер)


Важные темы:
Как играть по сети? Понятное руководство!
Правила Сервера NoxWorld.
Как помочь форуму финансово?

Автор Тема: Делимся скриптами  (Прочитано 43833 раз)

0 Пользователей и 1 Гость смотрят эту тему.

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards

Надо подновить чутка тему. А то сильно увлёкся исследованиями, что этот тред совсем вылетел из головы.
Сегодня я выложу часть скриптов, используемые на моём сервере по сей день. В них вы не найдёте чего-то принципиально нового - эти функции просто удобные обёртки под Unimod функционал.

1. Мгновенное убийство игрока (даже под неуязвимостью бесконечной длительности). Функция "перегружена": если передано число, то будет убит игрок по индексу из таблицы игроков; иначе будет убит игрок по нику.
Код: (Lua) [Выделить]
function kill(nick)
local obj
local msg
if type(nick)=="number" then
obj=playerList()[nick]
else
obj=playerGetByName(nick)
end
buffApply(obj,16,1)
sendChat(32,'Slayed player '..playerInfo(obj).name,1,1)
end
Spoiler (click to show/hide)
2. Телепортация игрока в координаты. На вход функции подаётся 3 параметра: ник игрока, координата X, координата Y.
Код: (Lua) [Выделить]
function teleportToCoor(obj,x,y)
unitMove(playerGetByName(obj),x,y)
sendChat(32,'Player '..obj..' was teleported to ('..x..';'..y..')',1,1)
end
3. Телепортация игрока в точку его курсора. На вход подаётся ник этого игрока.
Код: (Lua) [Выделить]
function teleportToCur(obj)
x,y=playerMouse(playerGetByName(obj))
unitMove(playerGetByName(obj),x,y)
sendChat(32,'[SERVER]Player '..obj..' was teleported to ('..x..';'..y..')',1,1)
end
4. Телепортация игрока к игроку. На вход передаётся 2 строки: кого телепортировать и к кому телепортировать.
Код: (Lua) [Выделить]
function teleportToPlayer(pl1,target)
local x,y=unitPos(playerGetByName(target))
unitMove(playerGetByName(pl1),x,y)
sendChat(32,'[SERVER]Player '..pl1..' was teleported to player '..target,1,1)
end
5. Дать игроку предмет в инвентарь. На вход подаётся 2 строки: что дать(имя из thing.bin) и кому дать (ник).
Код: (Lua) [Выделить]
function give(obj, nick)
if nick==nil then nick=hostname end
if nick==nil then return 0 end
x=createObjectIn(obj,playerGetByName(nick))
print('Object "'..obj..'" now in '..nick.."'s inventory!")
return x
end
Spoiler (click to show/hide)

Мои скрипты становятся всё больше и мне всё труднее находить что-то более-менее завершенное и готовое к размещению. В данный момент я работаю над большой таблицей - она должна стать частью большой документации по Unimod (ибо нормальной документации по прежнему нет). Из запланированного пока есть только спецэффекты. Так что тема не будет пополняться в ближайшие месяца два как минимум.
А вообще, мне интересно, помогло ли кому-нибудь когда-нибудь то, что здесь выложено?
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы
Расширенный поиск  
 

Страница сгенерирована за 0.064 секунд. Запросов: 24.