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

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

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

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

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


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

Автор Тема: Вопросы по UniMod-y  (Прочитано 103574 раз)

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

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #200 : 16/04/2013 10:35:51 »

Откровенно говоря команды cr и setMe устарели (как минимум, по моему мнению). Её реализацию можно посмотреть в lua файлах (она не захардкодена в ЮниМоде, её можно менять без рекомпиляции DLL-ки).

Я пользуюсь напрямую createObject, playerGetByName и playerMouse (возможно ошибаюсь в названии последней).
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #201 : 16/04/2013 13:33:02 »

Понятно. Тогда я переделаю функцию.


А как наложить на игрока энчант (если можно)?
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #202 : 16/04/2013 15:14:49 »

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

TheSim

  • Клан "NoX Craft"
  • Постоялец
  • *
  • Карма: 31
  • Оффлайн Оффлайн
  • Сообщений: 287
  • Awards Активным участникам сходок - 2013 За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #203 : 17/04/2013 22:17:08 »

playersList кажется. Вообще исходники опубликованы, там можно все найти
Записан

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #204 : 17/04/2013 23:07:16 »

А помом playerInfo. Функции надо передать юзердату игрока, например команда playerGetByName её по имени игрока ищет
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #205 : 18/04/2013 02:06:08 »

То что playerInfo я уже понял. Я не могу понять какой параметр нужно подставить вместо ???, чтоб получить статы:
playerInfo(playerInfo(playerGetByName(hostname)).???
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #206 : 18/04/2013 08:01:37 »

Зачем дважды playerInfo?

playerInfo(playerGetByName("2530"))

Или playerInfo(playerGetById(31)) (под номером 31 всегда хост)
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #207 : 18/04/2013 08:04:27 »

А, а для вывода того что дает playerInfo например заюзай print(json.encode(playerInfo(...)))
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #208 : 18/04/2013 16:47:16 »

Кстати, функция unitHP работает неправильно... Там выводится идиотически огромное число (6-7 значное), которое равным нулю не становится, когда умрёшь.

Да, я опечатался. Я писал прошлый пост убегая в школу.

Я написал код типа:
isWorking=false
txt=nil
x=0
y=0
function DrawString(text,tx,ty)
txt=text
x=tx
y=ty
isWorking=true
print('Рисуем строку')
StringRedraw()
end
function StringRedraw()
if isWorking == true then stringDraw(txt,x,y);setTimeout(StringRedraw,1) end
end
function RemoveString()
isWorking=false
print('Ф-ция остановлена')
end
Но функция не работает должным образом. Что у меня не правильно? stringDraw - строка рисуется в игровом мире или только на экране? Я не вижу строку нигде.
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #209 : 17/05/2013 17:19:41 »

У меня есть 4 вопроса по реакциям:
1. По реакции playerOnSpell. Мне не совсем понятно как её использовать. Я пробовал делать так, как указано в этой теме: Nox не реагирует на спеллы. Можете разъяснить попродробнее как она работает?

2. Реакция playerOnJoin. Информация, приходящая в функцию, является юзердатой чего-то, но точно не игрока!
Код:
playerOnJoin=function(plr)
print('Welcome to my server, '..playerInfo(plr).name)
end
...не выполняется и выдаёт ошибку типа: userdata is not a player! Попытка чтения координат привела к результату (0;0). Что приходит в plr?

3. netOnResp. Что она возвращает и как с ней работать?

4. Чем отличается clientOnJoin от playerOnJoin?
Помогите, пожалуйста!
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #210 : 22/05/2013 10:11:20 »

1. Без идей, никогда не использовал и реализовывал не я, ждём Дио или Сима. Там передаёт кто кастовал, на кого кастовал, и ещё какие-то параметры спелла. Возвращаемое значение - если 0 то Нокс идёт стандартным обработчиком спелла, если 1 - то по умолчанию считает все проверки пройденными (все обработчики спелла выполнены), если -1 - то значит наоборот что-то произошло, что запрещает колдование спелла.
Честно не знаю, как этим пользоваться на практике.
2. Вот тут надо проверять, возможно я накосячил и не обернул в ещё одну функцию. Приходит, видимо, действительно не те данные, надо смотреть и возможно фиксить.
3. Это обработчик кастомных ЮниМод пакетов, врядли он тебе понадобится.
4. Точно не знаю, не я делал, но помоему это когда клиент только подсоединился, но сервер ещё ему объект плеер не создал. В неё не передаётся никаких данных.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

TheSim

  • Клан "NoX Craft"
  • Постоялец
  • *
  • Карма: 31
  • Оффлайн Оффлайн
  • Сообщений: 287
  • Awards Активным участникам сходок - 2013 За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #211 : 24/05/2013 11:33:09 »

1)
Не помню, читать исходники надо.
https://github.com/Evengard/UniMod/blob/master/player.cpp

Параметры такие:

Кто(юнит), Цель(юнит),  dir, какой спелл, x,y

dir - это кажется "направление каста", то что через шифт меняется, когда можно хил послать мухой.

