QUOTE (Аваддон @ Nov 12 2004, 10:23) |
А вот это не врите в мультиплеере локалка на чаре не сохраняется - я проверял. Только на шмотках. Так что придется с БД. |

Виноват...

Я с мультиплеером вообще не дружу
Фали, на вопросы по шардовым делам тут ты врядли найдешь ответ. Тут мало шардовиков. Спрашивай в разделе Шарды..
Лито, вот мой чек, который стоит на он энетер модуля
Neverwinter Script Source |
object oPC = GetEnteringObject();
// другие проверки
// ---- Newbie Section ------------------------------------------------------ // if(GetIsPC(oPC) && !(GetXP(oPC)) && !GetIsDM(oPC)){
SetXP(oPC, 1);
// Removing PC's Items In Slots for(i=0; i<=13; i++){ oItem = GetItemInSlot(i, oPC); DestroyObject(oItem); }
// Removing PC's Gold int nAmount = GetGold(oPC); AssignCommand(oPC, TakeGoldFromCreature(nAmount, oPC, TRUE));
// Removing PC's Inventory. oItem = GetFirstItemInInventory(oPC); while(oItem!=OBJECT_INVALID){ DestroyObject(oItem); oItem = GetNextItemInInventory(oPC); } } // ---- End Newbie Section -------------------------------------------------- //
// другие проверки |
сюда же при желании вставляется стартовый набор ньюби-итемов...
если в кратце - то чек идет по кол-во экспы у чара...
у впервые созданного чара экспы всегда 0...
еще один момент - если на шарде чар может потерять экспу: поставь проверку на кол-во оставшейся после снятия экспы - если будет <=0 делай SetXP(oPC, 1);
зы не претендую тут на авторство, подобные скрипты используются на многих известных мне шардах
Этот тоже хорош, пасибо
Lex, я бы спросила... Только вот не вижу темы там, для вопросов... *ищет*
А создавать новую тему из-за одного сундука, кажется как-то не очень правильно... :)
ЗЫ: К тому же, думаю, что если здесь не ответят, то и там вряд ли. :) Мне кажется, эту тему читают все тулсетовцы -- как модуле, так и шардостроители. :) Хотя, конечно, я могу ошибаться...
Аваддон
Nov 13 2004, 19:16
fali в сундуках система такая. Когда игрок кладет в него вещь в базе данных его имя+логин и к ним заносится еще тег вещи. Потом когда она отрывает сундук база данных читается и в сундуке вещи создаются по тегам. только здесь тоже есть грабли - нельзя хранить вещи в сумках и вещи которых нет в палитре. А если тебе нужен эта система скриптов - набери на ваультре Persistent Storage.
Аваддон, спасибо за объяснение. :)
QUOTE |
нельзя хранить вещи в сумках и вещи которых нет в палитре |
Насчет сумок я помню тут на форуме что-то было... Только никак не найду, где...
А насчет вещей... Это значит, что нельзя в таком сундуке хранить, например, одежду, внешность которой изменена с помощью крафта?
Аваддон
Nov 15 2004, 01:27
Ну разумеется. Мысли логически. Если у изменненой вещи нет оригинального тэга (а его и не будет) то она будет создана по своему базовому теги - тоесть в первоначальном виде.
Аваддон, жаль... :)
Но всё равно спасибо. :)
MasterMage
Nov 15 2004, 21:07
Помогите, плиззззззз!!!!!
Я не понимаю, как сделать диалог, в котором болтаю не я с НПС-ом, а НПС с НПС-ом... То есть сообщения появляются белым цветом над их головами.... И чтоб они начали появляться, когда я появляюся рядом.
Можете дать ссылку на статью, где хоть более менее прилично(полно)рассказано о скриптах,.....ъ
заранее спасибо....
строка над головой: SpeakString();
завтра в базу положу мой скрипт для разговора 2-Х существ.
MasterMage
Nov 16 2004, 18:39
Пасиб, но только(как не стыдно это признавать) я не знаю, куда созданные скрипты сувать(сори за такое слово).... В диалоге знаю, а так...Например, чтоб НПС мог сесть...Ходить, вытерать пыль....
И еще... Как сделать так, чтоб предметы в сундуках и бочках генерировались согласно уровню нашедшего...Просто самому расскладывать - ....ну не думаю, что это выход
Добавлено в [mergetime]1100622992[/mergetime]
А как вставить в свой модуль помощников.... Можно как нить их создать, а потом готовый скрипт втавить..Есть такое уже в кампании? А как настроить респаун и портал отзыва и вещь призыва к порталу(как реликвия Жнеца к примеру)
по сундукам - тут обсуждалась система лута и наполнения сундуков. Скрипты стандартные биоваровские есть и другие системы..поищи тут или на рельсах старых.
по хенчшам - сделай помощника в тулсете. Потом открой в стандартной палитре помощника биоваровского, запиши его скрипты и кинь твоему помощнику. функция AddHenchman() добавляет его в партию игрока.
по настройке портала и тд - надо стандартную компанию смотреть..в принципе и так можно написать, но у меня под рукой нет тулсета
Зачем тебе такие задачи? Ты решай те, что тебе по зубам. Начни с азов, к примеру узнай зачем нуен каждый слот НПС и что происходит в нем
MasterMage
Nov 16 2004, 20:01
Aiwan Ох...Я прочитал кучу твоих статей(3-4, вроде...

) так воть не получается по твоему сделать одну фразу белым цветом... Пишет, что никак не скомпилировать....Уф...
У мну почему-то не пишется русскими в редакторе скриптов
Добавлено в [mergetime]1100624622[/mergetime] Слоты слотами., а я даже не понимаю, как и куда вставлять скрипты....А можно какниь бе них обойтись..Или же лучше научиться! Просто у мну идея хорошая для модуля, но нет возможностей...пока ограничился локациями и диалогами с квестам...
elf-demon
Nov 16 2004, 22:22
Aiwan
у вас на сайте статья прикольная про скрипты а то я вних не очень допираю=(
Так вот статья - "Aurora Toolset" Описание функций тулсета.
Там только часть 1 аь остальные? не мог бы дать мне все? либо суда на флрум скинь ссылки либо на мыло -
elf-demon@yandex.ru
Cпасибо!
QUOTE (MasterMage @ Nov 16 2004, 23:01) |
У мну почему-то не пишется русскими в редакторе скриптов |
Русским не пишет в скрипт едиторе. Ctrl+F и в строке поиска пиши, потом копируй в скрипт.
elf-demon зайди по ссылке в Старый Город Мастеров. Найди тему Valleo, Описание Функций Тулсета на русском. Она пришпилена.
baskan
Nov 17 2004, 15:32
Вопрос..
У меня в модульных свойствах в ячейке Респавна игрока после смерти написан такой скрипт
Neverwinter Script Source |
void main() { object oPC = GetLastRespawnButtonPresser(); string sFName = GetName(oPC); int xp = GetXP(oPC); string sName = GetPCPlayerName(oPC); int iSide = GetCampaignInt(GOOD_EVIL_,sFName+sName); int n; n=GetHitDice(oPC); if ((xp-(30*n))>=0) SetXP(oPC,(xp-30*n)); else SetXP(oPC,0); ApplyEffectToObject(T_INSTANT, EffectResurrection(), oPC); switch (iSide) { case 1: AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_good_fuga"))); break; case 2: AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_evil_fuga"))); break; case 3: AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_fuga"))); break; } } |
Так вот вопрос..Почему у меня нетралы после смерти не появляютсья в своей фуге? С гудаим и ивелами все норм, а вот с нетралами неполучаеться
<small>Добавлено в 16:12</small>
и еще вопрос, вот игрок на шарде если умирает, перезаходит и он уже живой!..Как это исправить?
Neverwinter Script Source |
int iSide = GetCampaignInt(GOOD_EVIL_,sFName+sName); |
Потаму как Нейтралов скрипт не трогает.
baskan
Nov 17 2004, 17:46
QUOTE (Aiwan @ Nov 17 2004, 17:45) |
Neverwinter Script Source | int iSide = GetCampaignInt(GOOD_EVIL_,sFName+sName); |
Потаму как Нейтралов скрипт не трогает.
|
А что нужно еще дописать?
QUOTE |
и еще вопрос, вот игрок на шарде если умирает, перезаходит и он уже живой!..Как это исправить? |
MasterMage
Nov 17 2004, 22:13
Спасибо, но есть еще вопрос...
Пишу скрипт по твоему, Айван, указанию(в статье)....
Открыть дверь
void main()
{
object oDoor = GetObjectByTag("walldoor");
}
но скрипт не действует(я его в разговор вписываю)....
Может надо писать по другому....
Плизззз....
Напиши КАК ОН ДОЛЖЕН БЫТЬ В РЕДАКТОРЕ.....
P.S. - файл сохранялся нормально....
А если писал:
void main()
{
ActionOpenDoor(object oDoor = GetObjectByTag ("walldoor"));
}
тоже ничего, но на этот раз не сохраняется...все время ошибка....
baskan во первых, твой скрипт или инклюд или содержит инклюду. Он не компелится так как в нем есть объекты без описания а гадать я не имею времени. Приведи полностью код.
Во вторых тебе надо в форум шардов.
QUOTE (baskan @ Nov 17 2004, 18:32) |
и еще вопрос, вот игрок на шарде если умирает, перезаходит и он уже живой!..Как это исправить? |
Где-то это уже рассматривали, поищи. И сам подумай, у тебя наверняка стоят какие-то скрипты на все это, от смерти до входа и респавна. И как мы можем тебе подсказать то чего не знаем

