Город Джунов
Скрипты в ПЗ. - Версия для печати

+- Город Джунов (https://www.gipat.ru/forum)
+-- Форум Аддон для Проклятых Земель (https://www.gipat.ru/forum/forum-20.html)
+--- Форум Все остальное (https://www.gipat.ru/forum/forum-4.html)
+--- Темы: Скрипты в ПЗ. (/thread-1236.html)

Страницы: 1 2 3


Скрипты в ПЗ. - CAHEK7 - 21.03.2003

Люди, помогите кто-нибуть со скриптами плиз.
Как в них можно делать циклы, условия и прочую нелинейность?
И как работает команда @addunittoserver?:work:


Скрипты в ПЗ. - sun - 22.03.2003

Достаточно емкий у тебя вопрос. Я не могу на рассказ тратить много времени, тем более что ты бродяга. Smile
Кратко будет так…

AddUnitToServer( NameUnitMap : string , NameUnitRes : string , NameUnitControl : string , x : float , y : float , z : float )

Устанавливает юнит-объект: NameUnitRes на текущую карту в точку (x,y,z) из базы данных ресурсов игры. Объект будет иметь внутреннее имя: NameUnitMap и имя, отображаемое в инфоокнах: NameUnitControl. Большие и маленькие буквы внутреннего имени: NameUnitMap не различаются. Системная функция преобразования имени: (NameUnitMap : string) в код (idUnit : float) представляет все строчные символы имени как прописные - к верхнему регистру. Не рекомендуется возвращать код: idUnit от объекта добавленного на карту командой: AddUnitToServer с помощью функции: GetObjectId. Полученный на карте объект командой: AddUnitToServer будет иметь код - 10 символов, а команда: GetObjectId работает с ошибкой с десятизначными силами. Команда правильно работает только с объектами прописанными в таблице NPCs, так как добавленный объект будет иметь контейнер с переменными переменными совойств персонажа игрока, со всеми дополнительными параметрами, навыками и умениями. При этом, если имя: NameUnitMap совпадает с именем файла в таблице ресурсов: texts.res (textslmp.res) с предиктором: "pers", например, "Nalo", и оствлен параметр: NameUnitControl пустым, то из базы данных локализации: texts.res (textslmp.res) будет взято имя имя этого объекта. Например, Сингл, ввести в консоли команду использование расширенных консольных команд, затем следующую строрку: @AddUnitToServer( "Nalo","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)


Скрипты в ПЗ. - CAHEK7 - 24.03.2003

Во-первых, спасибо. Smile
Во-вторых, я не бродяга, а зарегистрировался.
В-третьх, я бы хотел чем-нибуть вам помочь, хотя думаю, что тут и без меня справятся сами (не очень великий я программер да и VB мало кому нужно, но все же...).


Скрипты в ПЗ. - sun - 24.03.2003

CAHEK7. пожалуйста. Помогай, конечно. Мы сами программисты «не очень» Wink
Вот сейчас нам нужны идеи по менджеру модов. Мы к стартеру делаем программу, которая будет совмещать моды игроков с ПЗ, чтобы эти моды уживались друг с другом и со стандартной игрой. А то ведь после установки мода нужно игру переустанавливать, чтобы снова поиграть в стандартную игру.
Smile


Скрипты в ПЗ. - sun - 24.03.2003

Ну да..., извини, какой же ты бродяга, ты неизвестный. Кстати, а почему неизвестный?, это у нас такие имена к новичкам?
Мдя...
:drug:


Скрипты в ПЗ. - Jet - 24.03.2003

Цитата:Ну да..., извини, какой же ты бродяга, ты неизвестный. Кстати, а почему неизвестный?, это у нас такие имена к новичкам?
Мдя...
:drug:
На новом форуме уже придуманы новые ранги. Wink
Это будет сюрпризом. Cool


Скрипты в ПЗ. - CAHEK7 - 02.04.2003

Можете кинуть MOB Reversing Tools или хотя бы один mob файл расшифрованный?
Очень хочется посмотреть что там внутри...


Скрипты в ПЗ. - sun - 02.04.2003

CAHEK7
Что внутри мобов можно будет посмотреть в нашем проекте "Энциклопедия ПЗ". Этот проект тестировался в прошлом году, но пока мы его заморозили, из-за большого количества неточностей и «белых пятен». Сейчас мы знаем о ПЗ гораздо больше, чем на момент "заморозки". Непосредственно над "Энциклопедией ПЗ" мы пока не работаем. Сейчас мы заняты проектом «Паргелий».


Скрипты в ПЗ. - Jet - 02.04.2003

Цитата:Можете кинуть MOB Reversing Tools или хотя бы один mob файл расшифрованный?
Очень хочется посмотреть что там внутри...
В ПЗ версии 1.06 есть незашифрованные файлы: zonemainmenunew.mob и zone20.mob
В демо-версии все файлы незашифрованные.


Скрипты в ПЗ. - CAHEK7 - 03.04.2003

Спасибо Big Grin
пошел я разбираться Smile


Скрипты в ПЗ. - [Sauron] - 13.04.2003

У меня тоже вопрос Rolleyes
Как мне задать дипломатию созданию на карте не по номеру группы а по личному ИД создания? :upset: Ну чтобы задать ее только для одного а не для целой кучи?


Скрипты в ПЗ. - [Sauron] - 14.04.2003

Ну что? Никто незнает? :drug:


Скрипты в ПЗ. - sun - 14.04.2003

Сначала переопредели дипломатическую группу для юнита. А потом для этой группы уситанови нужную дипломатию. Всего дипгрупп может быть от 32 (0-31).


Скрипты в ПЗ. - [Sauron] - 15.04.2003

Пасиба Rolleyes , но есть махонькая проблемка - я понятия не имею как установить дипломатическую группу группу для юнита...


Скрипты в ПЗ. - CAHEK7 - 16.04.2003

можно сделать так:
@setplayer(getobject(id),n)
n-номер игрока к которому будет принадлежать юнит getobject(id).
меняешь дипломатию между разными игроками и все будет работать.


Скрипты в ПЗ. - [Sauron] - 16.04.2003

Спасибо Smile


Скрипты в ПЗ. - CAHEK7 - 16.04.2003

а еще можно
@setenemy(unit:onject,nplayer:float)
зайди на http://www.gipat.ru/forum/index.php?showto...t=0&#entry19938
я там написал как она работает


Скрипты в ПЗ. - [Sauron] - 03.06.2003

Гм, оказывается подробных разьяснений комуто мало Smile
По многочисленным прозьбам всех читеров ПЗ выкладываю скрипт по вызову поросенка Пятачка Big Grin

@AddUnitToServer("","LMP Unique Pig Boryka 1","",GetX(GetLeader()),GetY(GetLeader()),0)

Пятачек будет без названия, если хотите с именем то вот так:

@AddUnitToServer("","LMP Unique Pig Boryka 1","Boryka",GetX(GetLeader()),GetY(GetLeader()),0)
Но имя можно писать только английскими буквами Tongue


Скрипты в ПЗ. - sun - 04.06.2003

AddUnitToServer( NameUnitMap : STRING , NameUnitRes : STRING , NameUnitControl : STRING , x : FLOAT , y : FLOAT , z : FLOAT )
Устанавливает юнит-объект: NameUnitRes на текущую карту в точку (x,y,z) из базы данных ресурсов игры. Объект будет иметь внутреннее имя: NameUnitMap и имя, отображаемое в инфоокнах: NameUnitControl. Большие и маленькие буквы внутреннего имени: NameUnitMap не различаются. Системная функция преобразования имени: (NameUnitMap : string) в код (idUnit : float) представляет все строчные символы имени как прописные - к верхнему регистру. Не рекомендуется возвращать код: idUnit от объекта добавленного на карту командой: AddUnitToServer с помощью функции: GetObjectId. Полученный на карте объект командой: AddUnitToServer будет иметь код - 10 символов, а команда: GetObjectId работает с ошибкой с десятизначными симвалами. Команда правильно работает только с объектами прописанными в таблице NPCs, так как добавленный объект будет иметь контейнер с переменными совойств персонажа игрока - со всеми дополнительными параметрами, навыками и умениями. При этом, если имя: NameUnitMap совпадает с именем файла в таблице ресурсов: texts.res (textslmp.res) с предиктором: "pers", например, "Nalo", и оствлен параметр: NameUnitControl пустым, то из базы данных локализации: texts.res (textslmp.res) будет взято имя этого объекта. Например, Сингл, ввести в консоли команду использование расширенных консольных команд, затем следующую строрку: @AddUnitToServer( "Nalo","Human Hadagan Pretty","",GetX(GetLeader()), GetY(GetLeader()),0)

Не забывайте, если нужно динамически добавлять персонажей из консоли, то сначала нужно создать файл с локализованным именем персонажа и запаковать файл с соответствующим иенем в базе данных локализаций texts.res. Получаемый персонаж будет иметь расширенную структуру с дополнительными характеристиками персонажа, а не простого юнита. По этому нужно в теаблице NPCs добавить новую строку с именем будущего перса и заполнить его характеристики, иначе у перса будет 0. Можно и консольными командами заполнить некоторые характеристики нового персонажа и затем полечить его…

Пятачок не персонаж, его имени нет в списке персонажей, но есть «Свинья»…
@AddUnitToServer("Pig","LMP Unique Pig Boryka 1","Boryka",GetX(GetLeader()),GetY(GetLeader()),0)

Smile


Скрипты в ПЗ. - sun - 07.06.2003

Jaroslav
Я могу только предполагать…
Так вот, я думаю что: команда «AddUnitToServer», это старая команда и возможно вообще предназначена для конструктора ПЗ, а не для самой игры, или что-то в этом роде.
Команда «AddUnitToServer» работает правильно, но только с объектами-персонажами. Разумеется, можно предварительно прописать кого угодно в таблице NPCs, и добавлять нового «перса» динамически на игровую зону. Но, проблемы вывода полноценного персонажа останутся и будут не только, как говорится, с «простыми юнитами», но и вообще с любыми юнитами которых нет в базе текстур "redress.res" или может быть даже тех, чьи имена текстур не начинаются на «unhu…». То есть, полноценно добавляться будут только человекообразные, к ним относятся только Люди и Орки. Только людей и Орков, в обычной ПЗ можно добавить этой командой на игровую зону, так как графические ресурсы Людей и Орков находятся в отдельном контейнере ресурсов, В общем, разработчики так реализовали эту функцию, и текстуры других юнитов (из других ресурсов) эта команда не загружает. Хотя можно попробовать перенести нужные текстуры из textures.res в контейнер redress.res/
Ну, или попросить продвинутого модера, чтобы он используя наш стартер, прописал в пути поиска ядром ПЗ ресурса redress.res - искать сначала в textures.res,… Wink Это только теория, но можно поэкспериментировать….


Вообще-то, в чем собственно цель, или даже, в чем задача? Добавлять динамично юнитов на игровую зону, по каким-то критериям? Если грамотно поставить задачу, то можно на нынешнем движке реализовать вполне достойное решение. Например, если есть та же задача: реализовать динамическую загрузку каких-то юнитов на игровую зону, то для этого не нужна команда «AddUnitToServer». Можно сделать библиотечный моб-файл, который и будем в последствии загружаться из других мобов командой ADDMOB(NAME.mob). В этом моб–файле нужно реализовать защиту от повторений и проверку, что такой-то перс уже существует и динамично добавлять/удалять, именовать сколько угодно (сколько выдержит комп) юнитов. Но вот вопрос, а будет ли это играбельно, Нивал такого метода не использовал….