Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
Teranozavr_REX
QUOTE(Alian REXis @ Mar 2 2007, 17:00) [snapback]105249[/snapback]

GetAreaByTag("тэг")


Блин нехочю сомниваться ... но такой нету функции оно ее ненаходит в хелпе ее нет((
Alian REXis
Черт! Перепутал. Сейчас посмотрю.
По моему , GetArea()
Lex
Пафнир, триггер хайлайтается если у него высота отлична от 0.0.
У всех generic она такая по умолчанию. Так что не пойму, что у тебя за проблемы.

Teranozavr_REX, тебе location сам в данной ситуации нафиг не сдался. Тебе нужны координаты триггера или поинта, куда креетить НПС/Монстров. Используй для этого
GetLocation(object) и не страдай. Определение координат через Location нужно весьма редко, и в основном для работы с координатами и векторами. Специфично короче.
Пафнир
Народ, я ЛОХ!!!!!!!!!!!! yahoo.gif Сам за<..>мучался и с другими не лучше поступил: в свойствах/письменах/строка"OnClick" поставил тег скрипта! crazy.gif
Arilyn Moonblade
Ребята у меня к вам просьба unsure.gif

У меня столько идей по созданию модулей, но сам я к глубочайшему сожалению полностью дуб-дубом ко всему что касается скриптов...
В этой и других темах я нашел много ответов на свои вопросы, но у меня их СТОЛЬКО что я думаю вы скорее выйдете из себя чем я получу на всё ответ если буду их вам задавать sad.gif

Поэтому никто не знает где можно достать какое-нибудь... пособие что-ли.. по созданию скриптов? (желательно где-нить в инете..и бесплатно rolleyes.gif )
Lex
нужен Lexicon. Описание всех функций, пара туториалов в тулсет и особено в скриптинг, много примеров. Минус у данной штуки только 1, но очень небольшой - она на английском (довольно простеньком).
под рукой сейчас ссылки на него нету, погуглить нада.
Arilyn Moonblade
Ох спасибо заранее clapping.gif yu.gif

Насчет английского не проблема - я его люблю, сам неплохо им владею и у меня по нему 9 в школе (в вашей системе это 4+)

Просто есть у меня интересные идеи насчет своего небольшого но милого модуля, но без знаний по скриптам ничего мне не светит
Teranozavr_REX
bb.gif И сново я )))

значит так что имеем
в слоте OnEnter тригера нарисованогона полу стоит скрипт

