[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Модератор форума: Saidas, Везервакс, Сагамарт  
Форум » Главная улица » Квартал мастеровых » Секреты GHI (как сделать хитрую вещицу)
Секреты GHI
СагамартДата: Пятница, 30.07.10, 23:12 | Сообщение # 31
Генерал-майор
Группа: Модераторы
Сообщений: 320
Репутация: 176
Статус: Offline
Ага... Понятно...

 
КамикадзЕДата: Суббота, 07.08.10, 13:42 | Сообщение # 32
Полковник
Группа: Проверенные
Сообщений: 184
Репутация: 105
Статус: Offline
Глупый вопрос, но всё же. Как сделать так чтобы при использовании предмета персонаж уснул?? smile

Люди - свечи... Либо светят, либо в жопу. \(^o^)/

Сообщение отредактировал КамикадзЕ - Суббота, 07.08.10, 13:59
 
БизлДата: Суббота, 07.08.10, 14:04 | Сообщение # 33
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 30
Статус: Offline
Добавляешь Script с такой строчкой
DoEmote("sleep")


Ушел.
 
KronaДата: Суббота, 14.08.10, 02:36 | Сообщение # 34
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 5
Статус: Offline
Собственно, как сделать так, что, например, при десятом использовании предмета рандомно срабатывал один из каких-нибудь ранее заложенных баффов.
К примеру, лекарство, которое после 19-ого раза может начать вызывать привыкание, или голова от него может пойти кругом, или начнут плясать зеленые человечки.


Стукнуть бы вас что ли...
 
MitonДата: Суббота, 14.08.10, 10:44 | Сообщение # 35
Рядовой
Группа: Проверенные
Сообщений: 19
Репутация: 29
Статус: Offline
Можно сделать так, чтобы при использовании предмета бафф, даваемый им, стакался. Допустим, на вас вешается бафф "Лекарство", который при каждом новом использовании добавляет к себе стак. Когда стак достигнет отметки "19", срабатывает скрипт, который активирует 1 из рандомных дебаффов.
Пока код дать не могу, т.к. на даче, а в ручную написанный скрипт может не сработать.
 
ДжинарДата: Суббота, 14.08.10, 19:51 | Сообщение # 36
Лейтенант
Группа: Проверенные
Сообщений: 61
Репутация: 24
Статус: Offline
Может ли ГХИ учитывать итемы в игровом инвентаре? а то во время рыбалки в Тернистой долине родилась мысль: выловить 4 [Изорванная ткань], 8 [Палочка], 12 [Спутанная леска] и соорудить из них дрянную, но палатку, посредством гхи-предмета, который проверит в игровом инвентаре нужное кол-во итемов и произведет еще один гхи-предмет и выдаст эмоут типа: "... сооружает палатку из подручных материалов." )))



Сообщение отредактировал deenar - Суббота, 14.08.10, 20:02
 
БизлДата: Суббота, 14.08.10, 23:55 | Сообщение # 37
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 30
Статус: Offline
deenar, очень просто.
Сначала создаете "палатку". Это думаю описывать не надо.
Создаете предмет-собиратель, допустим "предмет-собиратель".

1) Добавляем действие Requirement (это будет нашим условием)
В списке условий выбираем LUA Statement
В поле Requirement Filter вводим
GetItemCount("Изорванная ткань")>3 and GetItemCount("Палочка")>7 and GetItemCount("Спутанная леска")>11
В поле Requirement Detail вводим... допустим "много хлама"

2)Затем добавляем действие Produce item и нажав на Сhoose Item выбираем "палатку".
В списке действий в столбце Run when req выбираем is FORFILLED вместо Run Always

3)Добавляем действие Expression с текстом "собирает палатку из палочек лески и дырявых тряпок.". В списке вместо SAY выбираем EMOTE
В списке действий в столбце Run when req выбираем is FORFILLED вместо Run Always

4)Добавляем действие Message с текстом "Не хватает компонентов". В списке вместо Chat Frame выбираем Error Message.
В списке действий в столбце Run when req выбираем is NOT FORFILLED вместо Run Always

Готово.


Ушел.

Сообщение отредактировал Бизл - Суббота, 14.08.10, 23:59
 
KronaДата: Воскресенье, 15.08.10, 04:41 | Сообщение # 38
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 5
Статус: Offline
Улке,
Аригато, это то, что нужно.


