Тема уже давно не обновлялась, поэтому пора добавить пару скриптов для 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.
Скрипты сделал я, но за последствия, возникшие в ходе их использования, отвечаете Вы...