Скрипты: удаляющий эффект (1) и сканирующий эффект (2).
Neverwinter Script Source | void ActionRemoveEffect(object oCreature, effect eEffect) { effect eMSD = GetFirstEffect(oCreature); while (GetIsEffectValid(eMSD)) { if (GetEffectType(eMSD) == GetEffectType(eEffect)) { RemoveEffect(oCreature, eMSD); } eMSD = GetNextEffect(oCreature); } } |
Neverwinter Script Source | int HasEffect(object oCreature, effect eEffect) { int iResult = 0; effect eMSD = GetFirstEffect(oCreature); while (GetIsEffectValid(eMSD)) { if (GetEffectType(eMSD) == GetEffectType(eEffect)) { iResult = 1; } eMSD = GetNextEffect(oCreature); } return iResult; } |
Обещанный скрипт-реакция грарда на нападение на оного ПС... Впихивается в онАтакед. Скрипт делает следущее: охранник вырубает ПС и начинает с ним диалог(лтбо что-то иное (IMG: style_emoticons/kolobok_light/smile.gif) ) Neverwinter Script Source | object oFPC = GetLastAttacker(); object OS = OBJECT_SELF; DelayCommand(0.10, ClearAllActions(TRUE)); DelayCommand(0.60, ActionUseFeat(FEAT_KNOCKDOWN, oFPC)); DelayCommand(0.61, ApplyEffectToObject(1, EffectKnockdown(), oFPC, 3.0)); DelayCommand(1.00, ClearAllActions(TRUE)); if (GetCurrentHitPoints(OS)<=0) { // если гвард умер с первого удара... можно оставить пустым, можно написать реакции другим охранникам... в любом случае, если мне написать тут родной код (т.е. тот, который был у меня), то пришлось бы писать всю немаленькую систему моих кастомных реакций, что геморно... } else { DelayCommand(1.04, SetStandardFactionReputation(REPUTATION_TYPE_ENEMY, 50, oFPC)); DelayCommand(5.10, ClearAllActions(TRUE)); DelayCommand(5.20, ActionMoveToObject(oFPC, FALSE, 1.4)); } // диалог, либо что-то иное - на ваше усмотрение. |
Сообщение отредактировал Twin - Jan 9 2005, 18:00
|