Список форумов
Гипат.org
Найдется место всем!


:: В чате сейчас никого нет
Разбор скриптовых команд.
Страницы Пред.  1, 2
   Список форумов -> Все остальное
Автор
Сообщение
sun
Опытный воин


Пришел: 22.12.2001
Сообщения: 673
Добавлено: 30 января 2002, 15:05 [?] [PM]   [«»]

Если тебе не принципиально, то пока, пожалуйста, напиши последний параметр просто Z. Позже при детальном обсуждении всех команд затронем этот момент. В примечании обязательно выскажи свое замечание, и то, что этот параметр ты считаешь, что лучше назвать так-то.

Установи Месенгер.
Alexy III
Оружейник


Пришел: 22.12.2001
Сообщения: 198
Откуда: Ярославль
Добавлено: 30 января 2002, 20:23 [?] [PM] [M]   [«»]

sun, у меня сейчас с инетом совсем плохо. В мессенгере я тебя вряд ли поймаю. Пиши на мыло.
sun
Опытный воин


Пришел: 22.12.2001
Сообщения: 673
Добавлено: 31 января 2002, 01:12 [?] [PM]   [«»]

Vasya
Я написал статью в черновом варианте. Наш форум пока не созрел для обсуждения черновых статей некомпетентных вопросов и головокружительных, непроверенных гипотез. К сожалению, в основном, это сложилось из-за боязни людей быть высмеянными, и соответственно грозящим им потерей некоего рейтинга авторитетности. Я сожалею о происходящем. На закрытых, клубных форумах безошибочность высказываемых суждений в сообщениях больше вредит, нежели способствует плодотворной работе. Так как заумные сообщения превращаются в монологи, а не диалоги. В таких случаях в процесс обсуждения таких сообщений не вливаются другие участники форума. Я в виде исключения опубликую эту заумную статью. Я дал прочесть черновик некоторым людям, Они не в восторге от моего слога.
images/smiles/converted/rotate.gif
Vasya
Привратник


Пришел: 20.12.2001
Сообщения: 338
Откуда: Москва
Добавлено: 31 января 2002, 01:14 [?] [PM]   [«»]

Nivea

Ты считаешь, мне надо написать так: " Добавляет юнит в точку с координатами (x,y,getzvalue(x,y)+height) для нелевитирующего и (x,y,getbszvalue(x,y)+height) для левитирующего. В дальнейшем координаты юнита подчиняются закону: z=getzvalue(x,y)+height для нелевитирующего и z=getbszvalue(x,y)+height для левитирующего."? Ведь суть именно в этом.

В игре все юниты установлены на высоте 0, и GetZ(objUnit) возвращает то же, что и GetZValue(GetX(objUnit),GetY(objUnit)) (для нелевитирующего). При этом самому можно установить юнит на любой высоте. Параметр height точно может быть отрицательным, хотя ограничений на него я не знаю.

Коллекция - это список объектов. Я правильно понял?

Зачем менять слово "игрок", если в названиях команд оно выглядит, как "player"? Я думаю, это будет только мешать пониманию.

Ты хорошо разбираешься в ресурсах. А с помощью чего ты в них копаешься?

sun

Когда статья будет? images/smiles/converted/re_16.gif

[ 30 января 2002: Изменил: Vasya ]

sun
Опытный воин


Пришел: 22.12.2001
Сообщения: 673
Добавлено: 31 января 2002, 18:56 [?] [PM]   [«»]

Друзья! Пожалуйста по-активнее.
Получается только Vasya, Nivea, AlexIII - работают со скриптовыми командами.
images/smiles/converted/protest.gif
Nivea
Смерть гоблинов


Пришел: 21.12.2001
Сообщения: 266
Откуда: Samara
Добавлено: 31 января 2002, 22:12 [?] [PM] [M] [w]   [«»]

Alexy III и все все все!

цитата:

Что бы взять демона в свою партию надо делать так:
@addunittoparty(0,"merc1","Human Gipath NPC Demon F7")
@redeployparty(0)
Причём здесь большой облом вот в чём: "merc1" означает, что добавленный в партию юнит будет называться Хадор-Забияка(для "merc2" - Ная, и т.д).



Мы уже разобрались, что к чему.(Сан, Вася и я)
поэтому и тебе скажем, что второй пар это имя
из таблицы Pers в Texts.res у каждого имени -прописано название и там есть "Demon" с названием "Человек-Демон" вот можно его вместо
"merc1" брать.

