
Добавлено в [mergetime]1093702954[/mergetime]
Пауза в диалоге+ возврат в диалог... это про возврат.
QUOTE (Raven @ Dec 20 2004, 19:27) |
Мож кто находил более лучшее решение делать старт катсцены сначала модуля кроме как делать паузу при начале игры ? |
QUOTE (Aiwan @ May 9 2004, 14:27) |
Убедительно прошу не ставить скрипты роликов на OnEnter стартовой локации при начале модуля! Если у вас большая необходимость в этом, то просто напишите задержку на несколько секунд для выполнения вашей скриптовой сценки. Дело в том, что при старте модуля движок игры выполняет внутренние команды необходимые для старта и ваш скрипт пройдет при неуправляемой камере, которая упрется в пол или еще куда. |
Neverwinter Script Source |
//:://///////////////////////////////////////////// //:: Created By: MasterMage © //:: Created On: //:://///////////////////////////////////////////// void main() { //------------------------------Objects---------------------------- object oPC=GetEnteringObject(); object oD=GetObjectByTag("Djegan"); object oK=GetObjectByTag("Kalaxana"); object oWP1=GetWaypointByTag("impire_point_1"); object oWP2=GetWaypointByTag("impire_point_2"); object oWP3=GetWaypointByTag("impire_point_3"); object oWP4=GetWaypointByTag("impire_point_4"); object oWP5=GetWaypointByTag("point_dj"); object oWPpc1=GetWaypointByTag("pc_point_1"); object oWP6=GetWaypointByTag("impire_point_6"); object oWPpc2=GetWaypointByTag("pc_point_2"); object oWPpc3=GetWaypointByTag("pc_point_3"); //-------------------------------Location--------------------------- location Loc1=GetLocation(oWP1); //-------------------------------Effects---------------------------- effect eCutInv = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY); effect oE1=EffectVisualEffect(VFX_IMP_TORNADO); effect oE2=EffectVisualEffect(VFX_IMP_UNSUMMON); //-------------------------------Script----------------------------- if (!GetIsPC(oPC)||GetLocalInt(oPC,"impire_rolic")==TRUE) return; { AssignCommand(oPC,ClearAllActions()); SetLocalInt(oPC,"impire_rolic",TRUE); SetLocalLocation(oPC,"impire",GetLocation(oPC)); SetCutsceneMode(oPC); AssignCommand(oPC,JumpToObject(oD)); ApplyEffectToObject(DURATION_TYPE_PERMANENT,eCutInv,oPC); DelayCommand(4.5, AssignCommand(oPC,SetCameraFacing(0.0,12.0,49.0,CAMERA_TRANSITION_TYPE_MEDIUM))); DelayCommand(10.0,AssignCommand(oD,ActionMoveToObject(oWP5,FALSE))); DelayCommand(11.0,AssignCommand(oPC,ActionMoveToObject(oWP5,FALSE,1.5))); DelayCommand(14.0,AssignCommand(oPC,SetFacingPoint(GetPosition(oWP1)))); DelayCommand(17.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,oE1,Loc1,2.5)); DelayCommand(17.1,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,oE2,Loc1,2.6)); DelayCommand(17.5,AssignCommand(oK,JumpToObject(oWP1))); DelayCommand(18.0,AssignCommand(oK,ActionSpeakString("Джегань! Где тебйа носит?"))); DelayCommand(18.5,AssignCommand(oD,SetFacingPoint(GetPosition(oK)))); DelayCommand(19.0,AssignCommand(oPC,ActionMoveToObject(oK,FALSE,1.5))); DelayCommand(20.0, AssignCommand(oPC,SetCameraFacing(20.0,7.0,55.0,CAMERA_TRANSITION_TYPE_SLOW))); DelayCommand(23.0,AssignCommand(oD,ActionMoveToObject(oK,FALSE,0.5))); DelayCommand(24.0,AssignCommand(oD,ActionSpeakString("Калахана!"))); DelayCommand(25.0,AssignCommand(oK,ActionMoveToObject(oWP2,FALSE,15.0))); DelayCommand(27.5,AssignCommand(oPC,ActionMoveToObject(oWP2,FALSE,16.0))); DelayCommand(34.5,AssignCommand(oPC,SetFacingPoint(GetPosition(oD)))); DelayCommand(35.5,AssignCommand(oD,ActionMoveToObject(oPC,TRUE,0.5))); DelayCommand(40.0,AssignCommand(oD,ActionSpeakString("Что это за поведение?"))); DelayCommand(41.5, AssignCommand(oPC,SetCameraFacing(270.0,15.0,45.0,CAMERA_TRANSITION_TYPE_FAST))); DelayCommand(44.0,AssignCommand(oK,ActionSpeakString("Мать Исповедница что-то замышлйает!"))); DelayCommand(45.0,AssignCommand(oD,ActionSpeakString("Это не дает тебе повода так бесцеремонно обращатьсйа со мной!"))); DelayCommand(47.0,FadeToBlack(oPC,FADE_SPEED_FASTEST)); DelayCommand(47.3,AssignCommand(oD,ActionMoveToObject(oWP2,TRUE,15.0))); DelayCommand(47.4,AssignCommand(oPC,JumpToObject(oWPpc1))); DelayCommand(47.5,AssignCommand(oPC,SetFacing(200.0))); DelayCommand(47.7,FadeFromBlack(oPC,FADE_SPEED_SLOW)); DelayCommand(48.0, AssignCommand(oPC,SetCameraFacing(200.0,15.0,55.0,CAMERA_TRANSITION_TYPE_SLOW))); DelayCommand(51.0, AssignCommand(oPC,SetCameraFacing(125.0,15.0,55.0,CAMERA_TRANSITION_TYPE_SLOW))); DelayCommand(54.0,FadeToBlack(oPC,FADE_SPEED_FASTEST)); DelayCommand(54.3,AssignCommand(oPC,JumpToObject(oWP2))); DelayCommand(54.4,AssignCommand(oPC,SetFacingPoint(GetPosition(oK)))); DelayCommand(54.5, AssignCommand(oPC,SetCameraFacing(270.0,7.0,49.0,CAMERA_TRANSITION_TYPE_FAST))); DelayCommand(54.8,FadeFromBlack(oPC,FADE_SPEED_SLOW)); DelayCommand(55.0,AssignCommand(oK,ActionMoveToObject(oWP2,FALSE,0.3))); DelayCommand(55.1,AssignCommand(oD,ActionMoveToObject(oWP6,FALSE,0.3))); DelayCommand(59.0,FadeToBlack(oPC,FADE_SPEED_FASTEST)); DelayCommand(60.3,AssignCommand(oPC,JumpToObject(oWPpc2))); DelayCommand(60.4,AssignCommand(oPC,SetFacing(180.0))); DelayCommand(60.6,AssignCommand(oK,ActionMoveToObject(oWP3,FALSE))); DelayCommand(60.6,AssignCommand(oD,ActionMoveToObject(oWP3,FALSE))); DelayCommand(60.7,FadeFromBlack(oPC,FADE_SPEED_SLOW)); DelayCommand(62.1, AssignCommand(oPC,SetCameraFacing(180.0,3.0,79.0,CAMERA_TRANSITION_TYPE_FAST))); DelayCommand(64.0,AssignCommand(oPC,ActionMoveToObject(oWPpc3,FALSE))); DelayCommand(67.0,AssignCommand(oK,ActionMoveToObject(oWP4,FALSE))); DelayCommand(67.1,AssignCommand(oD,ActionMoveToObject(oWP4,FALSE))); DelayCommand(73.0,AssignCommand(oPC,ActionMoveToObject(oWP4,FALSE,3.0))); DelayCommand(80.8,AssignCommand(oK,SetFacingPoint(GetPosition(oD)))); DelayCommand(81.0,AssignCommand(oD,SetFacingPoint(GetPosition(oK)))); DelayCommand(82.0,AssignCommand(oK,ActionSpeakString("Я искала тебйа везде. Где ты был? У менйа есть план, как убрать Ричарда с дороги..."))); DelayCommand(89.0,AssignCommand(oD,ActionSpeakString("Дела были. Только сегоднйа приехал. Говори, что за план. Йа так устал, что ничему не удивлюсь."))); DelayCommand(95.5, AssignCommand(oPC,JumpToLocation(GetLocalLocation(oPC,"impire")))); DelayCommand(95.5,SetCutsceneMode(oPC,FALSE)); DelayCommand(98.5,RemoveEffect(oPC,eCutInv)); } } |
Neverwinter Script Source |
#include "x2_inc_cutscene" |
Neverwinter Script Source |
CutActionAttack CutActionMoveAwayFromObject CutActionMoveToObject CutActionMoveToLocation CutApplyEffectAtLocation CutBlackScreen CutDeath CutRemoveEffects |
Neverwinter Script Source |
CutActionMoveToObject! |
Neverwinter Script Source |
CutActionMoveToLocation(15.5, oЧТОНИБУДЬ, , FALSE); |
Neverwinter Script Source |
CutApplyEffectAtLocation(31.5, oPC, DURATION_TYPE_INSTANT, 464, oWP); |
Neverwinter Script Source |
CutApplyEffectToObject(27.0,DURATION_TYPE_INSTANT,VFX_FNF_SCREEN_BUMP, oPC); |
QUOTE (Nokoll @ Mar 11 2005, 14:55) |
И так к делу многие спрашивают зачем нужна знаменитая инклюда, Neverwinter Script Source #include "x2_inc_cutscene" |
Neverwinter Script Source |
#include "x2_inc_cutscene" |
QUOTE |
вполне достаточно было бы сказать, что находится она(x2_inc_cutscene) в .\data\xp2_scripts.bif - весит почти 100k, посему постить ее, пожалуй, не стоит |
QUOTE |
А вот если ты ее опишешь... Какая ф-ция что делает и для чего может применяться... |
Neverwinter Script Source |
StartCutscene |
Neverwinter Script Source |
SetCutsceneMode(oPC);. |
Neverwinter Script Source |
StartCutscene |
Neverwinter Script Source |
void StartCutscene(object oPC, int iCut); |
Neverwinter Script Source |
void main() { object oPC = GetPCSpeaker(); int iCut = 1; |
Neverwinter Script Source |
DelayCommand(1.0, |
Neverwinter Script Source |
AssignCommand(oPC, ActionMoveToLocation (oCam1))); |
Neverwinter Script Source |
// Waypoints. location lPCStart = GetLocation(GetNearestObjectByTag("pc_start_wp", oPC)); |
Neverwinter Script Source |
CutJumpToLocation(3.0, oPC, lPCStart); |
Neverwinter Script Source |
CutActionMoveToLocation(3.5, oPC, lPCStart, FALSE); |
Neverwinter Script Source |
CutActionMoveToLocation(3.5, oPC, lPCStart, FALSE); |
Neverwinter Script Source |
CutActionMoveToLocation |
Neverwinter Script Source |
DelayCommand(3.5.. |
Neverwinter Script Source |
CutBlackScreen(0.0, oPC); |
Neverwinter Script Source |
CutFadeFromBlack(3.5, oPC, FADE_SPEED_MEDIUM); |
Neverwinter Script Source |
CutPlayAnimation(12.8, oPC, ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 2.0); |
Neverwinter Script Source |
CutClearAllActions(26.0, oPC, TRUE); |
Neverwinter Script Source |
CutPlaySound(27.2, oPC, "vs_nfenthim_dead"); |
Neverwinter Script Source |
CutDeath(27.2, oDead2, FALSE); |
Neverwinter Script Source |
CutJumpToObject(43.5, oPC, oСа1); |
Neverwinter Script Source |
CutFadeOutAndIn(43.1, oPC, 1.5); |
Neverwinter Script Source |
void CutCreateFire(int iCut, object oPC). |
Neverwinter Script Source |
{ int x = 1; |
Neverwinter Script Source |
object oWP = GetNearestObjectByTag("Efv", oPC, x); |
Neverwinter Script Source |
float fDelay = 0.0; |
Neverwinter Script Source |
if(iCut == GetLocalInt(oPC, "nCutsceneNumber")) { while(GetIsObjectValid(oWP)) { DelayCommand(fDelay, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), GetLocation(oWP))); fDelay = fDelay + 0.13; 8( x = x + 1; oWP = GetNearestObjectByTag("hx_crsytal_cut_fire", oPC, x); } } } |
Neverwinter Script Source |
MultiJump |
Neverwinter Script Source |
AssignCommand(oPC, MultiJump(oPC, "PC_START")); |
Neverwinter Script Source |
CutActionCastFakeSpellAtObject(116.5, SPELL_WEIRD, oWа, oPC, PROJECTILE_PATH_TYPE_DEFAULT); |
Neverwinter Script Source |
CutJumpToLocation(3.0, oPC, lPCStart); |
Neverwinter Script Source |
CutSetCamera(28.8, oPC, CAMERA_MODE_TOP_DOWN, 270.0, 3.0, 75.0, CAMERA_TRANSITION_TYPE_FAST); CutSetCamera(29.8, oPC, CAMERA_MODE_TOP_DOWN, 270.0, 3.0, 75.0, CAMERA_TRANSITION_TYPE_SNAP); |
Neverwinter Script Source |
void main() { //--------------------------Creature----------------------------- object oPC = GetEnteringObject(); object oWHO = GetNearestObjectByTag("Guild_WHO"); //спрашивающий object oTO = GetObjectByTag("Guild_TO"); //отвечающий object o3 = GetObjectByTag("Guild_MAG1"); object o4 = GetObjectByTag("Guild_MAG2"); object o5 = GetObjectByTag("Guild_WARRIOIR"); object o6 = GetObjectByTag("Guild_Rpgue"); //---------------------------Location---------------------------- location lClose = GetLocation(GetObjectByTag("CLOSE_ARENA")); location lTrone = GetLocation(GetObjectByTag("Open_ARENA")); //---------------------------Waypont----------------------------- object oWPwho1 = GetObjectByTag("WP_WHO_01"); object oWPwho2 = GetObjectByTag("WP_WHO_02"); object oWPwho3 = GetObjectByTag("WP_WHO_03"); object oWPto1 = GetObjectByTag("WP_TO_1"); object oWPto2 = GetObjectByTag("WP_TO_2"); object oWPpc1 = GetObjectByTag("WP_PC_1"); object oWPpc2 = GetObjectByTag("WP_PC_2"); object oWPpc3 = GetObjectByTag("WP_PC_3"); object oWPpc4 = GetObjectByTag("WP_PC_4"); //----------------------------Effect------------------------------ effect eCutPar = EffectCutsceneParalyze(); effect eSlow = EffectSlow //----------------------------НАчало------------------------------ SetCutsceneMode(oPC); } |
QUOTE |
ПОМОГИТЕ!!! !! Пытался сделать кут-сцену(третий раз), всё как бы шло нормально (что странно), а потом набираю "SetCutsceneMode(oPC);", а он пишет "ОШИБКА: НЕТ ЛЕВОЙ СКОБКИ В СПИСКЕ" Вот что я пока написал... |
Neverwinter Script Source |
effect eSlow = EffectSlow(); |
Neverwinter Script Source |
object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; |
QUOTE |
И еще, какая команда затемняет экран что бы герой мог спокойненько телепортироваться в другой вейпонт? |
Neverwinter Script Source |
DelayCommand(2.0,FadeToBlack(oPC, FADE_SPEED_FASTEST)); |
Neverwinter Script Source |
DelayCommand(5.0, FadeFromBlack(oPC, FADE_SPEED_FASTEST)); |
Neverwinter Script Source |
// Activate dem cut-scene int CUTSCENE_NUMBER = 1; #include "x2_inc_cutscene" void CallPlayAnimation2(int nCutscene, object oObject, int nAnimation, float fLength) { if(nCutscene == GetLocalInt(oObject, "nCutsceneNumber")) { AssignCommand(oObject, PlayAnimation(nAnimation, 0.3, fLength)); } } void CutPlayAnimation2(float fDelay, object oObject, int nAnimation, float fLength, int iShift = TRUE) { int nCutscene = GetActiveCutsceneNum(); fDelay = CutCalculateCurrentDelay(fDelay, nCutscene); DelayCommand(fDelay, DelayCommand(GetShift(oObject, iShift), CallPlayAnimation2(nCutscene, oObject, nAnimation, fLength))); } void main() { int nDoOnce = GetLocalInt(GetArea(OBJECT_SELF), "NPC1"); if(nDoOnce == 1) return; SetLocalInt(GetArea(OBJECT_SELF), "NPC2", 1); object oMor = GetObjectByTag("Sa"); object oCamera1 = GetObjectByTag("wp_camera1a"); object oCamera2 = GetObjectByTag("wp_camera2a"); object oPC = GetEnteringObject(); object oCameraM = GetObjectByTag("camera_"); object oNPC1 = GetObjectByTag("NPC1"); object oNPC2 = GetObjectByTag("NPC2"); object oCopyPC = GetObjectByTag("PC_COP");//Sozdaiot copiu PC s tegom/ effect eVis = EffectVisualEffect(VFX_DUR_DEATH_ARMOR); CutSetActiveCutscene(CUTSCENE_NUMBER, CUT_DELAY_TYPE_CUMULATIVE); CutSetActiveCutsceneForObject(oPC, CUTSCENE_NUMBER, TRUE); CutSetActiveCutsceneForObject(oNPC1, CUTSCENE_NUMBER); CutSetActiveCutsceneForObject(oNPC2, CUTSCENE_NUMBER); CutSetCutsceneMode(0.2, oPC, TRUE, CUT_CAMERA_HEIGHT_MEDIUM, TRUE, TRUE); CutApplyEffectToObject2(0.0,и так-далее, я думаю полный мой скрипт тебе ненужен. |
QUOTE (DraX @ Aug 8 2005, 13:15) |
А ты сваяй какой-нибудь туториал по кут-сценам. А че, звучит здорово? Может малек и запаришся, зато народ уважать будет |
QUOTE (DraX @ Aug 12 2005, 13:06) |
(CAMERA_TRANSITION_TYPE) |
QUOTE (DraX @ Aug 25 2005, 16:58) |
ЗЫ: Еще лучше сделать выход из затемнения. Этакое интро. |
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); if (!GetIsPC(oPC)) return; if (GetLocalInt(oPC, "hallwayfirstvisit")== 0) { SetLocalInt(oPC, "hallwayfirstvisit", 1); DelayCommand(0.2, SetCutsceneMode(oPC)); AssignCommand(oPC, SetCameraFacing(120.0, 8.0, 40.0, CAMERA_TRANSITION_TYPE_SNAP)); AssignCommand(oPC, DelayCommand(1.0, SetCameraFacing(180.0, 25.0, 40.0, CAMERA_TRANSITION_TYPE_FAST))); DelayCommand(4.5, SetCutsceneMode(oPC, FALSE)); } } |
Neverwinter Script Source |
void main() { if(GetIsPC(oPC) && !GetLocalInt(OBJECT_SELF, "TRIGGER")) { FadeToBlack(oPC, FADE_SPEED_FASTEST); SetLocalInt(OBJECT_SELF, "TRIGGER", TRUE); AssignCommand(oPC, ClearAllActions()); DelayCommand(1.5, SetCutsceneMode(oPC, TRUE)); DelayCommand(2.2, AssignCommand(oPC, JumpToObject(oWp))); DelayCommand(2.3, AssignCommand(oPC, SetCameraFacing(120.0, 8.0, 40.0, CAMERA_TRANSITION_TYPE_SNAP))); DelayCommand(3.0, FadeFromBlack(oPC, FADE_SPEED_MEDIUM)); DelayCommand(4.0, AssignCommand(oPC, SetCameraFacing(180.0, 25.0, 50.0, CAMERA_TRANSITION_TYPE_SLOW))); /// и так далее... |
QUOTE |
Аищан, у меня в Навигаторе есть статья, чудным образом похожая на твою (один в один), поясни пожалуйста. |
QUOTE |
И во-вторых - я сейчас делаю модуль, думаю, что на него уйдет ещё много времени, сейчас это не важно. Важно то, что у меня перестали работать Цутсценьы !!!!!!!!!!!!! Что такое ??????!!!!!!!!! :сщоон: |
QUOTE |
А ка же, если его не снимать!? Снимать надо обязательно!? |