Ты используешь какой-то готовый шард? Ставь задачи КОНКРЕТНО. Тогда ответят. Иначе пропустят и не потаму что влом писать, а потаму как непонятно о чем речь.
Добавлено в [mergetime]1100719173[/mergetime] Neverwinter Script Source |
void main() { object oDoor = GetObjectByTag("walldoor"); } |
Этот скрипт повествует о том, что объект Дверь, это обект с Тегом "walldoor". И все. БОЛЬШЕ НИЧЕГО В НЕМ НЕТ.
Напиши ЧТО ТЫ ХОЧЕШЬ. Я тебе скажу где ты ошибся. Я догадываюсь ты хотел что-то сделать с дверью?

Но с телепатией у меня слабовать, так что описывай...
Добавлено в [mergetime]1100719246[/mergetime] QUOTE (MasterMage @ Nov 18 2004, 01:13) |
Пишу скрипт по твоему, Айван, указанию(в статье).... |
Не стоит пинять на зеркало...

Ай яй яй!
MasterMage
Nov 17 2004, 22:35

Хорошо...Просто я не понял...
Я хотел, чтоб после X-слова стражник открыл мне дверь...Ну захотелось мне так....Ну что такого?...
Воть...
А так я уже почти понял...почти, как писать легкие скрипты....почти...(15%)
elf-demon
Nov 17 2004, 22:57
Aiwan Так там и есть только эта первая часть всей статьи! А я говорил про другие части!
QUOTE (elf-demon @ Nov 18 2004, 01:57) |
Aiwan Так там и есть только эта первая часть всей статьи! А я говорил про другие части! |
Зайдите на nwn.fireground.ru/forum и там в закладке работы с Тулсетом - эта статья вся есть
Добавлено в [mergetime]1100727835[/mergetime]
QUOTE (MasterMage @ Nov 18 2004, 01:35) |
Я хотел, чтоб после X-слова стражник открыл мне дверь...Ну захотелось мне так....Ну что такого?... |
Тогда надо так:
Neverwinter Script Source |
void main() { object oDoor = GetObjectByTag("walldoor"); SetLocked(oDoor, FALSE); } |
Ставь на ветку.
Добавлено в [mergetime]1100727895[/mergetime]
FALSE - переводится как ЛОЖЬ. Значит дверь будет открыта. TRUE - ИСТИНА. Будет закрыта.
baskan
Nov 18 2004, 15:35
А как сделать так, чтобы при заходе игркоа на сервер ему выдавался определенный предмет?(но чтобы если он уже есть в инвентаре, то уже не давалось)
DBColl
Nov 18 2004, 16:34
В OnClentEnter ставишь:
Neverwinter Script Source |
object oPC = GetEnteringObject(); if (GetTag(GetItemPossessedBy(oPC, "тег_предмета")) == "тег_предмета") { return; } else { CreateItemOnObject(OBJECT_TYPE_ITEM, "ResRefItem", oPC); ....................... } |
Типа того...
Аваддон
Nov 18 2004, 16:44
DBColl , во как