Что бы взять демона в свою партию надо делать так:
@AddUnitToServer("Demon",""Human Gipath NPC Demon F7","Vasya",69,136,0)
@addunittoparty(0,"Demon","Human Gipath NPC Demon F7")
@redeployparty(0)

можно заменить вторую строку:
@addunittoparty(0,"Demon","Human Mercenary Thief")
получится симпатичный демон с телом и лицом Наи
параметрами и именем демона.

PS
Гибриды - Васина идея.
Полная теория - Сан.

[ 31 января 2002: Изменил: Nivea ]

Sagrer
Убийца троллей


Пришел: 24.12.2001
Сообщения: 3548
Откуда: Курск
Добавлено: 31 января 2002, 23:47 [?] [PM] [M] [w] [m] [i]   [«»]

010 AddUnitUnderControl ( float : float, objUnit : object)
Передает юнита под контроль игрока. Предположительно параметр FLOAT - номер игрока... или как сказал Sun в своей статье PlayerGroupDiplomacy. В общем, скорее всего параметр, который я тут назвал FLOAT - это то, что Sun назвал idPlayer. Т.к когда команда проверялась на гоблине, Зак был в игроке 9 (чтоб его не били), но при этом гоблина можно было получить под контроль по команде @addunitundercontrol(0,getobject(4747)), но не @addunitundercontrol(9,getobject(4747)).
После передачи контроля, если это бродячий монстр, сразу вам не подчиняется. И при наведении на него появляется курсор меча (хотя он на вас не нападает). Надо монстра перевести к своему nPlayer, и дать ему команду UmPlayer ( objUnit : object).
Пример - см. в тексте описания команды.

011 AlarmPosX
Параметры неизвестны. Из консоли команда не работает.

012 AlarmPosY
Параметры неизвестны. Из консоли команда не работает.

013 AlarmTime
Параметры неизвестны. Из консоли команда не работает.

015 AttachParticles(float : float ,objUnit : object)
Действие неизвестно.

016 AttachParticleSource (float1 : float, float2 : float)
Действие неизвестно.

017 Attack (Attacker : object, Aim : object),
Юнит с обьектом Attacker атакует юнита Aim.

018 BlockUnit(objUnit : object, lever : float)
Блокирует управление юнитом objUnit, если lever = 1, и разблокирует, если Lever=0, (действует только на юнитов, подчиняющихся игроку). На других не оказывает особого влияния. Если у вашего югита включен режим атаки, то юнит будет нападать на врагов сам, как обычно, или если управление было заблокировано после отдачи какого-либо приказа (например, идти куда-то, или бить кого-то), то юнит продолжит выполнять приказ.

019 Cast (ObjUnit : object, X : float, Y : float)
Заставляет юнита ObjUnit кастовать спелл, которуй у него в наборе активных заклинаний под №1 в точку с координатами X,Y. С заклами, кастующимися не на цель, а на место работает. При кастовании заклов, использующихся на цель, игра вылетает (например лечение).

021 CastSpellUnit (SpellStr : string , X, Y, ObjUnit : object)
Кастует на юнита ObjUnit закл SpellStr из точки с координатами X и Y. Закл может быть и "местный", и на цель.

022 ConsoleFloat (float1 : float)
Выводит в консоль значение переменной float1 типа float.

023 ConsoleString (string1 : string)
Выводит в консоль значение переменной string1 типа string.

[ 01 февраля 2002: Изменил: Sagrer[Precursor] ]

Sagrer
Убийца троллей


Пришел: 24.12.2001
Сообщения: 3548
Откуда: Курск
Добавлено: 01 февраля 2002, 18:05 [?] [PM] [M] [w] [m] [i]   [«»]

Так... Седня с Vasya поговорили насчет партий, и параметра, который всегда 0.
Так вот. Я думаю, что этот параметр 0 - это остатки от Аллодов. В Аллодах разные игроки раскрашивались в разные цвета, а в ПЗ остался только 1 цвет - 0.
Короче создал через консоль партию "HeroAlone", добавил к ней хадаганского Зака, но при создании партии вместо 0 всегда использовал 5.
При попытке сделать "HeroAlone" текущей командами
@setcurrentparty(0,"HeroAlone")
@redeployparty(0)
или
@setcurrentparty(5,"HeroAlone")
@redeployparty(0)
партия не изменяется (точнее еще раз выбирается партия ""), причем в консоли выводится сообщение "party received on client", а Зак "мигает" - исчезает с карты и сразу опять появляется.
Но при вводе
@setcurrentparty(5,"HeroAlone")
@redeployparty(5) никаких сообщений в консоли не меняяется, и Зак не "мигает". Т.е партия HeroAlone создалась для "логического игрока" (назовем так этот параметр) номер 5, и при выборе главной партии она стала главной для игрока 5, но на карте юнитов не появилось, т.к. на ВСЕХ картах похоже только 1 логический игрок - номер 0.
sun
Опытный воин


Пришел: 22.12.2001
Сообщения: 673
Добавлено: 02 февраля 2002, 04:03 [?] [PM]   [«»]

«в глазах круги в мозгу нули…»
images/smiles/icon_smile.gif


Sagrer[Precursor], идея с раскраской в разные цвета - интересная.
Все-таки, как и что, нужно сделать, чтобы повторить твой опыт? Дал бы ты нам полный список команд из твоего исполняемого файла и написал бы на них своё резюме. И главное: вдруг твой проделанный опыт с ошибкой.
А так у меня лично ощущение, что я подсмотрел в чью-то записную книжку.

«… т.к. на ВСЕХ картах похоже только 1 логический игрок - номер 0.» - Ну это совсем уж, никуда не годится! И что теперь делать с твоим выводом?
Nivea
Смерть гоблинов


Пришел: 21.12.2001
Сообщения: 266
Откуда: Samara
Добавлено: 05 февраля 2002, 00:59 [?] [PM] [M] [w]   [«»]

Вот некоторые "живые" примеры использования команд,которые нам могут пригодиться:

"Зачаровать дракона"
Вместо Ydragon-подставить GetObjectByID любого врага:
Sleep( 3 )
UMClear( YDragon )
UMFear( YDragon, 0 )
UMAggression( YDragon )
UMFollow( YDragon, GetUnitOfPlayer( 0, 0 ) )
SendStringEvent( 0, "say s3 GTDragon" )

"Включить голема?"
EraseQuestItem( 0, 26 )
RemoveObjectFromServer( GCEmpty )
SetCPFast( GCFull, GetX( GCFull ) , GetY( GCFull ) , -0.05 )
SwitchLeverState( GCFull, 1 )
SetDiplomacy( 0, 3, -1 )
SetDiplomacy( 1, 3, -1 )
SetDiplomacy( 2, 3, -1 )
SetDiplomacy( 3, 0, -1 )
SetDiplomacy( 3, 1, -1 )
SetDiplomacy( 3, 2, -1 )
Guard( GolemSd, GetX( GolemSd ) , GetY( GolemSd ) , 5 )


"Довести юнит до выхода из зоны"
Вместо Borka-подставить GetObjectByID любого врага:

...
Run( Borka )
SetPlayer( Borka, 0 )
UMFollow( Borka, GetUnitOfPlayer( 0, 0 ) )
...


"не разбирался ..."
UMClear( ORunner )
UMAggression( ORunner )
Guard( ORunner, GetX( ORunner ) , GetY( ORunner ) ,
5 )

//Волки бросаются на кабанов
Sleep( 180 )
SetDiplomacy( 4, 5, -1 )
SetDiplomacy( 5, 4, -1 )
Run( this )
UMClear( this )
UMStandard( this )
UMSentry( this, Add( 71, Random( 2 ) ) , Add( 206, Random( 1 ) ) )


//Игра наложницей
CreateParty( 0, "Pretty" )
AddUnitToParty( 0, "Pretty::Nalo", "Human Hadagan Pretty" )
SetCurrentParty( 0, "Pretty" )
LeaveToZone( 0, "gz15h", 3 )
// Каньон Смерти


//Снова Заком
CopyStats( 0, "HeroAlone::Hero", "Hero" )
AddLoot( 0, "HeroAlone", "" )
SetCurrentParty( 0, "" )
FixItems( )
RunWorldTime( 0 )
LeaveToZone( 0, "gz15h", 3 )
// Каньон Смерти

[ 05 февраля 2002: Изменил: Nivea ]

sun
Опытный воин


Пришел: 22.12.2001
Сообщения: 673
Добавлено: 09 февраля 2002, 20:48 [?] [PM]   [«»]

Nivea, Vasya я записал в базу данных ваш разбор функций и процедур (скрипткоманды).
Изменения в скрипткомандах и новые скрипткоманды пишите отдельно, в новых сообщениях.
Как только появитесь, я дам вам таблицы с вашим и моими скрипткомандами.
Показать сообщения:   
   Список форумов -> Все остальное
Страницы Пред.  1, 2 Версия для печати
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы
Вы можете скачивать выложенные файлы
Перейти:  
Часовой пояс: GMT +4:00