Перейти к содержанию

Craftsmanship


Рекомендуемые сообщения

Чтобы сделать адекватный плагин - если его делает несколько человек - его надо обсудить. Не надо, пожалуйста, засорять тему.

По теме: контейнер - это условность. Имеется в виду так. Нажали на ножницы - открылся контейнер. Это просто удобная форма создания этого дела. Положили туда то, что надо - 3 шкуры, 5 слитков меди или что еще. Закрыли контейнер. Получили - или не получили - то что нужно.

Ссылка на комментарий
Поделиться на другие сайты

Что-то куда-то класть - это только лишний гемморой

проще если скрипт сам будет проверять наличие необходимого материала в инвентаре игрока и выводить сообщение типа "Фиг вам", если у персонажа нет необходимого

Ссылка на комментарий
Поделиться на другие сайты

Так было сделано в плаге про создание стрел и меня это, если честно, довольно сильно побесило. И вот почему. Я хочу что-то создавать, зная, что у меня есть. А не пробуя на угад - получится или нет. Кроме того, слишком длинными должны быть списки, ибо мои амбиции простираются на все оружие/броню облива + кое-какие собственные измышления.
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

извиняюсь за задержку, у меня сейчас мало свободного времени. я разумеется никогда не воображал себя великим профессионалом, но вот мои наработки:

 

скрипт на контейнере

scn LW_test1

short cv
short chance
short tmp
short tmp2
short skillraise
short button

Begin GameMode

if ( cv == 1 )
if ( GetItemCount "Torch02" >= 5 )
 RemoveItem "Torch02" 5
 AddItem "WeapAkaviriLongSword" 1
 Set cv to 0
 Activate
endif
elseif ( cv == 3 )
RemoveItem "Torch02" 5
Set cv to 0
endif

if ( cfskill >= 5 ) && ( cfskill < 20 )
Set tmp to 5
elseif ( cfskill >= 20 ) && ( cfskill < 35 )
Set tmp to 8
elseif ( cfskill >= 35 ) && ( cfskill < 50 )
Set tmp to 11
elseif ( cfskill >= 50 ) && ( cfskill < 75 )
Set tmp to 14
elseif ( cfskill >= 75 ) && ( cfskill < 90 )
Set tmp to 17
elseif ( cfskill >= 90 )
Set tmp to 21
endif

if ( cfskill != 100 ) && ( skillraise >= tmp )
Set cfskill to ( cfskill + 1 )
Message "Ваш навык ремесла возрос до %g." cfskill 2
Set skillraise to 0
endif

if ( tmp2 == 1 )
Set button to GetButtonPressed
if ( button == -1 )
 return
elseif ( button == 0 )
 Disable
 Player.AddItem "LWtesttan" 1
elseif ( button == 1 )
 Set cv to 2
 Activate
endif
Set tmp2 to 0
endif

End

Begin OnActivate

if ( IsActionRef player == 1 )
if ( cv == 0 )
 if ( tmp2 == 0 )
  MessageBox "Что вы хотите сделать?" "Взять" "Создать предмет"
  Set tmp2 to 1
 endif
elseif ( cv == 2 )
 Set chance to ( GetRandomPercent + ( cfskill / 2 ) ) 
 if ( chance > 49 )
  Message "Вы успешно создали новый предмет." 2
  Set skillraise to ( skillraise + 1 )
  Set cv to 1
 else
  Message "У вас ничего не вышло." 2
  Set cv to 3
 endif
endif
endif

End

Делает следующее: положишь в него пять факелов(понимаю что глупо, это для теста) и нажмешь на него - появится надпись вышло или нет. Если вышло в контейнере появится клинок акавири, если нет факелы исчезнут. шанс зависит от значения условного навыка ремесла, реализованного глобальной переменной. базовое - пять. от успешных созданий увеличивается значение навыка. формула следующая:

(x + ( y / 2 )).

где x - случайное целое от 0 до 99, а y - значение навыка. Также я сделал все возможное чтобы обеспечить возможность добавления контейнера в инвентарь, т. е. я насколько возможно реализовал морровский принцип манекенов: при нажатии встает выбор взять или открыть, если взять - конт исчезает, а в инвентарь добавляется *другой предмет*. при выкладывании его на землю он снова становится контейнером. разумеется модели должны быть те же у обоих, различается только тип. Вот тщательно оттестированный скрипт на *другом предмете*:

scn LWtest2

ref cont
float zpos1
float zpos2
float zangle1
float zangle2
float timer

Begin GameMode

Set cont to GetContainer

if ( GetDisabled == 0 ) && ( cont == 0 )
if ( timer < 1 )
 Set zpos1 to GetPos z
 Set zangle1 to GetAngle z
elseif ( timer > 3 )
 Set zpos2 to GetPos z
 Set zangle2 to GetAngle z
 if ( zpos1 == zpos2 ) && ( zangle1 == zangle2 )
  Disable
  PlaceAtMe "LWtestcrate" 1
 endif
 Set timer to 0
endif
Set timer to ( timer + GetSecondsPassed )
endif

End

В идеале должен быть еще большой глобальный скрипт, запускающийся и останавливающийся из базового, проверяющий комбинации и рецепты и заменяющий одни предметы другими. если необходимо скрипт обратного разбора написать не составит труда. Я приложил также плаг для теста, он добавляет сундук на перекрестке торговой площади имперского города, для нужд тестирования модели сундука и предмета добавляющегося в инвентарь разные (это кувшин :1anim_ag: ). положите в него пять факелов и активируйте)) если будет интерес постараюсь выкраивать время на продолжение работы по сему. все. смотрим думаем. эээ чуть не забыл - плаг под версию 1с но из принципа на других тоже должен работать.

 

post-8116-1219324953_thumb.jpg

 

ЗЫ не уверен что возможно сделать открытие без выкладывания на землю. Если кто-то реализует что-то лучше практичнее и/или элегантнее я буду только рад.

Ссылка на комментарий
Поделиться на другие сайты

Ура ЛонВулфу! Извините, что давно не появлялся - учеба в универе отнимает массу времени. В данный момент в свободно время пытаюсь тестить один крафтовый плаг "Arcane Crafting", но нме кажется, что идея Вулфа лучше. Надо посмотреть. Как только немного освобожусь займусь проверкойи попыткой подгонки (и заимствования хороших деталей из других плагов :1anim_ab: )
Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...
  • 8 месяцев спустя...

Идея - супер! подкидываю несколько своих соображений.

Если нужен контейнер - пусть будет контейнер, в конце концов на голом месте ковать не будешь нужен как минимум горн и наковальня ( да и таскать с собой их несколько затруднительно :) ). Это и можно оформить как контейнер.

Интерфейс можно взять из Юлтимы Онлайн. Например подходишь к наковальне, используешь ее, вылезает меню "чего изволите?" - и там выбираешь что нужно.

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

Изменено пользователем da-kornev
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...