void main()
{
object oTrig1=GetObjectByTag("Perd");
object oTrig2=GetObjectByTag("Za");

location lStart=GetLocation(GetObjectByTag("WP"));

CreateObject(OBJECT_TYPE_CREATURE,"Voin",lStart,FALSE,"Strag");

}
неработает(((
де ошибка
Alian REXis
Написано, все вроде правильно (только не понял зачем 3-я и 4-я строчки). Я так понял, скрипт компилится, а результата нет? Возможно несоответствие параметров в скрипте с параметрами настроек объектов (тэги, ресрефы). В тулсете все привязано к регистру, перепроверь.
Teranozavr_REX
угу пасибо вродебы перепроверил я так тоже подумал(( но непомогло буду еще мучать...
3
4 сторка... это для дальнееешего развития срипта но пока что я весь остальной код вытер пока этот кусок не работает
Lex
QUOTE(Teranozavr_REX @ Mar 2 2007, 15:12) [snapback]105236[/snapback]
исправллюсь не знал спасибо

чет я не заметил исправлений. Так и пишешь без тэгов, а за это у нас вообще преды дают smile.gif
Teranozavr_REX
еще раз извеняюсь волновался сильно...
все у меня прекрасно заработало...( проблема была в том что рефр сыока не сопадала с тегом НПС)
возник следующий вопрос...

как построить логику таким образом...
что бы с заходом первого(и именно первогоа не каждого sad.gif ) плеера в локу (наступанию на тригер) НПС создавались а с выходом последнего игрока уничтожались...

одним словом есть какая то функция котороя бы проверяла есть игроки на в локе или этот уже последний
helvene
QUOTE(Teranozavr_REX @ Mar 6 2007, 16:47) [snapback]105468[/snapback]
одним словом есть какая то функция котороя бы проверяла есть игроки на в локе или этот уже последний

Скрипт под мультиплеер?
Вообще вам на системы спавна смотреть.
Teranozavr_REX
мне не совсем систему спама мне надо привязаться к определенной локации

где на нее спотреть)) на эту систему...
Lex
QUOTE(Teranozavr_REX @ Mar 6 2007, 16:47) [snapback]105468[/snapback]
одним словом есть какая то функция котороя бы проверяла есть игроки на в локе или этот уже последний

функции нет. Это можно организовать скриптами, методов много. Пусть лучше шардовики расскажут, тут еще момент оптимальности и ресурсоемкости присутствует.
Teranozavr_REX
почитал много тоже понял что фунции нет такой...(((
и нужногоответа не нашел...

Раскажите пожалусто всетаки ктото как это организовать...
без записей в базу чего либо...
и с учетом того что чар в локацию может зайти через двери а может просто засейвиться втой локации

надо что бы при входе первого стража респилась
и при выходе последнего из локации уничтожалась
-fenix-
Писать систему. Шардовики тут и правда лучше подскажут, но с потолка:

1)Циклом проверять наличие игроков в локе, как только он игроков не найдет - отключается сам и отключает спавн моба, убивает его, или что там нада. При входе игрока в локацию все это активируется снова.

2) Мож как-нить считать и запоминать игроков в локе? Типа, зашел в локу - плюс 1, вышел - минус 1, как тока станет ноль отключать спавн моба.

Lex
QUOTE(-fenix- @ Mar 6 2007, 19:15) [snapback]105480[/snapback]
2) Мож как-нить считать и запоминать игроков в локе? Типа, зашел в локу - плюс 1, вышел - минус 1, как тока станет ноль отключать спавн моба.

самый лучший вариант, если только нет косяков с дисконектом. Возможно при этом не срабатывает onExit локации.
Teranozavr_REX
мне второй вариант больше нравиться ибо первый на харбит вешатьприйдеться насколько я понимаю...

реально остаеться актуальным вопрос onExit и onEnter среагируют если чар в локацию попадает путем входа выхода...

по реализации вопрос... из моих смутных пониманий мне надо на какойто плейс в этой локе записатьпеременную??? как это в деталях сделать мона ???
-fenix-
При обычном входе/выходе из локи это все работает, а вот как на счет входа/выходы их игры - хз. Точнее, onEnter срабатывает при заходе, а вот срабатывает ли onExit при выходе - ХЗ. Если не получица, то есть шанс с OnClientLeave, тока опять хз, срабатывает он в мультиплеере (как я понял у тебя мультиплеерный мод), а если срабатывает, то возможна ли на нем определить локацию игрока. Тут пробывать нада.


Да, тут локалка нужна для подведения подсчета в ней, вешай ее на текущую область:
NSS
// плюс один
SetLocalInt(GetArea(OBJECT_SELF), "LOCALKA", GetLocalInt(GetArea(OBJECT_SELF), "LOCALKA") + 1);
// минус один
SetLocalInt(GetArea(OBJECT_SELF), "LOCALKA", GetLocalInt(GetArea(OBJECT_SELF), "LOCALKA") - 1);
Arilyn Moonblade
У меня вопрос. Самый простейший скрипт и не получается! sad.gif
Когда ПС появляется в области триггера, над ним появляется выплывающий текст.
Я делаю триггер, в слоте Оn_Еnter делаю такой скрипт

NSS
void main()
{
if (GetLocalInt(OBJECT_SELF,"ENTERED")!=1)return;
object oPC=GetEnteringObject();
if (!GetIsPC((oPC))) return;
else
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC,ActionSpeakString("собсно мой текст"));
SetLocalInt(OBJECT_SELF,"ENTERED",1);
}
}


Вроде все правильно тем не менее ничего не выходит, в чем моя ошибка?
Teranozavr_REX
угу вродебы понял пасибо... буду пробовать...
-fenix-
Arilyn Moonblade, хех, 3 строчка: if (GetLocalInt(OBJECT_SELF,"ENTERED")!=1)return; Из-за нее скрипт ни когда не выполнется, так как в начале переменная действительна не равна 1 (да же если такой переменной еще и нету). Ну и соответственно строчка SetLocalInt(OBJECT_SELF,"ENTERED",1); не выполница, и скрипт так и не сдвинется с мертвой точки.

Arilyn Moonblade
Усе понял! slow.gif
Teranozavr_REX
sad.gif так пока про спам никто презнаваться нихочет... немного отложим то чтоестьрасмотрим другую структуру.

есть два тригера
на onEnter первогостоит

NSS
void main()
{
object oTrig1=GetObjectByTag("Perd_Deru");
object oTrig2=GetObjectByTag("Za_Deru");
object oSt=GetObjectByTag("Strag");
object oSh=GetObjectByTag("Shaman");

if (GetLocalInt(oTrig2, "TriggerState"))
     {
     DestroyObject(oSt,0.0);
     DestroyObject(oSh,0.0);
     DestroyObject(oSt,0.0);
     SetLocalInt(oTrig2, "TriggerState",0);
     }
else
     {
     SetLocalInt(oTrig1, "TriggerState",1);
     }
}


на onEnter второго

NSS
void main()
{
object oTrig1=GetObjectByTag("Perd");
object oTrig2=GetObjectByTag("Za");
location lStart_1=GetLocation(GetObjectByTag("WP_1"));
location lStart_2=GetLocation(GetObjectByTag("WP_2"));
location lStart_3=GetLocation(GetObjectByTag("WP_3"));


if (GetLocalInt(oTrig1, "TriggerState"))
     {
CreateObject(OBJECT_TYPE_CREATURE,"VoinH",lStart_1,FALSE,"Strag");
CreateObject(OBJECT_TYPE_CREATURE,"ShamanH",lStart_2,FALSE,"Shaman");
CreateObject(OBJECT_TYPE_CREATURE,"VoinH",lStart_3,FALSE,"Strag");
SetLocalInt(oTrig1, "TriggerState",0);
     }
else
    {
    SetLocalInt(oTrig2, "TriggerState",1);
    }
}


не работает...
что должно делать:
два тригера один перед дверями второй за
при входе в комнату происходит респ
при выходе убираються

путем ряда тестов пришел к выводу что скорее всего ошибка в
NSS
if (!GetLocalInt(oTrig1, "TriggerState"))


может я чтото не допонимаю в переменных или в условных операторах еще раз просветите
Lex
корявая организация: лишние переменные, в которых ты путаешься + сама структура перекручена, самому неудобно ее отслеживать.

+ у тебя в скриптах триггеры берутся по разным тэгам: Perd и Perd_Deru например.
Teranozavr_REX
*стёрто* пришла нянька ты кнула носом, ошибка в имени тега все заработало))
всем пасибо извените...
после прадников продолжем
Lex
ну что могу сказать. Отдебаж.
Введи в разных местах
NSS
SendMessageToPC(GetFirstPC(),"TriggerState="+IntToString(GetLocalInt(oTrig1, "TriggerState")));