а я всегда проверяю GetIsObjectValid(GetItemPossessedBy(oPC, "тег_предмета"))
MasterMage
Nov 18 2004, 20:20
Aiwan пасиб, пробую...
Добавлено в [mergetime]1100799364[/mergetime] Так если, сначала пишется переменная и ее значение, а затем задается функция(что с переменной произойдет), дя?... Хм....
А как сделать так, чтоб стражник патрулировал местность...ставишь ему точку, так он туда идет и стопорится, т.е. назад нини...
Добавлено в [mergetime]1100801501[/mergetime] void main()
{
string sStringToSpeak = ("sss");
int nTalkVolume=TALKVOLUME_TALK;
ActionSpeakString(string sStringToSpeak, int nTalkVolume);
}
что не так....
Надоело

все время ошибка...в каждом скрипте
MasterMage
Nov 18 2004, 22:13
void main()
{
object oPC = GetEnteringObject();
object oNPC = GetObjectByTag("kel");
object oKel = GetWaypointByTag("D_KEL");
ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oKel)));
ActionDoCommand(AssignCommand(oNPC, SetFacingPoint(GetPosition(oPC))));
}
все сохранилось, но Kel не подходит.....а почему???
кстати, Айван, в твоей статье был скрипт тренеровачный-ролик...так вот он у мну пошел, но двигалась только камра и все...
elf-demon
Nov 18 2004, 22:20
Aiwan Нашёл! Спасибо!
maxxim
Nov 18 2004, 23:06
хм толково, спсибо понемного начинаю вникать в скриптинг. но все таки, ктото может поооодробно расписать как привязывать цдкей к перонажу. прочитал одноименный топ, пробовал, неполучилось. и немогу понять чем протрейсерить чебы понять геде именно не рабьотает. хотя в базу ключ пишется но меняй не меняй чар не бутиться.
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); object oNPC = GetObjectByTag("kel"); object oKel = GetWaypointByTag("D_KEL"); AssignCommand(oNPC, ActionMoveToObject(oKel)); AssignCommand(oNPC, ActionDoCommand(SetFacingPoint(GetPosition(oPC)))); } |
Это триггер? Ты понимаешь что тут написано? Скажи словами.
QUOTE (MasterMage @ Nov 19 2004, 01:13) |
кстати, Айван, в твоей статье был скрипт тренеровачный-ролик...так вот он у мну пошел, но двигалась только камра и все... |
Версия НВН? Если выше 1.32 то ясно...
Маэв Лютина
Nov 19 2004, 05:27
Господа и дамы, очередная трудность: установила себе несколько хаков. Они идут для всех версий, как написано в их описаниях. Я не могу найти объекты этих хаков в плейсиблах. Что делать? В фичурсах их тоже нету. И де они могут быть?
Аваддон
Nov 19 2004, 07:37
Быть может в каждом хаке есть свои .2da файлы. В них прописаны новые плейсейблы и модели к ним из хака. Когдаты подключаешь хаки к модулю они наверное начинаются ругаться между собой и ничего из за этого найти не можешь.
Тебе надо в директории nwn в папке utils запустить nwhak и открыть им свои хаки которые поключаешь. Выдрать из них 2da файлы с одинковыми названиями и сравнивать каждый файл из одного хака с файлом из другого хака. Когда найдешь где же там прописаный новые модели(обычно в глаза прям бросается) тебе нужно будет эти два одинаковых 2da редактировать. Тоесть что то новое из одного перенести в другое.
Утилиту для редактирования 2da можешь найти на ваульте.
QUOTE (Маэв Лютина @ Nov 19 2004, 08:27) |
В фичурсах их тоже нету. И де они могут быть? |
Т.е. ты смотрела их модели в списке всех плейсеблов? Тогда Аваддон прав. Могу порекомендовать поменять местами хаки. В смысле очередности, что-то пропадет что-то появится. 2Да-шки забивают что-то.
Ilharess
Nov 19 2004, 12:47
Приветствую. Ни кто не знает с чему равна скорость мобов в нвн.
В нвн метрах в секунду...
DBColl
Nov 19 2004, 13:07
В нвн используется фактически реальная "метровая" система. Так что НВН-метры (относительно размеров существ, строений и прочего) вполне соотносимы к реальному метражу в жизни.
Скорость мобов можно выставлять в их свойствах (Movement...). Делится по шкале от Immobile до DM-Speed.
Ilharess
Nov 19 2004, 13:23
Это понятно, млин плохо обяснил

