nO_oadu
Sep 4 2005, 22:13
Спасибочки!! Теперь засветились
[MoF]Darth_Nick
Sep 7 2005, 20:19
в 1.66 у всех глаза помойму должны светицца
Ребята помогите сделать вот такую штуку. Надо что бы, когда герой наступет на тригер к нему подбегал NPC, со словами типа "Вы не могли бы мне помочь" и даёт задание, а потом когда герой соглашается он говорит типа (я буду ждать вас в(название места)" и исчезает. Да ещё NPC должен ждать его там где сказал (после того как герой выполнит миссию). Путано объяснила, но надеюсь вы меня поняли. Помогите пожалуйста.
Ещё подскажите плиз, где скачать программу чтобы анимацию делать.
-fenix-
Sep 9 2005, 09:15
QUOTE (yudgi @ Sep 9 2005, 09:07) |
Ребята помогите сделать вот такую штуку. Надо что бы, когда герой наступет на тригер к нему подбегал NPC, со словами типа "Вы не могли бы мне помочь" и даёт задание, а потом когда герой соглашается он говорит типа (я буду ждать вас в(название места)" и исчезает. |
Вот скрипт на тригере
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); object oNPC = GetObjectByTag("ТАГ НПС");
if(GetIsPC(oPC)) { AssignCommand(oNPC, ActionStartConversation(oPC)); AssignCOmmand(oNPC, SpeakString("Вы не могли бы мне помочь")); } } |
На последнию ветку диалога в заклатке совершенные действия дестроим НПС
Neverwinter Script Source |
void main() { DestroyObject(OBJECT_SELF); } |
QUOTE (yudgi @ Sep 9 2005, 09:07) |
Да ещё NPC должен ждать его там где сказал (после того как герой выполнит миссию). |
После определенных действий, которые означают конец миссии, можно создать НПС на нужной точке. Тогда нужно поставить на эту точку вейпоинт, вот скрипт.
Neverwinter Script Source |
void main() { object oWP = GetWaypointByTag("ТАГ ВЕЙПОИНТА"); string sResRefNPC = "РЕСРЕФ НПС";
CreateObject(OBJECT_TYPE_CREATURE, sResRefNPC, GetLocation(oWP)); } |
А скрипт в тригере ставить на OnEnter? Да ещё подскажи пожалуйста как в строке эту фразу "Вы не могли бы мне помочь" на русскрм написать, потому что он у меня только на английском пишет, хотя версия тулсета русская.
1. Да.
2. Слей патч для русского у нас.
acdcee
Sep 11 2005, 14:13
Приветствую всех на форуме, уу меня опять тут появилось пару дурацких вопросов:
1.Как сделать так что бы строка в диалоге появилась когда PC будет 4 уровня, то усть если игрок 4 уровня то у НПС появляеться диалог.
2. Вот скртип на то что бы при нанесении дамага кукла давала опыт:
void main ()
{
object o Damager=GetLastDamager();
if(oDamager !=OBJECT_INVALID)
GiveXPToCreatur(oDamager, 15);
}
Вот он работает а как сделать так что бы когда игрок получил 4 уровень то ему опыт не давали бы,и аттакует не все время а только не которое время, а потом опять на водишь.
3.Очень важный вопрос : не давно увидел скрипт на смерть не помню кто писал но помню что ЛЕКС его чуть поправил, так вот все работает но когда переходишь в локу где умер то гварды тебя начинают бить и очень больно
, как поправить?
4.И еще один вопорос есть игрок он умерает так вот как сделать так чтобы после смерти его оставался труп и допустим друг или кто еще может его взять и принести священику, дальше свщеник воскрешает его за 300 голда, и умершего переносят в место где его воскресили.................
5.Помогите так что бы когда в локу попадаешь то карте что выводиьтся при нажатии кнопки М, не чего бы не показывала.
Помогите плизззззззззззз если не трудно.Все вопросы связаны с игрой по локальной сети, а не одиночной!!!
У меня тут появилась одна мысль когда реализую (можь заработает) покажу
-fenix-
Sep 11 2005, 14:29
QUOTE (acdcee @ Sep 11 2005, 15:13) |
1.Как сделать так что бы строка в диалоге появилась когда PC будет 4 уровня, то усть если игрок 4 уровня то у НПС появляеться диалог. |
Функции для получения уровня вроде нет (LEX: есть. GetHitDice() ) , но есть для получения опыта, с ее помощью и можно такое реализовать. Просто надо знать, сколько опыта соответствует 4 левалу и в скрипте проверять, больше или равно число опыта у героя 4 левалу.
Сама функция
Neverwinter Script Source |
GetXP(object oCreature) |
QUOTE (acdcee @ Sep 11 2005, 15:13) |
Вот он работает а как сделать так что бы когда игрок получил 4 уровень то ему опыт не давали бы,и аттакует не все время а только не которое время, а потом опять на водишь. |
Про левал написано выше. А с атакой, нужно делать чистку акций у атакуещего при опеределенном условии. Скажеи на OmDamaged сделать счетчик, тоесть чтобы при каждом вызове события он увеличивался на 1 и когда он достигает 5(пять ударов), то он устанавливается на 0 и акции у ПС чистятся - ClearAllActions.
QUOTE (acdcee @ Sep 11 2005, 15:13) |
3.Очень важный вопрос : не давно увидел скрипт на смерть не помню кто писал но помню что ЛЕКС его чуть поправил, так вот все работает но когда переходишь в локу где умер то гварды тебя начинают бить и очень больно smile.gif, как поправить? |
А поподробнее можно, какой скрипт, как поправил?
QUOTE (acdcee @ Sep 11 2005, 15:13) |
4.И еще один вопорос есть игрок он умерает так вот как сделать так чтобы после смерти его оставался труп и допустим друг или кто еще может его взять и принести священику, дальше свщеник воскрешает его за 300 голда, и умершего переносят в место где его воскресили................. |
Гдето в теме сриптах человек писал свою ситсему, ну прям копия, что ты описываешь, поищи. Две темы скриптов объеденили вроде посмотри странице на 53, а мож и ошибаюсь.
QUOTE (-fenix- @ Sep 11 2005, 15:29) |
(LEX: есть. GetHitDice() ) |
И правда, буду знать. А по названию не скажешь, замаскированная функция какая-то
acdcee
Sep 11 2005, 19:16
Во - во а по подробней мона на этом, всмысле я так и не нашел эту функцию и плизззз кто нить напишите скрипт если не сложно
[/QUOTE]1.Как сделать так что бы строка в диалоге появилась когда PC будет 4 уровня, то усть если игрок 4 уровня то у НПС появляеться диалог.[QUOTE]
И вот созрел еще один вопрос на счет того, что елси попадаешь в фугу при смерти карта (нажми букву М
)
была бы закрыта, т.е не чего бы не отображала(или это 2да делают, там изменять, скриптами не как)
вот так вот
acdcee
QUOTE |
1.Как сделать так что бы строка в диалоге появилась когда PC будет 4 уровня, то усть если игрок 4 уровня то у НПС появляеться диалог |
Тут не нуен писать скрипт... Просто когда пишшь диалог, есть такая закладка, "условие действия", там нажимаешь "мастер скриптов" и выбираешь что тебе нужно...
-fenix-
Sep 11 2005, 21:27
DEM, там нет уровня.
Скрипт
Neverwinter Script Source |
int StartingConditional() { if(GetHitDice(GetPCSpeaker()) == 4) return FALSE;
return TRUE; } |
QUOTE (acdcee @ Sep 11 2005, 14:13) |
5.Помогите так что бы когда в локу попадаешь то карте что выводиьтся при нажатии кнопки М, не чего бы не показывала. |
Помогите плиз. Я как то скрипт искала, чтобы PC был только мужчиной, спасибо Aiwan, что написал, только он почему то не работает (или может я дура) и редактор выдаёт ошибку.
Скрипт такой:
if (GetGender(oPC) != GENDER_MALE)
{
int iD = (GetMaxHitPoints(oPC)*2);
effect eDamage = EffectDamage(iD);
ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,oPC);
Debug("Упс... ИзвЕните мадам!");
return;
}
Voshod
Sep 12 2005, 10:14
Вот вопрос возник: можно ли убрать окно общения, то есть, чтобы то что говорят персонажи было видно только над их головами?
yudgi, извини
Вот так точно будет работать.
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); int iD = (GetMaxHitPoints(oPC)*2); effect eDamage = EffectDamage(iD); if (GetGender(oPC) != GENDER_MALE) { ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,oPC); return; } } |
Добавлено в [mergetime]1126512233[/mergetime]
QUOTE (Voshod @ Sep 12 2005, 13:14) |
Вот вопрос возник: можно ли убрать окно общения, то есть, чтобы то что говорят персонажи было видно только над их головами? |
Neverwinter Script Source |
// The caller will immediately speak sStringToSpeak (this is different from // ActionSpeakString) // - sStringToSpeak // - nTalkVolume: TALKVOLUME_* void SpeakString(string sStringToSpeak, int nTalkVolume=TALKVOLUME_TALK)
// Add a speak action to the action subject. // - sStringToSpeak: String to be spoken // - nTalkVolume: TALKVOLUME_* void ActionSpeakString(string sStringToSpeak, int nTalkVolume=TALKVOLUME_TALK) |
acdcee
Sep 12 2005, 16:53
Приветствую всех кто есть на форуме мастеров, т.е на toolset по скриптам вот так вот он тоже не работает
[QUOTE]Скрипт
Neverwinter Script Source
int StartingConditional()
{
if(GetHitDice(GetPCSpeaker()) == 4)
return FALSE;
return TRUE;
}
Пишет что после if не может идти нулевое значение,
так что че то нето
Привет! На что скрипт то? Я вообще-то не спец, но помойму после if пробел должен стоять. Или ты его просто когда писал пропустил.
-fenix-
Sep 12 2005, 17:36
Тут была ошибка, но при ней ветка бы не появилась вообще, а вот скомпилироваться все должно было хорошо.
Neverwinter Script Source |
int StartingConditional() { if(GetHitDice(GetPCSpeaker()) == 4) return TRUE;
return FALSE; } |
QUOTE (yudgi @ Sep 12 2005, 18:16) |
Привет! На что скрипт то? Я вообще-то не спец, но помойму после if пробел должен стоять. Или ты его просто когда писал пропустил. |
Пробелы нужны для НАГЛЯДНОГО разделения, чтобы зрительно было легче разбераться в коде, каждый сам решает, удобно ему ставить пробел или нет.
Ну и для разделения операторов само-сабой.
Спасибо fenix, я то думала, что их обязательно ставить.
Если ещё не надоела с глупыми вопросами, можно ещё один?
У меня по сюжету герой просыпается в храме без инвентаря, амуниции, вообще без ничего. В комнате стоит сундук, как сделать так чтобы в сундуке оружее, одежда и т.д. появлялись в зависимости от класса и рассы героя. А то будет там какая-нибудь тяжёлая броня, а волшебник например, не сможет её носить. Спасибочки заранее!
acdcee
Sep 12 2005, 18:02
Neverwinter Script Source |
void main() { object oNPC = OBJECT_SELF; // наш умерший НПС string sResRef = "РесРеф трупа";// наш труп в палитре string sTag = GetTag(oNPC);// Получаем ТАГ убитого НПС location lLoc = GetLocation(oNPC);// Получаем локацию, в которой умер НПС // создаем невидимый объект, для переброски в него инвентаря убитого object oTrup = CreateObject(OBJECT_TYPE_PLACEABLE, sResRef, lLoc, TRUE, sTag);
SetIsDestroyable(FALSE);// чтоб тело убитого НПС не исчезало
object oItem = GetFirstItemInInventory(oNPC);// первый объект в инвентаре убитого НПС while (GetIsObjectValid(oItem))// если объект правильный { if (GetDroppableFlag(oItem))// Проверяем выбрасываемый ли объект CopyObject(oItem, lLoc, oTrup);// копируем DestroyObject(oItem);// удаляем oItem = GetNextItemInInventory(oNPC);// следующий объект в инвентаре убитого НПС }
int i = 0;// устанавливаем i на 0
oItem = GetItemInSlot(i,oNPC); // нулевой слот в инвентаре убитого НПС while (i<=13)// i не должно быть больше 13 { if (GetDroppableFlag(oItem))// Проверяем выбрасываемый ли объект CopyObject(oItem, lLoc, oTrup);// копируем DestroyObject(oItem);// удаляем i++;// увеличиваем i на еденицу oItem = GetItemInSlot(i,oNPC);// следующщий слот в инвентаре убитого НПС } } |
если это с некоторыми изменениями вставить в onDeath мщдуля то может ли он заработаьт как я описывал выше на счет появления трупа игрока после смерти ?
а вот это тоже с изменениями на то что бы священик резуректнул игрока (умершего)
Neverwinter Script Source |
#include "nw_i0_plot" void main() { object oPC = GetPCSpeaker(); int iHP =GetMaxHitPoints(); effect eHeal = EffectHeal (iHP); effect eHealVis = EffectVisualEffect (VFX_IMP_HEALING_X); ActionCastFakeSpellAtLocation(SPELL_HEALING_CIRCLE,GetLocation(oPC)); DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eHeal,oPC)); DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eHealVis,oPC,10.0)); DelayCommand (2.0, RemoveEffects(oPC)); |
конечно это можь и не основа и не сами те скрипты о которых мона подумать но можь как общий план или каркас(пища для ума
)
так кто нить на досуги может посмотреть или попробывать написать (помочь как то)
Конечно сам тоже писать буду если что то получиться или нет то выложу
Добавлено в 19:04 А тот скрипт был на то что бы как только твой перс становиться 4 уровня в диалоге появляеться строка о том что его могут телепортнуть
LEX: еще раз увижу скрипт не оформленный как выше - выдам предупреждение.
-fenix-
Sep 12 2005, 18:18
yudgi, пожалуйста, в скриптах для новичков - тема такая в этом форуме. Там самый первый скрипт, посмотри и попробуй сделать, если не получется спращивай
QUOTE (acdcee @ Sep 12 2005, 19:02) |
если это с некоторыми изменениями вставить в onDeath мщдуля то может ли он заработаьт как я описывал выше на счет появления трупа игрока после смерти ? |
Да
QUOTE (acdcee @ Sep 12 2005, 19:02) |
а вот это тоже с изменениями на то что бы священик резуректнул игрока (умершего) |
То же можно, скрипт будет ставиться на OnSpellCastAt трупа.
Dik Morris
Sep 12 2005, 18:20
Насчет сундука.
yudgi заместо
q1rogueitem и ему, подобных, ставишь РесРеф нужного предмета, сам скрипт на
onOpenсундука.
Чтобы, определить нужный класс, гляди на константу, например: CLASS_TYPE_DRUID, вот значит указываешь РесРеф, предмета для друида
Neverwinter Script Source |
void main() { object oLastOpener = GetLastOpenedBy(); object oContainer = OBJECT_SELF;
if (GetLocalInt(OBJECT_SELF, "NW_L_OPENONCE") > 0 || GetIsObjectValid(oLastOpener) == FALSE) { return; } SetLocalInt(OBJECT_SELF, "NW_L_OPENONCE",1);
if (GetLevelByClass(CLASS_TYPE_DRUID, oLastOpener) >= 1) { CreateItemOnObject("q1druiditem", oContainer); } else if (GetLevelByClass(CLASS_TYPE_WIZARD, oLastOpener) >= 1) { CreateItemOnObject("q1mageitem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_SORCERER, oLastOpener) >= 1) { CreateItemOnObject("q1sorcereritem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_PALADIN, oLastOpener) >= 1) { CreateItemOnObject("q1paladinitem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_BARBARIAN, oLastOpener) >= 1) { CreateItemOnObject("q1barbitem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_MONK, oLastOpener) >= 1) { CreateItemOnObject("q1monkitem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_CLERIC, oLastOpener) >= 1) { CreateItemOnObject("q1clericitem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_ROGUE, oLastOpener) >= 1) { CreateItemOnObject("q1rogueitem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_RANGER, oLastOpener) >= 1) { CreateItemOnObject("q1rangeritem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_FIGHTER, oLastOpener) >= 1) { CreateItemOnObject("q1fighteritem", OBJECT_SELF); } else if (GetLevelByClass(CLASS_TYPE_BARD, oLastOpener) >= 1) { CreateItemOnObject("q1barditem", OBJECT_SELF); } } |
ЗЫ: Скрипт, взят из компании,
СоУ. Т.к самому, писать в ломы
И еще:
QUOTE |
У меня по сюжету герой просыпается в храме без инвентаря, амуниции, вообще без ничего |
Смотри, в теме, СКРИПТЫ ДЛЯ НОВИЧКОВ. (Блин, люди темы, пишут парятся, а не пользуются!:DB: )
Спасибо, только мой PC не умер, так что трупа нет. Это как бы начало модуля, стартовая точка, если не трудно, напиши как в этом случае быть(и на какой слот скрипт ставить). И ещё подскажи пожалуйста скрипт, чтобы после смерти PC его нельзя было воскресить. А инвентарь то я уже давно убила, я просто про сундук спрашивала. Мне нужно чтобы предметы именно в сундуке были, а не на РС.
Вот интересно, я когда нибудь научусь скриптить или нет. (LEX: сам задавался таким вопросом когда-то)
А за написанные выше скрипты спасибо они мне тоже пригодятся. Ребята, что бы я без вас делала?!
Dik Morris
Sep 12 2005, 18:30
QUOTE |
И ещё подскажи пожалуйста скрипт, чтобы после смерти PC его нельзя было воскресить. |
Зайди в модульные свойства. Затем, на вкладке, onPlayerDeath, открой, стоящий по умолчанию там, скрипт. и в самый, низ добавь строку:
Neverwinter Script Source |
PopUpDeathGUIPanel(oPlayer, FALSE, TRUE, 0); |
ЗЫ: ОБЯЗАТЕЛЬНО, сохрани скрипт под другим именем.
QUOTE |
Вот интересно, я когда нибудь научусь скриптить или нет. |
Ха! Когда, я пришел на форум я даже не знал что такое функция! Но со временем научился.
ЗЫ: научишся, если не будешь бросать Тулсет, ровно как и скрипты.
2_advanced
Sep 12 2005, 23:48
QUOTE |
Вот интересно, я когда нибудь научусь скриптить или нет. (LEX: сам задавался таким вопросом когда-то) |
угу.. всех иногда это мучает.. а потом задумываешься - а нафига это нужно было
зы. может стоит начать с бейсика/с/асма? там книги есть.. и НВС на С похож
стоит задуматься..
После смерти PC появляется окно, как оставить там своё сообщение? Подскажите скрипт (сообщение примерно такое же, как в "Проклятье Левора" когда берёшь героя-женщину и она умирает).
----------------------------------
LEX: ну и глянула бы в ПЛных скриптах.
Neverwinter Script Source |
// Spawn in the Death GUI. // The default (as defined by BioWare) can be spawned in by PopUpGUIPanel, but // if you want to turn off the "Respawn" or "Wait for Help" buttons, this is the // function to use. // - oPC // - bRespawnButtonEnabled: if this is TRUE, the "Respawn" button will be enabled // on the Death GUI. // - bWaitForHelpButtonEnabled: if this is TRUE, the "Wait For Help" button will // be enabled on the Death GUI (Note: This button will not appear in single player games). // - nHelpStringReference // - sHelpString void PopUpDeathGUIPanel(object oPC, int bRespawnButtonEnabled=TRUE, int bWaitForHelpButtonEnabled=TRUE, int nHelpStringReference=0, string sHelpString="") |
Кто хорошо поработал с хенчами? Есть ограничение на количество, т.е. больше одного можно брать?
NedWarN
Sep 13 2005, 16:27
QUOTE |
После смерти PC появляется окно, как оставить там своё сообщение? |
Изменить можно в файле Dialog.tlk подправь стандартное сообщение на своё.
Хочешь изменить картинку, нарисуй таких же размеров, с фарматом TGA.
QUOTE |
Подскажите скрипт (сообщение примерно такое же, как в "Проклятье Левора" когда берёшь героя-женщину и она умирает). |
Дык посмотри в леворе.
Редактировать -- Модульные Свойства -- События && OnClientEnter/
Добавлено в [mergetime]1126618152[/mergetime]
QUOTE |
Кто хорошо поработал с хенчами? Есть ограничение на количество, т.е. больше одного можно брать? |
Кажись ограничения нет, только скриптом ставят свои ограничения.
Dik Morris
Sep 13 2005, 16:30
В скрипт OnModuleLoad добавь строку:
Neverwinter Script Source |
SetMaxHenchmen(2); |
acdcee
Sep 13 2005, 17:46
[QUOTE]Тут была ошибка, но при ней ветка бы не появилась вообще, а вот скомпилироваться все должно было хорошо.
Neverwinter Script Source |
int StartingConditional() { if(GetHitDice(GetPCSpeaker()) == 4) return TRUE; else return FALSE; } |
LEX:
этот скрипт, стоящий на строке в закладке "text appears when" будет закрывать ее для игрока, уровень которого != 4.
и чего не так?
А у тебя Феникс он компилировался?
Я чуть изменил его , все вроде ок скомпилировался но ветка эта есть при любом лвл
Лекс прошу тебя если будешь в хорошом настроении или свободен посмотри что не так тут или как сделать чтоб работал ?
Добавлено в 18:51 И еще вопрос у меня один НПС дает задание убить 4 волков слабее и одного босса(волка)
После того как убиваешь волка в диалоге появляеться строка но в журнале не чего по этому квету нету, как сделать так что бы появилась.
Совет: В следующий раз скрипт пиши как положено, Lex уже предупреждал об этом, а его надо слушать.
QUOTE (acdcee @ Sep 13 2005, 17:46) |
И еще вопрос у меня один НПС дает задание убить 4 волков слабее и одного босса(волка) После того как убиваешь волка в диалоге появляеться строка но в журнале не чего по этому квету нету, как сделать так что бы появилась. |
Кажется это скриптом делается в них я полный аут, попробуй сделать так: открываешь диалог и ту строку где у тебя говориться о выполнении квеста в правом нижнем углу разны вкладки, выбираешь вкладку "Другие действия" в окне "журнал" вводишь название этого квеста с волками,(естественно само задание и его выполнение должны быть прописаны у тебя в редакторе журнала). Попробуй, если не получится умные люди тебе скрипт напишут, меня уже 1000 раз выручали.
acdcee
Sep 13 2005, 19:56
[QUOTE]LEX:
этот скрипт, стоящий на строке в закладке "text appears when" будет закрывать ее для игрока, уровень которого != 4.
и чего не так?
мне надо что бы наооборот открывала когда перс 4 уровня елы палы так нельзя было сказать
а я то мучаюсь что за фигня, еще раз когда перс 4 уровня у НПС появляеться строка, а не закрывается
Добавлено в [mergetime]1126630729[/mergetime] Я хочу спросить какой эффект накладывает священик когда ресает ? это для резуректа трупа........ когда игрок умерает
это
QUOTE (acdcee @ Sep 13 2005, 20:56) |
мне надо что бы наооборот открывала когда перс 4 |
и это
QUOTE (acdcee @ Sep 13 2005, 20:56) |
закрывать ее для игрока, уровень которого != 4 |
одно и то же.
если тебе 4 и выше, то ставь там >=
если до 4-го, то <=
а если только 4, то ==
QUOTE (acdcee @ Sep 13 2005, 20:56) |
это для резуректа трупа |
EffectResurrection()
acdcee
Sep 13 2005, 22:08
Другая трабла в том что он этот скрипт не компилирует
почему то пишет , что после иф не может идти нулевое значение, как ты думаешь скрипт сам правильно написан ? Или можь я че не так делаю?
LEX: Ессно правильно написан, там трудно ошибиться.
13.09.2005 23:09:20: 0 Errors. 'test' compiled successfully.
-fenix-
Sep 14 2005, 11:38
QUOTE (acdcee @ Sep 13 2005, 18:46) |
Я чуть изменил его , все вроде ок скомпилировался но ветка эта есть при любом лвл |
QUOTE (acdcee @ Sep 13 2005, 23:08) |
Другая трабла в том что он этот скрипт не компилирует |
Ни чего не понял????????????
В чем проблема, если изменил, то как??????
Archangel
Sep 14 2005, 12:06
А можно ли сделать так, чтобы игрок вообще никогда не мог респауниться? Если можно, то как?
-fenix-
Sep 14 2005, 12:17
Ты про это??
QUOTE |
И ещё подскажи пожалуйста скрипт, чтобы после смерти PC его нельзя было воскресить.
|
QUOTE (Dik Morris @ Sep 12 2005, 19:30) |
Зайди в модульные свойства. Затем, на вкладке, onPlayerDeath, открой, стоящий по умолчанию там, скрипт. и в самый, низ добавь строку:
Neverwinter Script Source | PopUpDeathGUIPanel(oPlayer, FALSE, TRUE, 0); |
|
Archangel
Sep 14 2005, 12:41
Нет. Я имел ввиду такую ситуацию: тебя замочили, появляется табличка с опциями:
"Загрузиться"
"Респаун"
"Выйти из игры"
Дык вот надо, чтобы после нажатия на "Респаун" игроку выводилось что-то типа: "Брейся", или на худой конец его бы просто сново убивало. Так можно?
Как изменить заклинание?
например добавить в некоторые спасброски, изменить время действия..
Dik Morris
Sep 14 2005, 15:25
QUOTE (Archangel @ Sep 14 2005, 15:41) |
Дык вот надо, чтобы после нажатия на "Респаун" игроку выводилось что-то типа: "Брейся", или на худой конец его бы просто сново убивало. Так можно? |
Канэчно. Ищи слот в модульных свойствах OnPlayerRespawn
Neverwinter Script Source |
void main() { object oRespawner = GetLastRespawnButtonPresser(); AssignCommand(oRespawner, SpeakString("Побрейся, чувак!")); } |
Помогите пожалуйста, в мануале помощи новичкам есть такой скрипт:
Neverwinter Script Source |
void main() { object oNPC=GetObjectByTag("NPC_2"); object oWp=GetWaypointByTag("WP_2"); string sString="Привет!!!"; ActionDoCommand(AssignCommand(oNPC, ActionMoveToObject(oWp,FALSE))); ActionDoCommand(AssignCommand(oNPC,SpeakString(sString))); ActionDoCommand(AssignCommand(oNPC,ActionPlayAnimation (ANIMATION_FIREFORGET_SALUTE,1.0,2.0))); } |
Но у меня в редакторе он не компилируется и выдаёт
ОШИБКА: ПОТЕРЯ АНАЛИЗАТОРА ПРЕМЕННОЙ
Подскажите в чём ошибка.
-fenix-
Sep 15 2005, 10:42
yudgi, в данном скрипте нет ошибок.
Люди, либо у вас редакторы какие-то странные, что наврятли, либо ошибки, когда вы эти скрипты к себе копировали, не чаяно что-то стерли, изменили. Скажем ОШИБКА: ПОТЕРЯ АНАЛИЗАТОРА ПРЕМЕННОЙ, может быть если вы случайно изменили функции определения объектов, вместо GetObjectByTag у вас GetObjectByTg или вместо GetWaypointByTag у вас GetWaypointByTaggg или что-то в таком духе. А тут показываете рабочие скрипты.
А может я не прав и у вас тупой редактор???
NedWarN
Sep 16 2005, 19:19
2 zmey попробуй незаметно, отделить хенча, от ПК например в разговоре. И джампить его в другой модуль, а там опять прицепить. может помоч.
//-------------
[NSS]#include "x0_i0_henchman"
void main()
{
object oPC = GetPCSpeaker();
string szHench = "РесРеф"
object oHench = GetHenchman(oPC, 1);
if (GetTag(oHench) != szHench)
oHench = GetHenchman(oPC, 2);
FireHenchman(oPC, oHench);
}
[NSS/]
//--------------
Либо попробуй, приказать скриптом чтобы каждый раздел предметов, будь ето хоть броня мечи и т.д проверился. но это мало вероятно.[NNS]
object oIte = GetItemInSlot(INVENTORY_SLOT_ARMS, ohench);
if(GetIsObjectValid(oIte))
{
SetDroppableFlag(oIte, FALSE);
}
oGear = GetItemInSlot(INVENTORY_SLOT_ARROWS, ohench);
if(GetIsObjectValid(oIte))
{
SetDroppableFlag(oIte, FALSE);
}
oGear = GetItemInSlot(INVENTORY_SLOT_BELT, ohench);
if(GetIsObjectValid(oIte))
{
SetDroppableFlag(ohench, FALSE);
}
[NSS/}
Archangel
Sep 16 2005, 19:21
Вот тут нашел в теме "Вопросы и ответы по тулсету":
QUOTE |
ВОПРОС Можно ли поменять экран при загрузке модуля или локации? ОТВЕТЫ Можно, редактированием loadscreens.2da. Есть утила специальная на ваульте, которая делает в нужном формате этот скрин. |
Не мог бы кто-нибудь дать ссылочку на эту самую утилитку?
Клемент Астилон
Sep 16 2005, 19:57
-fenix-
Sep 17 2005, 11:13
2NedWarN, дело не в проблеме переброски хенча в следующий модуль, а сохранении его инвентаря. При переходе в новый модуль перебрасывается перс БЕЗ ВЕЩЕЙ и для перебросски вещей нужно писать скрипт.
QUOTE (NedWarN @ Sep 16 2005, 20:19) |
2 zmey попробуй незаметно, отделить хенча, от ПК например в разговоре. И джампить его в другой модуль, а там опять прицепить. может помоч. |
Прыжка тут нет и работать он не будет. Тут определяется РесРеф(string szHench = "РесРеф"), а сравнивается с Тагом(if (GetTag(oHench) != szHench)).
Neverwinter Script Source |
#include "x0_i0_henchman" void main() { object oPC = GetPCSpeaker(); string szHench = "РесРеф" object oHench = GetHenchman(oPC, 1); if (GetTag(oHench) != szHench) oHench = GetHenchman(oPC, 2); FireHenchman(oPC, oHench); } |
QUOTE (NedWarN @ Sep 16 2005, 20:19) |
Либо попробуй, приказать скриптом чтобы каждый раздел предметов, будь ето хоть броня мечи и т.д проверился. но это мало вероятно. |
Это можно(нужно) делать циклом, а вещи из инвенторя ни как, кроме как циклом не перенести.
2zmey
Если есть левора(а она наверное есть), открой в первой части(Prelude (3)) ЛесАдх, найди дверь ADHEWOOD_EXIT2 и посмотри стоящий на ней скрипт - dm_end_module(он там один). В нем запускаются скрипты для копирования вещей - bm_inv_transit1 и для возврата вещей - bm_inv_transit2.
Vitalist
Sep 18 2005, 11:42
Подскажите:
1) скрипт, при захиде на которого, NPC подбегает к игроку и начинает разговор
2) можно ли повесить на NPC какой-нибудь постоянный визуальный эфект? Нужно чтобы он типа светился...
-fenix-
Sep 18 2005, 12:01
QUOTE (Vitalist @ Sep 18 2005, 12:42) |
1) скрипт, при захиде на которого, NPC подбегает к игроку и начинает разговор |
Да тыщуу раз уже писали!!!
На OnEnter тригера.
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); object oNPC = GetObjectByTag("ТАГ НПС");
if(GetIsPC(oPC)) AssignCommand(oNPC, ActionStartConversation(oPC)); } |
QUOTE (Vitalist @ Sep 18 2005, 12:42) |
2) можно ли повесить на NPC какой-нибудь постоянный визуальный эфект? Нужно чтобы он типа светился... |
Neverwinter Script Source |
ApplyEffectToObject (Прмиенить эффект уже к объекту) void ApplyEffectToObject(int nDurationType, effect eEffect, object oTarget, float fDuration=0.0f)
//int nDurationType - определяет, сколько этот эффект будет продолжаться : //DURATION_TYPE_INSTANT - мгновенно //DURATION_TYPE_PERMANENT - всегда //DURATION_TYPE_TEMPORARY - временно //effect eEffect - прмиеняемый эффект //object oTarget - объект, к оторому будет применяться эффект //float fDuration - длительность эффекта (если в nDurationType стоит //DURATION_TYPE_TEMPORARY) |