узнаешь, где косяк. Или не присваивается, или условие глючит.
Teranozavr_REX
Это на заметку возьму пасибо

не все еще заработало )) и дебаг веселые вещи показывает пока помучаюсь если не получиться я вернусь))
Teranozavr_REX
все косяки исправил ( вчасносте в определении тригера была рефр сылка а не тег и не работало sad.gif )
возникла новая проблема...

мне надо проверить есть ли у того кто наступил на тригер некий итем.
как сделатьпроверку я знаю вродебы
воврос в том как определить\обьявить обект что то типа "тот кто наступил на тригер"
StalkerDtN
QUOTE(Teranozavr_REX @ Mar 15 2007, 17:38) [snapback]105767[/snapback]
воврос в том как определить\обьявить обект что то типа "тот кто наступил на тригер"
NSS
// The value returned by this function depends on the object type of the caller:
// 1) If the caller is a door it returns the object that last
//    triggered it.
// 2) If the caller is a trigger, area of effect, module, area or encounter it
//    returns the object that last entered it.
// * Return value on error: OBJECT_INVALID
//  When used for doors, this should only be called from the OnAreaTransitionClick
//  event.  Otherwise, it should only be called in OnEnter scripts.
object GetEnteringObject()



ps: используется на onEnter триггера)
Teranozavr_REX
пааасибо помогло все прикрасно работает ...

теперь последний так сказать штрих

НПС что респиться по событию тригера...
должен ити по некоему моршруту...
я его проложил точками маршрута...
так вот...
1) если просто проложить маршрут точками, то дойдя до конца маршрута НПС, возвращайеться назад, а надо что бы останавливался, это как то можно???
2) как скриптом заставить НПС ити к поинту ???
3) возможно ли сделатьчтото типа так:
НПС идет к поинту когда доходит уничтожаеться...( как уничтожатьуже нашел... там помойму задержка естьесли я не ошибаюсь до уничтожения если мона пользоваться ею то насколько она будет подтормаживать сервер...)
Alian REXis
QUOTE(Teranozavr_REX @ Mar 15 2007, 18:32) [snapback]105785[/snapback]
2) как скриптом заставить НПС ити к поинту ???

NSS
AssignCommand(oNPC,ActionMoveToObject(GetWayPointByTag("tag")));
Teranozavr_REX
пасибо помогло только там GetWaypointByTag если вдруг кто то еще решит воспользоваться))


как повернуть НПС так что бы он смотрел в заданом направлении??
Lex
SetFacing(...)
SetFacingPoint(...)

лексикон бы скачал и не парился
Teranozavr_REX
Дальше
слот OnUsed
как определить обьект (плеера) кторый использовал предмет???

P.S с вами получаеться куда лудше и быстрее а главное веселее
а пролексикон уже писал естьон уменя не помогает((
Lex
омг.. ну если не Лексикон, то хоть фильр функций в скрипт-редакторе попользуй. Например попробуй саааамый тупой вариант - написать в фильтр слово "use". О!! Чудо!! Среди прочих было
NSS
GetLastUsedBy();

Колдовство, ей богу. Сам не понимаю, как оно так получилось.
azathoth
Небывальщина... smile.gif

QUOTE(Teranozavr_REX @ Mar 15 2007, 18:32) [snapback]105785[/snapback]
3) возможно ли сделатьчтото типа так:
НПС идет к поинту когда доходит уничтожаеться...( как уничтожатьуже нашел... там помойму задержка естьесли я не ошибаюсь до уничтожения если мона пользоваться ею то насколько она будет подтормаживать сервер...)

Можно триггером на "месте прибытия", который уничтожит нужный объект.

Но лучше построить очередь действий:

выглядеть будет примерно так:
NSS
AssignCommand(oNPC,ActionMoveToObject(GetWayPointByTag("tag")));
...
AssignCommand(oNPC,ActionDoCommand(DestroySelf(...))));

Чтобы очереть не сбилась "по пути" ее надо закрыть (SetCommandable).
Teranozavr_REX
Доброе время суток, и снова свами я, со своими вопросами

два скриптика точнее наверное всегонавсегострочки интересуют
1) как сделать так что бы Чар получил бонус АС (скажем додж) на какой то интервал времени
2) как сделатьтак что бы Чар получил бонус к с килу (скажем Лоре) на какой то интервал времени

P/S обе эти вещи закручю на палочку... при использовании думаю должнополучиться)
Lex
см описания функций:
Neverwinter Script Source
ApplyEffectToObject()
EffectSkillIncrease()
EffectACIncrease()
Teranozavr_REX
Neverwinter Script Source
#include "x2_inc_switches"
void main()
{
int nEvent = GetUserDefinedItemEventNumber();
if(nEvent == X2_ITEM_EVENT_ACTIVATE)
{
object oPC=GetLastUsedBy();
effect eACDodg=EffectACIncrease(20,AC_DODGE_BONUS,AC_VS_DAMAGE_TYPE_ALL);
ApplyEffectToObject(1,eACDodg,oPC,1.0);
SendMessageToPC(oPC,"TEST");
}
}

И снова я. Я тут как не мучался, не заработало. Уже пол дня сижу. Но день закончлся и мне пора может кто до утра поймет в чем тут ошибка.

что должно делать
есть итем с тегом А (бутылочка на которой висит использовать1 раз вдень)
есть скрипт с именем А ( собственноон прикреплен в начале)

мало того что нет ожидаемого эфекта ( а именно 20 додж ас)
так даже на строку дебага нереагирует ...

да и так и не понял что дает первый параметр у ApplyEffectToObject
Lex
Цитата(Teranozavr_REX @ Apr 4 2007, 19:02) [snapback]106813[/snapback]
да и так и не понял что дает первый параметр у ApplyEffectToObject

DURATION_TYPE - тип наложения эффекта.
Примерно вот так:
TEMPORARY - временный
INSTANТ - постоянный
PERMANENT - разовый
Разница между INSTANT и PERMANENT весьма зыбкая.. но некоторые эффекты накладываются только каким-то одним (из этих 2х) образом. Подробнее см. описания или лексикон.

