Сейчас посмотрю как у нас на Геме это было написано.
Neverwinter Script Source |
int TestDivineFocus( object oTarget, int nClass ) { int bResult = TRUE; // Bard also affected, and some classes too if (nClass == CLASS_TYPE_CLERIC ) { // Используем стандартный символ до установки полной поддержки системы Diety object oSymbol = GetItemInSlot( INVENTORY_SLOT_LEFTHAND, oTarget ); bResult = GetTag(oSymbol) == "cleric_symbol"; } else if( nClass == CLASS_TYPE_DRUID ) { // Символ друида может просто лежать в рюкзаке чара object oSymbol = GetItemPossessedBy( oTarget, "druid_symbol" ); bResult = GetIsObjectValid( oSymbol ); } else if( nClass == CLASS_TYPE_PALADIN ) { // Используем стандартный символ до установки полной поддержки системы Diety object oSymbol = GetItemInSlot( INVENTORY_SLOT_LEFTHAND, oTarget ); bResult = GetTag(oSymbol) == "cleric_symbol"; } else if( nClass == CLASS_TYPE_RANGER ) { object oSymbol = GetItemPossessedBy( oTarget, "druid_symbol" ); bResult = GetIsObjectValid( oSymbol ); } return bResult; } |
QUOTE (bloodwheel @ Mar 2 2005, 16:38) |
Ставлю скрип, чтоб нпс после квеста выдал кастомную шмотку - неработает. (CreateItemOnObject) |
QUOTE (bloodwheel @ Mar 2 2005, 16:38) |
ставлю свой кастом - опять не работает. |
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); CreateItemOnObject("ResRef", oPC, 1); // Создаем предметы. ResRef, у кого, // количкство в стеке (например стрел 30) } |
Neverwinter Script Source |
#include "X0_I0_SPELLS" #include "x2_inc_spellhook" void main() { /* Spellcast Hook Code Added 2003-06-20 by Georg If you want to make changes to all spells, check x2_inc_spellhook.nss to find out more */ if (!X2PreSpellCastCode()) { // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell return; } object oCaster = OBJECT_SELF; if (HasItem(oCaster,"bottle_fire")==FALSE) { ActionSpeakString("У вас нет необходимых компонентов!", TALKVOLUME_SHOUT); return; } // End of Spell Cast Hook //Declare major variables int nCasterLvl = GetCasterLevel(oCaster); int nMetaMagic = GetMetaMagicFeat(); int nDamage; float fDelay; effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL); effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M); effect eDam; //Get the spell target location as opposed to the spell target. location lTarget = GetSpellTargetLocation(); //Limit Caster level for the purposes of damage if (nCasterLvl > 10) { nCasterLvl = 10; } //Apply the fireball explosion at the location captured above. ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget); //Declare the spell shape, size and the location. Capture the first target object in the shape. object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); //Cycle through the targets within the spell shape until an invalid object is captured. while (GetIsObjectValid(oTarget)) { if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF)) { if((GetSpellId() == 341) || GetSpellId() == 58) { //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIREBALL)); //Get the distance between the explosion and the target to calculate delay fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20; if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay)) { //Roll damage for each target nDamage = d6(nCasterLvl); //Resolve metamagic if (nMetaMagic == METAMAGIC_MAXIMIZE) { nDamage = 6 * nCasterLvl; } else if (nMetaMagic == METAMAGIC_EMPOWER) { nDamage = nDamage + nDamage / 2; } //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion. nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FIRE); //Set the damage effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE); if(nDamage > 0) { // Apply effects to the currently selected target. DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget)); //This visual effect is applied to the target object not the location as above. This visual effect //represents the flame that erupts on the target not on the ground. DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget)); } } } } //Select the next target within the spell shape. oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE); } } |
Neverwinter Script Source |
#include "X0_I0_SPELLS" #include "x2_inc_spellhook" void main() { /* Spellcast Hook Code Added 2003-06-20 by Georg If you want to make changes to all spells, check x2_inc_spellhook.nss to find out more */ if (!X2PreSpellCastCode()) { // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell return; } object oCaster = OBJECT_SELF; if ((HasItem(oCaster,"bottle_fire") == FALSE) && (GetIsDM(oCaster) == FALSE)) { ActionSpeakString("У вас нет необходимых компонентов!", TALKVOLUME_SHOUT); return; } // End of Spell Cast Hook |
Neverwinter Script Source |
#include "x2_inc_spellhook" void main() { /* Spellcast Hook Code Added 2003-06-20 by Georg If you want to make changes to all spells, check x2_inc_spellhook.nss to find out more */ if (!X2PreSpellCastCode()) { // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell return; } object oCaster = OBJECT_SELF; if((HasItem(oCaster,"bottle_fire") == FALSE) && (GetIsDM(oCaster) == FALSE)) //вот тут выдает ошибку"непонятное условие компилятора" { ActionSpeakString("У вас нет необходимых компонентов!", TALKVOLUME_SHOUT); return; } // End of Spell Cast Hook //Declare major variables including Area of Effect Object effect eAOE = EffectAreaOfEffect(AOE_PER_DELAY_BLAST_FIREBALL); location lTarget = GetSpellTargetLocation(); int nDuration = GetCasterLevel(OBJECT_SELF) / 2; //Make sure the duration is at least one round if (nDuration == 0) { nDuration = 1; } int nMetaMagic = GetMetaMagicFeat(); //Check Extend metamagic feat. if (nMetaMagic == METAMAGIC_EXTEND) { nDuration = nDuration *2;//Duration is +100% } //Create an instance of the AOE Object using the Apply Effect function ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eAOE, lTarget, RoundsToSeconds(nDuration)); } |
Neverwinter Script Source |
#include "nw_i0_plot" |
Neverwinter Script Source |
void main() { object oChest = GetObjectByTag("licorice_Chest"); object oItem = GetFirstItemInInventory(oChest); while GetIsObjectValid(oItem) { DestroyObject(oItem); oItem = GetNextItemInInventory(oChest); } CreateItemOnObject("licorice",oChest,1); ExecuteScript(600.0,"spw_chestmaster"); } |
Neverwinter Script Source |
while GetIsObjectValid(oItem) |
Neverwinter Script Source |
{ while (GetIsObjectValid(oItem) == TRUE) { DestroyObject(oItem); oItem = GetNextItemInInventory(oChest); } } |
QUOTE (Лито @ Mar 4 2005, 18:32) | ||
но на 5 строчке
компилятор выдает ошибку, мол нет левой скобки в выражении ![]() |
QUOTE (Лито @ Mar 5 2005, 15:05) |
ААА помогайте, сделал через спелл хук, компоненты на заклы(сила быка, кошачья грация...). Так он компоненты даже с бутылок просит! что делать? |
QUOTE |
какой скрипт на то что бы при входе в локу давали ХР? |
Neverwinter Script Source |
void main() { object oPC = GetEnteringObject(); GiveXPToCreature(oPC, 100); } |
Neverwinter Script Source |
{ object oPC = GetFirstPC(); object oChair = GetObjectByTag("TAG_STULA"); AssignCommand(oPC, ActionSit(oChair)); } |
Neverwinter Script Source |
void main() { object oPC = GetFirstPC(); AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 100.0)); } |
QUOTE (Лито @ Mar 5 2005, 15:05) |
Вопрос такой. Как спавнить вещи в сундук, через некоторое время после того, как из него все забрали. То есть у меня есть в локации ягодный куст, его оборвали и через 10 минут на этот куст создаются предмет "ягоды"... кустов много |
Neverwinter Script Source |
void main() { object oPC = GetLastUsedBy(); if (!GetIsPC(oPC)) return; if (GetLocalInt(OBJECT_SELF, "delay")==0) { CreateItemOnObject("ягодка_resref",oPC,1); SetLocalInt(OBJECT_SELF, "delay", 1); DelayCommand(600.0, SetLocalInt(OBJECT_SELF, "delay", 0)); } } |
QUOTE (Лито @ Mar 5 2005, 15:05) |
P.S. скрипт(тот что приведен в теме вопросы и ответы) Лекса не пашет. |
QUOTE (Лито @ Mar 5 2005, 15:05) |
ААА помогайте, сделал через спелл хук, компоненты на заклы(сила быка, кошачья грация...). Так он компоненты даже с бутылок просит! что делать? |
Neverwinter Script Source |
object oItem = GetSpellCastItem(); //часть тела скрипта... if (GetIsObjectValid(oItem)) { break; } |
QUOTE (Kondor @ Mar 8 2005, 04:25) |
Еще одна и не последняя просьба, как заставить перса спать только на кровати, если это сложно, тогда не надо |
QUOTE (Kondor @ Mar 8 2005, 04:25) |
Вспомнил, а как менять в скриптах стул и диван например(когда сидиш), а то для стула у меня есть, а для остальных нету или нважно. |
QUOTE (Leon-punk @ Mar 7 2005, 19:01) |
А где вообще пишуться скрипты? |
Neverwinter Script Source |
void main() { if(GetLastSpell() == SPELL_GRENADE_HOLY) { ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_STRIKE_HOLY), GetLocation(OBJECT_SELF)); SetLocalInt(GetModule(), "flr_altar_fired", 1); } } |
Neverwinter Script Source |
void main() { ExecuteScript(GetTag(GetItemActivated()), OBJECT_SELF); } |
Neverwinter Script Source |
void main() { object oPC; oPC = GetItemActivator(); FloatingTextStringOnCreature("Test!", oPC); } |
QUOTE |
Открываем "Модульные Свойства" и в используемые скрипты добавляем "onactivate" и "topor". |
QUOTE |
void main() { object oPC = GetItemActivator(); ExecuteScript(GetTag(GetItemActivated()), oPC); } |
QUOTE |
void main() { object oPC = OBJECT_SELF; FloatingTextStringOnCreature("Test!", oPC); } |
QUOTE (Shadenuat @ Mar 9 2005, 03:03) |
Если так, то почему у меня ничего не выявляется?! *скрежещет зубами друид* |
Neverwinter Script Source |
void main() { object oPC = GetItemActivator(); object oItem = GetItemActivated(); if(GetTag(oItem) == "topor") { FloatingTextStringOnCreature("Test!", oPC); } |
QUOTE |
Предмет занятия - "использование уникальной силы на себя" (активация предмета). |
QUOTE (mamuc @ Mar 9 2005, 13:07) |
![]() п.с. мы флудеры ![]() ![]() ![]() |
Neverwinter Script Source |
#include "x2_inc_cutscene" void main() { object oPC = GetEnteringObject(); object oBch = GetObjectByTag("HER"); object oLord = GetObjectByTag("y_zioi"); object oCt1 = GetObjectByTag("Sluga_1"); object oCt2 = GetObjectByTag("Sluga_2"); object oCt3 = GetObjectByTag("Sluga_3"); object oCt4 = GetObjectByTag("Sluga_4"); object oCt5 = GetObjectByTag("Sluga_5"); //------------------------------------------------------------------------------ object oIm1 = GetWaypointByTag("CAM1"); object oIm2 = GetWaypointByTag("CAM2"); object oIm3 = GetWaypointByTag("CAM3"); //------------------------------------------------------------------------------ effect eEF3 = EffectVisualEffect(VFX_FNF_LOS_EVIL_30); effect eEF4 = EffectVisualEffect(VFX_IMP_HARM); effect eCutInv = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY); //------------------------------------------------------------------------------ SetCutsceneMode(oPC); AssignCommand(oPC, ClearAllActions()); AssignCommand(oLord, ClearAllActions()); AssignCommand(oBch, ClearAllActions()); //------------------------------------------------------------------------------ DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eCutInv,oPC)); DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eCutInv,oLord)); //------------------------------------------------------------------------------ DelayCommand(5.6, AssignCommand(oPC, SetCameraFacing(180.0, 0.0, 90.0, CAMERA_TRANSITION_TYPE_SNAP))); CutActionMoveToObject(3.5, oPC, oIm1, FALSE); DelayCommand(9.6, AssignCommand(oPC, SetCameraFacing(358.6, 3.0, 90.0, CAMERA_TRANSITION_TYPE_SNAP))); //------------------------------------------------------------------------------ MusicBackgroundChangeNight(GetArea(OBJECT_SELF), 43); MusicBackgroundChangeDay(GetArea(OBJECT_SELF), 43); //------------------------------------------------------------------------------ DelayCommand(14.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eEF4,oPC)); DelayCommand(12.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eEF4,oLord)); DelayCommand(12.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eEF3,oLord)); DelayCommand(13.0, ActionDoCommand(RemoveEffect(oLord,eCutInv))); DelayCommand(14.0, ActionDoCommand(RemoveEffect(oPC,eCutInv))); //------------------------------------------------------------------------------ DelayCommand(15.0, AssignCommand(oLord, ActionStartConversation(oPC))); } |
QUOTE (Nokoll @ Mar 10 2005, 16:43) |
DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eCutInv,oPC)); DelayCommand(2.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,eCutInv,oLord)); |