есть функция GetDistanceToObject вовращает дистанцию в метрах, у моба в свойствах стоит скрость движения нормал.. Ни кто цисленные значения не знает? ну путь там поделить на время идт...
Аваддон
Nov 19 2004, 14:11
Ilharess Чего то я тебя не могу понять GetDistanceToObject это расстояние до объекта, а не скорость. Чего ты хочешь с этим сделать вообще? Если тебя скорость интересует ковыряй creaturesspeed.2da
DBColl
Nov 19 2004, 14:12
Это записано в одной из 2da-шек. Поищи, должно быть

.
MasterMage
Nov 19 2004, 15:36
Айван, там написано, что задан объект, сам перс(PC), точка маршрута, а затем объект идет к PC и поворачивается к нему лицом
Добавлено в [mergetime]1100868209[/mergetime] установка на триггер
1.30 версия NWN..
А лучше обрисуй задачу
Ilharess. Может оказаться что ты буксуешь на месте или вообще не туда идешь
Ilharess
Nov 19 2004, 16:33
Спасибо обошелся без расчета скростей
Ilharess
Nov 20 2004, 11:28
NW_FLAG_... какие существуют и чего означают?
Добавлено в [mergetime]1100942832[/mergetime] И еще вопрос как в нвн организовать стек action'ов
DBColl
Nov 20 2004, 12:57
Ilharess Посмотри скрипт nwscript.nss. Там все константы описаны

