Boma Kuro Опубликовано 25 декабря, 2005 Жалоба Поделиться Опубликовано 25 декабря, 2005 В последнее время стало появлятся немало моделей мечей с ножнами - взять тот же Реквием. Модели. надо сказать, неплохие, а вот скрипты - не слишком. Предлагаю обсудить скриптовую реализацию меча с ножнами в Морровинде (хех, почти как тема диссертации). Вот пример из плагина Requiem_Sword 1Phij_Requiem - клинок12Requiem__shv - "полные" ножны (идут как одежда, а именно - почуму-то, штаны)12Requiem__unshv - "пустые" ножны Скрипт на клинке begin A_Requiem_sheathe Short DoOnce If ( player->getitemcount "1Phij_Requiem" ==0 ) if ( player->getitemcount "12Requiem__shv" >=1 ) player->removeitem "12Requiem__shv", 2 endif if ( player->getitemcount "12Requiem__unshv" >=1 ) Player->removeitem "12Requiem__unshv", 2 endif return endif If ( Player -> HasItemEquipped "1Phij_Requiem" ) If ( Player -> GetWeaponDrawn ) If ( DoOnce == 0 ) player->removeitem "12Requiem__shv", 4 player->additem "12Requiem__unshv", 1 player-> equip "12Requiem__unshv", 1 set DoOnce to 1 endif elseif ( DoOnce == 1 ) player-> removeitem "12Requiem__unshv", 4 player->additem "12Requiem__shv", 1 player->equip "12Requiem__shv", 1 set DoOnce to 0 endif endif endif End Скрипт на ножнах Begin 1Requiem_disable item script short onpcequip short itemequipped if ( onpcequip == 1 ) RETURN else If ( itemequipped == 0 ) set itemequipped to 1 endif endif else if ( itemequipped == 1 ) disable set itemequipped to 0 endif endif end Ножны одеваются\убираются автоматически при экипировании меча. Может быть только одна пара меч\можны в игре.У меня эта конструкция несколько глючила - ножны дублировались, не выкидывались, ну и прочие безобразия. Я написал другой скрипт, с использованием глобальной переменной, пусть будет Requiem_global. #_Requiem#Requiem_shv- "полные" ножны #Requiem_Unshv - "пустые" ножны "полные" ножны: begin Requiem_shv_script short OnPCDrop short OnPCEquip if ( OnPCEquip == 1 ) If ( Player -> HasItemEquipped "#_Requiem" ) if ( player->GetWeaponDrawn ) if ( Requiem_global != 0 ) set Requiem_global to 0 startscript "Requiem_global_script" endif else if ( MenuMode == 1 ) set Requiem_global to 0 startscript "Requiem_global_script" endif endif endif endif end "Пустые":begin Requiem_Unshv_script short OnPCEquip if ( MenuMode == 1 ) return endif if ( OnPCEquip == 1 ) If ( Player -> HasItemEquipped "#_Requiem" ) if ( player->GetWeaponDrawn ) return else if ( Requiem_global != 1 ) set Requiem_global to 1 startscript "Requiem_global_script" Endif endif endif endif end Глобальный скрипт: begin Requiem_global_script if ( Requiem_global == 0 ) player->additem "#Requiem_Unshv", 1 player-> equip "#Requiem_Unshv" player->removeitem "#Requiem_shv", 1 elseif ( Requiem_global == 1 ) player->additem "#Requiem_shv", 1 player->equip "#Requiem_shv" player->removeitem "#Requiem_Unshv", 1 endif stopscript Requiem_global_script end Ножны (пустые) покупаются, носятся и экипируются отдельно от меча - так реалистичнее (на самом деле, просто хотелось на полку еще одну феньку положить). При экипированном и убранном мече ножны заменяются на полные. При обнажении оружия и входе в меню, они заменяются на пустые. При входе в меню - что бы ножны с мечем нельзя было продать, обменять или выкинуть. Отсюда - небольшой баг: если с кем-нибудь заговорить, пишется сообщение "ножны - предмет передан... ножны - в вашем рюкзаке". Кроме этого, баг только один - как с плащами было - с голым торсом, зато в плаще... Ну, вот. У кого какие мысли на этот счет? Ссылка на комментарий Поделиться на другие сайты Поделиться
Rouge Опубликовано 13 января, 2006 Жалоба Поделиться Опубликовано 13 января, 2006 Таким образом зачаровывать предмет будет нельзя, обидно, да? Ссылка на комментарий Поделиться на другие сайты Поделиться
Artem13 Опубликовано 13 января, 2006 Жалоба Поделиться Опубликовано 13 января, 2006 Длин. ща некогда смотреть, дома поподробнее гляну. Вопрос пока один - почему ты блокируешь возможность продажи? Ну и продавал бы ножны вместе с мечом - в случае, если меч в ножнах - по суммарной стоимости... Ссылка на комментарий Поделиться на другие сайты Поделиться
Boma Kuro Опубликовано 13 января, 2006 Автор Жалоба Поделиться Опубликовано 13 января, 2006 Тогда получится, что мы продаем ножны с мечем, а потом еще и меч в догонку. Нереалистично. Лучше ножны продовать пустые.Кстати, еще забыл добавить в скрипт, что бы ножны с мечем заменялись на пустые всегда, когда они не экипированы - если игрок снял их, не входя в меню, например, при помощи быстрых клавиш. Да, зачаровать нельзя, а что делать? Вернее, зачаровать можно, но связь с ножнами потеряется - мол, магический меч в ножны на залазит, хех. Впрочем, можно меч поставлять уже с энчантом. Ссылка на комментарий Поделиться на другие сайты Поделиться
Artem13 Опубликовано 19 января, 2006 Жалоба Поделиться Опубликовано 19 января, 2006 (изменено) Кстати, кажется нашел способ избежать продажи меча в ножнах без скриптовых заморочек. ЕМНИП, в Морре нельзя продать вещи со стоимостью 0 - появляется сообщение типа "Вы не можете продать это"...У меня нет времени проверять, Дефрулер, может сподобишься. Тогда станут ненужны твои заморочки на этот счет... И еще - по внешним проявлениям, скрипт ножен как то хитро реализован в плаге Heaven`s Lookout реклама на форуме запрещена, читай правилаwww.fullrest.ru/plugs.php?tp=14 Изменено 19 января, 2006 пользователем Artem13 Ссылка на комментарий Поделиться на другие сайты Поделиться
Boma Kuro Опубликовано 20 января, 2006 Автор Жалоба Поделиться Опубликовано 20 января, 2006 Надо будет посмотреть, да сейчас тоже времени совсем нет. На днях гляну. Гут, а с compaion share что делать? Эта зараза скриптами не отлавливается, вот и приходится все чарез зад делать, то есть скриптами. Опять-таки, если ножны не бесплатно выдаются, то цена будет скакать туда-сюда - опять нереалистично... Основная проблема доже не в этом. А в том, что ножны меняются не сразу, а только на следующий фрейм, гак как пока скрипт запустится... В принципе это не мешает, но, плюс еще мани пуляции с иневентарем - получаем задержку в долю секунды... А то и больше, это от конкретной ситуации зависит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Rouge Опубликовано 4 февраля, 2006 Жалоба Поделиться Опубликовано 4 февраля, 2006 Ничего хитрого.с помощью пояса запускается скрипт, который одевает на тебя ножны (за спину), а оружие удаляется. Ссылка на комментарий Поделиться на другие сайты Поделиться
Artem13 Опубликовано 8 февраля, 2006 Жалоба Поделиться Опубликовано 8 февраля, 2006 Хитрость в том, что когда я в игре его надевал в качестве текущего оружия у меня отображался кулак, катаны за спиной, а при обнажении оружия (клавиша Фы) в руках оказывался клинок... Ссылка на комментарий Поделиться на другие сайты Поделиться
LonWolf Опубликовано 8 февраля, 2006 Жалоба Поделиться Опубликовано 8 февраля, 2006 Хе-хе, а причина багов на первых скриптах весьма проста: 1. RemoveItemОткеда взялись значения 4 и 2? 2.If ( Player -> HasItemEquipped "1Phij_Requiem" ) If ( Player -> GetWeaponDrawn ) If ( DoOnce == 0 ) player->removeitem "12Requiem__shv", 4 player->additem "12Requiem__unshv", 1 player-> equip "12Requiem__unshv", 1 set DoOnce to 1endif elseif ( DoOnce == 1 ) player-> removeitem "12Requiem__unshv", 4 player->additem "12Requiem__shv", 1 player->equip "12Requiem__shv", 1 set DoOnce to 0 endif endifendif И вот это: if ( onpcequip == 1 )RETURN else If ( itemequipped == 0 ) set itemequipped to 1 endifendif else if ( itemequipped == 1 ) disable set itemequipped to 0 endifendif Ну кто же ставит else после endif? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти