QUOTE (Lex @ Jan 23 2006, 01:42) |
ну.. что мешает в iprp_feats.2da поставить коэф. 1? Тогда левелрестрикт нам не помеха. |
QUOTE |
типа положил 2 шмотки, результат - одна шмотка? |
Neverwinter Script Source |
object GetFirstItemInInventory(object oTarget=OBJECT_SELF) object GetNextItemInInventory(object oTarget=OBJECT_SELF) itemproperty GetFirstItemProperty(object oItem) itemproperty GetNextItemProperty(object oItem) void AddItemProperty(int nDurationType, itemproperty ipProperty, object oItem, float fDuration=0.0f) |
Neverwinter Script Source |
void main() { object oOb = GetFirstItemInInventory(OBJECT_SELF);//первый итем int iA;//счетчик //будет проверять пока не закончатся вещи while(oOb != OBJECT_INVALID) { //сравниваем таг взятой вещи с тагом камней if(GetTag(oOb) != "ТАГ ОДНОГО КАМНЯ" || GetTag(oOb) != "ТАГ ДРУГОГО КАМНЯ") { //если таг не подходит ни к одному из камней, то считаем эту вещ iA = iA + 1; } oOb = GetNextItemInInventory(OBJECT_SELF);//следующий итем } //если кол-во вещей больше 1 или скольких нужно, то возврат скрипта if(iA>1) return; //если с кол-вом вещей все нормально, то пишешь, что там дальше //... } |
QUOTE (-fenix- @ Jan 25 2006, 17:41) |
if(GetTag(oOb) != "ТАГ ОДНОГО КАМНЯ" || GetTag(oOb) != "ТАГ ДРУГОГО КАМНЯ") |
Neverwinter Script Source |
void main() { location lLoc = GetLocation(GetWaypointByTag("fb_way")); // вейпойнт object oTroll = GetNearestObjectByTag("fsdfsd"); // ближайщий объект с тагом fsdfsd AssignCommand(oTroll,ActionCastSpellAtLocation(SPELL_FIREBALL,lLoc)); // кастим } |
Neverwinter Script Source |
// The action subject will fake casting a spell at lLocation; the conjure and // cast animations and visuals will occur, nothing else. // - nSpell // - lTarget // - nProjectilePathType: PROJECTILE_PATH_TYPE_* void ActionCastFakeSpellAtLocation(int nSpell, location lTarget, int nProjectilePathType=PROJECTILE_PATH_TYPE_DEFAULT) |
Neverwinter Script Source |
if(GetBaseItemType(oItem)==BASE_ITEM_*) |
Neverwinter Script Source |
if(GetStringLeft(sTag, 8)!="vns_ips_") |
Neverwinter Script Source |
void CheckIsHere(object oTarget, string sOrder) { if(GetDistanceBetween(OBJECT_SELF, oTarget) < 4.0) { ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 1.0); ActionDoCommand(_CreateItemOnObject(sOrder, oTarget)); } else { SpeakString("Куда вы ушли??"); ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW, 1.0, 1.0); ActionDoCommand(_CreateObject(OBJECT_TYPE_ITEM, sOrder, GetLocation(OBJECT_SELF), TRUE)); } ActionDoCommand(SetLocalInt(OBJECT_SELF, "vir_waiter_busy", FALSE)); } void GoToObject(object oTarget, float fTimeout) { ActionForceMoveToLocation(GetLocation(oTarget), TRUE, fTimeout); ActionDoCommand(SetFacingPoint(GetPosition(oTarget))); } void WalkToObject(object oTarget, float fTimeout) { ActionForceMoveToObject(oTarget, TRUE, 2.0, fTimeout); ActionDoCommand(SetFacingPoint(GetPosition(oTarget))); ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0, 1.0); } void GoToPlayer(object oTarget, string sOrder, float fTimeout) { ActionForceMoveToLocation(GetLocation(oTarget), TRUE, fTimeout); ActionDoCommand(SetFacingPoint(GetPosition(oTarget))); ActionDoCommand(CheckIsHere(oTarget, sOrder)); } void GiveBottleTo(object oPC, string sOrder) { if (oPC != oShouter) oPotionWaypoint = GetNearestObjectByTag(sPotionWaypointTag,oPC); if (GetDistanceBetween(oPC, oPotionWaypoint)<=2.5) { WalkToObject(oPotionWaypoint, 15.0); ActionDoCommand(_CreateObject(OBJECT_TYPE_ITEM, sOrder, RandomLocationFrom(GetLocation(oPotionWaypoint), 0.2, 0.2),TRUE)); } else { GoToPlayer(oPC, sOrder, 15.0); //ActionDoCommand(_CreateItemOnObject(sOrder, oPC)); } } void main() { ........ if (nGroupOrder == TRUE) { SpeakString("Group order processing..."); oGroupMember = GetFirstFactionMember(oShouter); while(GetIsObjectValid(oGroupMember)) { if(GetObjectSeen(oGroupMember)) GiveBottleTo(oGroupMember, sOrder); oGroupMember = GetNextFactionMember(oShouter); } } else { GiveBottleTo(oShouter, sOrder); } // ActionForceMoveToObject(GetObjectByTag(sWaiterWaypointTag), FALSE, 0.5, 10.0); // ActionDoCommand(SetFacing(GetFacing(GetWaypointByTag(sWaiterWaypointTag)))); ActionDoCommand(SetLocalInt(OBJECT_SELF, "vir_waiter_busy", FALSE)); DelayCommand(0.2, SetCommandable(FALSE)); AssignCommand(OBJECT_SELF, ActionDoCommand(SetCommandable(TRUE))); } |
Neverwinter Script Source |
object oSelf = OBJECT_SELF; AssignCommand(oSelf, ActionForceMoveToObject(GetObjectByTag(sWaiterWaypointTag), FALSE, 0.5, 10.0)); AssignCommand(oSelf, ActionDoCommand(SetFacing(GetFacing(GetWaypointByTag(sWaiterWaypointTag))))); AssignCommand(oSelf, ActionDoCommand(SetLocalInt(oSelf, "vir_waiter_busy", FALSE))); AssignCommand(oSelf, ActionDoCommand(SetCommandable(TRUE, oSelf))); DelayCommand(0.3, SetCommandable(FALSE, oSelf)); |
QUOTE |
virusman |
Neverwinter Script Source |
GiveXPToCreature() |
Neverwinter Script Source |
/// даем игроку 100 опыта. Ставь где хошь. void main() { object oPC = GetFirstPC(); GiveXPToCreature(oPC ,100); } |
QUOTE |
Gives nXpAmount to oCreature, adjusted by any multiclass penalty. |
CODE |
void main() { object oPC=GetItemActivator(); object oItem=GetItemActivator(); location lTarget; if("panel"==GetTag(oItem)) { lTarget=GetItemActivatedTargetLocation(); AssignCommand(oPC,ActionJumpToLocation(lTarget)); }; } |
CODE |
object oPC=GetItemActivator(); object oItem=GetItemActivator(); |
QUOTE |
Как преобразовать тип vector в тип location? |
Neverwinter Script Source |
// Create a location. location Location(object oArea, vector vPosition, float fOrientation) |
QUOTE |
Нэш, ну ты отразил |
QUOTE |
Я ничо не понял зачем эта функция. Теперь мне интересно где ее используют? |
QUOTE (justshurik @ Feb 3 2006, 23:46) |
Чето заглохла эта тема ![]() |
QUOTE (justshurik @ Feb 3 2006, 23:46) |
Как делать указатели и ссылки на переменные в редакторе скриптов? |
QUOTE ([MoF) |
Darth_Nick,Feb 4 2006, 05:38]а зачем? это не с++(к примеру) ... |
Neverwinter Script Source |
void main() { object oCommander = GetNearestObjectByTag("ast_s_commader"); int oTrueFalse = FALSE; if (GetIsDay()) { oTrueFalse=FALSE; } else { oTrueFalse=TRUE; } if (GetDistanceBetween(oCommander, OBJECT_SELF)<3.0) ActionDoCommand(AssignCommand(OBJECT_SELF, ClearAllActions(FALSE))); if (GetDistanceBetween(oCommander, OBJECT_SELF)>6.0) { ActionDoCommand(AssignCommand(OBJECT_SELF, ActionForceFollowObject(oCommander, 0.0))); } else { ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oCommander, oTrueFalse, 1.0f))); } } |
Neverwinter Script Source |
void main() { object oW1 = GetWaypointByTag("ast_s_1level001"); object oW2 = GetWaypointByTag("ast_s_1level002"); object oW3 = GetWaypointByTag("ast_s_1level003"); object oW4 = GetWaypointByTag("ast_s_1level004"); object oW5 = GetWaypointByTag("ast_s_1level005"); object oW6 = GetWaypointByTag("ast_s_1level006"); object oW7 = GetWaypointByTag("ast_s_1level007"); object oW8 = GetWaypointByTag("ast_s_1level008"); string speak1 = "Ñ äîðîãè!!!"; string speak2 = "Ïîñòîðîíèñü!!!"; string speak3 = "Âñå ïîäîìàì!!! Íèêîãî íå äîëæíî áûòü íà óëèöàõ, íî÷üþ!!!"; object oPC = GetFirstPC(); int oTrueFalse = FALSE; if (GetIsDay()) { oTrueFalse=FALSE; } else { oTrueFalse=TRUE; } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW1, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW3, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW2, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW3, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW4, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW5, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW6, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW7, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW8, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) { switch (Random(3)+1) { case 1: ActionSpeakString(speak1, TALKVOLUME_SHOUT); break; case 2: ActionSpeakString(speak2, TALKVOLUME_SHOUT); break; case 3: ActionSpeakString(speak3, TALKVOLUME_SHOUT); break; } } } |
QUOTE (Nashman @ Feb 5 2006, 04:02) |
На капитана я вешаю такой скрипт: |
Neverwinter Script Source |
//это кто, капитан или кто-то посторонний? object oCommander = GetNearestObjectByTag("ast_s_commader"); //... //Если oCommander это капитан и скрипт стоит на нем, то он что, сам за собой ходит? А если oCommander это не капитан, то закем он ходит? ActionDoCommand(AssignCommand(OBJECT_SELF, ActionForceFollowObject(oCommander, 0.0))); |
QUOTE (Nashman @ Feb 5 2006, 04:02) |
он должен произнести фразу(ночью если Вы ближе 8 футов) |
Neverwinter Script Source |
ActionDoCommand(AssignCommand(OBJECT_SELF, ActionMoveToObject(oW3, oTrueFalse, 1.0f))); if (GetDistanceBetween(OBJECT_SELF, oPC) < 8.0) |