Только кажется для скорости playerOnSpell это не функция, а таблица

playerOnSpell =
{
 [unit] = function(unit, targ,dir,spell,x,y) end,
}
« Последнее редактирование: 26/05/2013 08:50:53 от Dio »
Записан

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #212 : 17/10/2014 13:25:47 »

Пора освежить тему.

Есть ли в Unimod функция для изменения строк? Или только побайтовым методом?
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #213 : 17/10/2014 14:49:13 »

Эм. В смысле? Поясни на каком языке и что конкретно.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #214 : 17/10/2014 16:29:20 »

Regex-ов в Lua нет, но есть свой набор инструментов.
http://www.lua.org/manual/5.1/manual.html#5.4

UPD: под regex-ами имел ввиду ту огромную библиотеку из С++.
Так всякие шаблоны есть.
Записан
Пользуйтесь UniMod-ом.

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #215 : 18/10/2014 08:57:52 »

Виноват, коряво поставил вопрос.

Мне нужно поменять строку в памяти Nox. Могу ли я поменять в памяти строку одной-двумя функциями, имея при себе только указатель на первый символ этой строки?
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #216 : 18/10/2014 10:24:29 »

Думаю, только setPtr... getPtr...
Так как сдвигов в юнимоде нет, то наверное лучше всего читать по байтам.
Записан
Пользуйтесь UniMod-ом.

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #217 : 18/10/2014 11:15:31 »

Спасибо.
Можно ли как-нибудь изменить размер этой строки в памяти? Допустим, мне нужна строка подлиннее. Как я могу это сделать? Я слышал только про функцию выделения памяти memAlloc(size_t)
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #218 : 18/10/2014 11:58:50 »

Есть приемлемый вариант:
Если к строке Nox обращается через указатель, который лежит где-то в памяти. Тогда ты можешь изменить значения указателя на свою строку(память можно для этого выделить с помощью memAlloc).
Записан
Пользуйтесь UniMod-ом.

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #219 : 18/10/2014 13:37:52 »

господи, вы чего? из сей строка это обычный набо. байт! если новая строка меньше или равно чем старая - обычный strcpy!
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #220 : 18/10/2014 13:48:48 »

Ты выносил в луа strcpy?
Записан
Пользуйтесь UniMod-ом.

2530

  • Гильдия The Pinnacle
  • Старожил
  • *
  • Карма: 79
  • Оффлайн Оффлайн
  • Сообщений: 665
  • Не вижу смысла в Nox 2
  • Awards Победитель конкурса "Угадай Автора Карты" 2015
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #221 : 18/10/2014 14:26:10 »

Меня тоже волнует сей вопрос.
... строка это обычный набо. байт! если новая строка меньше или равно чем старая - обычный strcpy!
Я же всё-таки не нуб зелёный в программировании и прекрасно знаю что такое строка. Если строка меньше или равна, то тут у меня проблем нет. А речь шла о том, есть ли в Unimod функция аля strcpy и есть ли возможность расширить эту строку. Вот и всё.
Записан
Карма рассчитана на индикацию среднего отношения к участнику, а не степень важности человека. Не гонитесь за ней.
Все мои видео и Twitch стримы

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #222 : 18/10/2014 14:35:11 »

Расширить нету. Нету ж такой магической штуки, которая бы взяла и заменила все указатели на адрес в памяти. Есть шанс, что действительно как и написал Дио - есть место в памяти, где находится адрес этой строки. И тогда его можно подменить.

Дио, а причём тут Луа? Мы щас вроде просто про ЮниМод говорили. Безотносительно выводу этого в Луа.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении

Dio

  • Глобальный модератор
  • Старожил
  • **
  • Карма: 99
  • Оффлайн Оффлайн
  • Сообщений: 1274
  • Некромансеры "живы"!
  • Awards Орден 'За заслуги перед форумом I степени' Активным участникам сходок - 2013 За разгадку главного секрета Nox За набор курсоров для Windows За релиз ЮниМода Знак 'За тягу к тайнам Nox'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #223 : 18/10/2014 14:46:55 »

Ну раз речь идёт о UniMod-е, то логично, что мы говорим именно про Lua часть. Иначе бы вопрос звучал так: "Есть ли в С функция для изменения строк?"
Записан
Пользуйтесь UniMod-ом.

Evengard

  • SysAdmin
  • Администратор
  • Старожил
  • ***
  • Карма: 186
  • Оффлайн Оффлайн
  • Сообщений: 2728
  • Director
  • Awards Столп форума 2012 Активным участникам сходок - 2013 За сервер Орден 'За заслуги перед форумом I степени'
    • Просмотр профиля
    • Awards
Вопросы по UniMod-y
« Ответ #224 : 18/10/2014 17:28:08 »

Вопрос про то, чтобы интегрировать некую функциональность в юнимод, а не то что можно сделать с юнимодом.
Записан
Не упоминай администраторов всуе...
С уважением, TriOptimum Corporation

PS: Покаяние - Признание своей вины в чем-либо, обычно с просьбой о прощении
Расширенный поиск  
 

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