по скрипту:
Neverwinter Script Source
object oPC=GetLastUsedBy();

не канает. Читай описание функции.
Тебе нужна функция связанная с использованием предмета, а не взаимодействием с объектом. GetLastItemActivator() - вроде такая.
diggers
DURATION_TYPE_PERMANENT это разновидность DURATION_TYPE_TEMPORARY, только при PERMANENT таймер эффекта вообще не крутится, то есть эффект будет держаться вечно(пока не будет отдиспелен). То есть, точнее:
разница между INSTANT и (PERMANENT\TEMPORARY) весьма зыбкая..

Вместо таких громоздких констант удобнее использовать их значения:
DURATION_TYPE_INSTANT = 0
DURATION_TYPE_TEMPORARY = 1
DURATION_TYPE_PERMANENT = 2

В ApplyEffectToObject(1,eACDodg,oPC,1.0);
используется TEMPORARY(первый параметр) на длительность __1 сек__(4ый параметр).

SendMessageToPC(oPC,"TEST");
Для отладки лучше всегда использовать:
SendMessageToPC(GetFirstPC(),"TEST");
а если бы Teranozavr_REX использовал
SendMessageToPC(GetFirstPC(),"debug:"+GetName(oPC));
то потратил бы на отладку всего пару минут. Сразу понял бы где ошибка.

Если отлаживать надо много мест в скрипте, то лучше вывод сообщений отладки сделать через свою функцию:
Neverwinter Script Source
#include "......."
void debugm(str string){
  SendMessageToPC(GetFirstPC(),"debug: "+str);
}
void main()
{
...
debugm("messaga tyt");
...
}

Тогда глаза не будут так разбегаться от обилия кода. Кому как, мне вынос кусков кода в функции сильно помогает(где это возможно).
Lex
Цитата(diggers @ Apr 5 2007, 02:10) [snapback]106824[/snapback]
DURATION_TYPE_PERMANENT это разновидность DURATION_TYPE_TEMPORARY, только при PERMANENT таймер эффекта вообще не крутится, то есть эффект будет держаться вечно(пока не будет отдиспелен).

наверное. Хотя вроде были случаи, когда это неверно (для визуалок), но я так навскидку их не вспомню. Но на практике обычно получалось так:
если нужен временный эффект - темпорари, а если постоянный, то инстант/перманент, в зависимости от описания.

Цитата(diggers @ Apr 5 2007, 02:10) [snapback]106824[/snapback]
Вместо таких громоздких констант удобнее использовать их значения:
DURATION_TYPE_INSTANT = 0
DURATION_TYPE_TEMPORARY = 1
DURATION_TYPE_PERMANENT = 2

тоже не сказал бы. Читать удобнее константы.
Цитата(diggers @ Apr 5 2007, 02:10) [snapback]106824[/snapback]
то потратил бы на отладку всего пару минут. Сразу понял бы где ошибка.

я потратил пару секунд чтобы понять, что не приходит сообщение потому что oPC определен неверно. Так что все относительно smile.gif. Но вынос функции дебага эт правильный ход, вроде как все так делают.
Teranozavr_REX
всем спасибо заработало...

как написать условие используют только (список класов) и если есть хоть какой то другой класс то предмет не используеться...

может есть какаято командочка ???
потому что мне пока только на ум приходит проверить через
Neverwinter Script Source
GetLevelByClass

по всем классам которые не должны использовать а так как таких намногобольше чем тех ктоиспользует получаеться очень громоздкое условие
gennady
Тут Teranozavr_REX плутает в трех соснах, ему уже объяснили на пальцах, что нужно делать, но мне кажется вы его запутали biggrin.gif. А парню нужно помочь написать скрипт.
Как это все реализовать?
Повесь на свои бутылки свойство «Активировать предмет», это же у тебя бутылка и ее и так используем один раз biggrin.gif.
На модульные события в слот OnActivateItem кинь скрипт:
Neverwinter Script Source
// ДЛЯ ТЕСТА
void TestEffect(int iEfTest, object oPC)
{
effect eFirst = GetFirstEffect(oPC);
  while(GetIsEffectValid(eFirst))
  {
  if(GetEffectType(eFirst)== iEfTest)
  {
    SendMessageToPC(GetFirstPC(),"Номер тестируемого эффекта: "+IntToString(iEfTest));
    break;
  }
  eFirst = GetNextEffect(oPC);
  }
}
/////////////////////////////////////////
//:: СЛОТ: OnActivateItem
/////////////////////////////////////////
void main()
{
object oActivator = GetItemActivator(); // это активатор объекта(наш PC)
object oActivated = GetItemActivated(); // это активируемый объект
string sTag = GetTag(oActivated);

if (sTag == "A") // Нужный ли объект использован
{
  effect eACDodg = EffectACIncrease(20, AC_DODGE_BONUS);
  ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eACDodg, oActivator, 120.0);
  DelayCommand(1.0, TestEffect(EFFECT_TYPE_AC_INCREASE, oActivator)); // Удали после теста
}
}


