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

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

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

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

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


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

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

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

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Делимся скриптами
« Ответ #0 : 22/04/2013 12:51:30 »

Тема уже давно не обновлялась, поэтому пора добавить пару скриптов для Unimod сюда:
1. Запись ника хоста. Ник можно будет получить через hostname. (вызов функции должен быть прописан в Autoexec.rul или в функции onFirstFrame() в autoexec.lua!!!)
hostname=nil
function getHost()
local pl = playerList()
hostname=playerInfo(pl[1]).name
end
2. Улучшенное создание объекта. Теперь если вы укажете ник игрока (nick), то предмет (x) будет создан в координатах его мыши. Также вы можете получить последний созданный объект через переменную lastCreatedObj
--Create Object At Player's Mouse
lastCreatedObj=nil
function cr(x,nick)
 if nick==nil then nick=hostname end
 local r
 r=createObject(x,playerMouse(playerGetByName(nick)))
 if r==nil then print('ERROR>Unable to create object "'..x..'" at '..nick..'\'s mouse. Invalid object.') else lastCreatedObj=r end
 return r
end
--
3. Скрипт, который я называю: "Как заставить камень\Урчина\Гекубу\Некроманта\Игрока "CrazyBrony"\Кого_угодно заговорить?".
function sayobj(text,obj)
if obj==nil then obj=playerGetByName(hostname) end
createBubble(obj,text)
end
В качестве аргументов передаётся текст (text) и объект-userdata (obj). Пример работы во вложении.

Здесь не используется слишком много хитрых функций. Только то, что заложено разработчиками Unimod 0.6 pre-beta.
В 1м коде достаётся 1 игрок из игровой таблицы и значение параметра name заносится в hostname переменную.

2я функция не намного сложнее. Здесь изменён источник с me на функцию возврата игрока(playerGetByName(nick)). Если код не сработал и в консоли появилось "Not found", значит игрока с заданным ником нет на сервере. Если ник не указан, то будет взят игрок-хост(см. 1й код)

3я функция это почти то же самое, что и просто createBubble, но в этой функции предотвращена передача пустого значения nil (вместо nil будет передан игрок-хост (см. 1й код)) Если как объект будет передан игрок, то над ним появится облако подобное сообщению в чате, но регистрации в логе консоли не будет, как в команде say.

Цитата: 2530
Скрипты сделал я, но за последствия, возникшие в ходе их использования, отвечаете Вы...
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы
Расширенный поиск  
 

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