.
QUOTE (Ilharess @ Nov 20 2004, 10:28) |
И еще вопрос как в нвн организовать стек action'ов |
Его не надо организовывать. Он сам... Хех.
Neverwinter Script Source |
ActionMoveToObject(...); ActionSpeakString(...); ActionDoCommand(SetLocalInt(oPC, "var", TRUE)); |
Вот тебе стек акций, который будет выполняться следующим образом:
1. Непись ("хозяин" скрипта) идет куда-то...
2. После того, как дошел(!), говорит что-то.
3. После этого всего на PC устанавливается некая переменная.
QUOTE (Ilharess @ Nov 20 2004, 14:28) |
И еще вопрос как в нвн организовать стек action'ов |
Почитай тему про катсцены, тут приклееную.
MasterMage
Nov 20 2004, 13:18
Aiwan как сделать так, чтоб после наступления на триггер, НПС больше не выполнял действие...
Ну вот наступил, НПС подошел, начал диалог, вернулся....Но когда я снова наступаю, все происходит снова....Как изменить???
___
У мну тот скрипт, выше что...Все правильно, просто в теге ошибся
Добавлено в [mergetime]1100946206[/mergetime] и еще(я тебе еще не надоел?

)у мну НПС не садится на стул...скрипт написал, но он не выполняется, хотя поставил на OnUsed стула
Ты написал скрипт на OnUsed стула, но НПЦ не садится? Ну навена нада сначала нада заставить НПЦ юзать стул
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.