В принципе проверка работы кода и не нужна, эффект появится на ПС в виде иконки и в свойствах. Но так можешь узнать номер эффекта.

P.S. toAiwan: Как-то отправлял тебе на мыло (или в этом году, или в конце прошлого) демо мод просмотра визуальных эффектов. Какова его судьба? Забраковал или со спамом выкинул? biggrin.gif
Teranozavr_REX
Ой боюсь это ты меня запутал)))
Я задаю маленькие вопросы, некоторых они смущают своей тривиальностью*если не сказать что они думают промои познания и прото чтоя тут забыл*, но получая на них ответы я полностью начинаю понимать как работает мой скрипт)))

трогать слот OnActivateItem я боюсь там стоит стандартный какойто скрипт и поставив туда свой может что то перестать работать

Все равно и тебе спасибо. Как минмум, я теперь еще знаю про существование GetItemActivated
что тоже есть гуд )))

пойду попытаюсь понять как работает твой вариант скрипта, можети это на пользу пойдет тоже.

Вопрос написаный моим постом выше остаеться актуальный
Lex
Цитата(Teranozavr_REX @ Apr 5 2007, 13:19) [snapback]106842[/snapback]
как написать условие используют только (список класов) и если есть хоть какой то другой класс то предмет не используеться...

у тебя есть тока 2 функции для такой задачи:
Neverwinter Script Source
GetClassByPosition()
GetLevelByClass()

в принципе можно перебрать все классы игрока (макс их 3) и проверять, не являются ли эти классы запретными для данного предмета.
Тут выгодно использовать свою доп. функцию, которая будет сравнивать класс со списком классов, которым запрещено/разрешено использовать предмет.


что-то такое (тулса под рукой нема)
Neverwinter Script Source
int Check(int nPCClass)
{
// тут проверяешь передаваемый класс игрока с нужным списком. Придется по 1 элементу.
}
int StartInCondition() // или как она там называется
{
int i = 1;
int nClass = GetClassByPosition(/*тут какие-то параметры*/,i);
while (nClass!=CLASS_TYPE_INVALID) /*или какая там константа на невалидный класс*/
{
if (Check(nClass)) return TRUE; /*или FALSE. Или что нужно.*/
i++;
nClass = GetClassByPosition(/*тут какие-то параметры*/,i);
}
}


Цитата(gennady @ Apr 5 2007, 13:20) [snapback]106843[/snapback]
Тут Teranozavr_REX плутает в трех соснах, ему уже объяснили на пальцах, что нужно делать, но мне кажется вы его запутали

имхо если человек хочет разобраться, ему надо помогать, а не решать за него задачу. Но это так.. у каждого свой подход smile.gif
Teranozavr_REX
Супер !!! оно все получилось))) теперь у меня есть баночка Зщита Сагры которая дает воинским классам (и только им ) +1\2 додж ас за лвл

подем дальше
Естьу меня некий сорк НПС проблема в том что заклинания он кастует по своим каким то странным соображениям. Очень бы хотелось что бы при виде воина( скорее всего принанисении фихз урона) он накладывал себе вординг и щитки, а не спелмантию и кидался огнеными стрелами по чару с поглотом огня ( кстати в случае дождиков он соображает что по 50% имен и 40 поглота дождиками лупитьбезсмысленно)

если задача не очень сложная и её можнорасказатьна пальцах буду очень благодарен
выкладыывать трехкилометровый готовый скрипт нестоит)) ибо сорк заработает но я мало чему научюсь с этого
Aiwan
Сорку надо дать пакет защитный при левел апе в визарде. Точнее специализацию и проверить в бою. Но все это призрачно. Лечится переписыванием АИ от Биовар. Скрипт такой тут не выложим форум рухнет.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.