Стукнуть бы вас что ли...
 
МраковейДата: Понедельник, 16.08.10, 14:55 | Сообщение # 39
Генерал-майор
Группа: Проверенные
Сообщений: 254
Репутация: 37
Статус: Offline
Вопрос такого вот плана.
Нужно сделать предмет в единичном экземпляре, который с каждым использованием заканчивается/теряет силу/нечто подобное, и причем при каждом следующем использовании выдает разный эмоут пока не кончится. Пример:

Бутылка вина. При первом использовани выдает что-тов роде:
- "Имя" с удовольствием отпил немного вина из бутылки. В ней еще много осталось, наслаждайтесь!
Далее, при втором использовании:
- "Имя" с удовльсвием отпил немного вина. Бутылка наполовину полна... или пуста?
И в таком вот духо до последнего эмоута, при котором Бутылка вина заменяется на пустую бутылку.
- "Имя" допивает остатки вина. Жаль, что напитка не осталось...

Возможно ли такое?

 
БизлДата: Понедельник, 16.08.10, 17:22 | Сообщение # 40
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 30
Статус: Offline
Quote (Мраковей)
Возможно ли такое?

Когда я создавал ГХИ_Дефибриллятор, я искусственно реализовал механизм "зарядов".
Думаю в этом случае он тоже будет очень удобен!

Значит-с, создадим бутылку гномьего виски и назовем ее:
"Бутылка Гномьего Виски".
White Text 2 напишем изначальное кол-во зарядов: "Заряды: 3" - этот текст будет изменяться с каждым глотком =)
Остальные поля заполняйте, как вам хочется.

Теперь используя ID узнаватель... узнаем ID нашей бутылки.

Теперь добавим действием относительно простой скрипт:

charges=3

Затем добавляем новое действие-скрипт:

ID="Бизл_81967844"
local Emotes={
"допивает остатки вина. Жаль, что напитка не осталось...",
"с удовльсвием отпил немного вина. Бутылка наполовину полна... или пуста?",
"с удовольствием отпил немного вина из бутылки. В ней еще много осталось, наслаждайтесь!"
}

function RemoveCharge(count)
charges=charges-count
local script={""}
script[1]="charges="..charges
GHI_ItemData[ID].rightClick[1].code[1] = script[1]
if(charges~=0)then
GHI_ItemData[ID].white2 = "Заряды: "..charges
else
GHI_ItemData[ID].white2 = nil
GHI_ItemData[ID].name = "Пустая Бутылка Гномьего Виски"
GHI_ItemData[ID].comment="Ничего не осталось..."
end
end

if(charges~=0)then
SendChatMessage(Emotes[charges],"EMOTE",nil)
RemoveCharge(1)
else
SendChatMessage("осматривает бутылку на наличие остаточного алкоголя", "EMOTE",nil)
end

Синим у нас обозначен ID нашего предмета
Красным - строки выдаваемых эмоций в кавычках и через запятую, причем начиная с последней.
И не забывайте что их количество должно соответствовать количеству зарядов, которые описываются переменной charges (в нашем примере зарядов - три)
Зеленным выделено имя для разряженного предмета, а Серым - приписка разряженного предмета(та, что желтого цвета)
Оранжевым - реплика при взаимодействии с пустой бутылкой.

Если напиток не дворфийский и зарядов в нем... скажем 10, то мы просто меняем переменную charges в первом скрипте и добавляем нужные строки в таблицуEmotes={}

Механика предмета такова, что на нулевом заряде он не заменяется другим, а просто меняет некоторые параметры (имя и коммент). Так что вы всегда можете вернуть свою бутылку. Для этого просто верните имя, строку "Заряды" в white2 и, отредактировав скрипт, установите переменную charges на начальное значение (у пустой она будет равна 0, хотя в таблице действий написано будет иначе)

Вроде все.


Ушел.

Сообщение отредактировал Бизл - Понедельник, 16.08.10, 17:23
 
АльттаирДата: Понедельник, 16.08.10, 17:36 | Сообщение # 41
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 13
Статус: Offline
М-м-м-м-м....Бизл,а можно ли сделать такой предмет чтобы при активации другой предмет (связанный с ним и созданный мной) пропадал не только у меня из сумки,но и у других?

Всегда ваш, шкипер Чернокрут.
 
БизлДата: Понедельник, 16.08.10, 17:52 | Сообщение # 42
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 30
Статус: Offline
Quote (Альттаир)
М-м-м-м-м....Бизл,а можно ли сделать такой предмет чтобы при активации другой предмет (связанный с ним и созданный мной) пропадал не только у меня из сумки,но и у других?

Можно... в принципе...
Взаимодействие ГХИ вещей и их обладателей реализуется с помощью подключения дополнительного канала =)
Но чтобы вещь скрыто подсоединила обладателя предмета к этому каналу потребуется чтобы он хотя бы 1 раз использовать ее.
Т.е. я имею ввиду, что после передачи вещи вы не можете никак с ней "связаться" пока новый обладатель не кликнет по ней.
Да и в случае если обладатель релогнется/десконекнится или иными способамми выйдет из игры то при входе в игру ему надо будет кликнуть вновь... для восстановления связи.

Если вас сие устраивает я начну писать скрипт незамедлительно =)


Ушел.
 
АльттаирДата: Понедельник, 16.08.10, 18:05 | Сообщение # 43
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 13
Статус: Offline
Да,можно и так)

Всегда ваш, шкипер Чернокрут.
 
БизлДата: Понедельник, 16.08.10, 19:13 | Сообщение # 44
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 30
Статус: Offline
Альттаир, вот что надо сделать.
Сначала создаем вещь, которую ты планируешь передавать.
Пусть это будет "Волшебный Кристалл".
Узнаем ID с помощью ID узнавателя Pilus'a. (Улке описывала его на второй странице сообщение #20)
Создаем ей действие - скрипт со следующим брутальным содержанием:

И вместо "ТВОЙАЙДИ_12345678" вставляй... твой id =)

Затем добавь еще один скрипт:

ItemID="Бизл_81976334"
JoinChannelByName("Crystal");
id = GetChannelName("Crystal");

function StopS()
Traker:UnregisterEvent("CHAT_MSG_CHANNEL");
Traker=nil
end

function StartS()
Traker = CreateFrame("Frame", nil, UIParent);
Traker:SetScript("OnEvent", function() Crys() end);
Traker:RegisterEvent("CHAT_MSG_CHANNEL");
end

if Traker == nil then
StartS()
SendChatMessage("вглядывается в глубины кристалла, но ничего не происходит...","EMOTE",nil)
else
SendChatMessage("вглядывается в глубины кристалла, но ничего не происходит...","EMOTE",nil)
end

function Crys()
if(event=="CHAT_MSG_CHANNEL")and(arg8==id)then
if(arg1=="delete")and(arg2=="Бизл")then
StopS()
SendChatMessage("с удивлением смотрит на то, как кристалл растворяется!","EMOTE",nil)
GHP_Test_ConsumeItem_v1(ItemID,1)
end
end
end

Вместокрасного текставставляй свой ID.
Вместо синего - эмоцию при действии.
Вместо фиолетового - твой игровой ник, чтобы нарушители не могли воспользоваться привелегиями канала =)

Теперь создай магический удалятель.
Назовем его "Магический Удалятель".

Добавляй действие-скрипт:
JoinChannelByName("Crystal");
id = GetChannelName("Crystal");
if(id~=0)and(id~=nil)then
SendChatMessage("delete","CHANNEL",nil,id)
end

Самое время испытать устройство с другом... только важно всегда иметь при себе копию исчезающего кристалла, чтобы не делать его заново =)

Из уважения к Автору функции GHP_Test_ConsumeItem_v1 следует отметить что скрипт в спойлере был наглом мною скопипастен.
И из уважения к Улке следует отметить, что большая часть EventHandler'а скопирована со скрипта рации и отредактирована под данный случай.


Ушел.

Сообщение отредактировал Бизл - Понедельник, 16.08.10, 19:19
 
БизлДата: Среда, 18.08.10, 01:08 | Сообщение # 45
Лейтенант
Группа: Проверенные
Сообщений: 46
Репутация: 30
Статус: Offline
Хоть у кого-то сработало то что я описывал? >_>
Неведение - это жутко =(


Ушел.
 
Форум » Главная улица » Квартал мастеровых » Секреты GHI (как сделать хитрую вещицу)
Поиск:


Copyright MyCorp © 2024
Конструктор сайтов - uCoz