Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 73 74 75 76 77 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Dik Morris
сообщение Aug 18 2005, 12:53
Сообщение #1851


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Виталист, сделай фракцию, ему другую настрой как нужно, все.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 18 2005, 12:55
Сообщение #1852


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



dumbo а сделай рандом из 5-7. Я проверял почти неделю. Ломал голову %) Оказалось все просто.
Добавлено в [mergetime]1124359005[/mergetime]
QUOTE (dumbo @ Aug 18 2005, 01:59)
создал две пустые локи 2х2

Сделай их в одних тайлах. А еще лучше копией :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Proydoha
сообщение Aug 18 2005, 18:39
Сообщение #1853


Level 4
**

Класс: Маг
Характер: Chaotic Good
Раса: Эльф



:crazy: Все началось с того, что я захотел азартных игр в моем модуле... Это рулетка.
Возможно я сделал не грамотно или не правильно. Не судите строго.

Neverwinter Script Source
void main()
{
int iNumber;
string sNumber="";
int iNumberBet; //Сумма которую поставил игрок на число
int iNumberP;//Это номер на который ставит(не ставит) игрок
string sChetNechet="";
int iChetNechet; //Это ставка игрока
int iChetNechetP;//Переменная для проверки: выиграл игрок или нет? 1-Нечет;2-Чет;
int iChetNechetBet; //Сумма которую поставил игрок на чет/нечет
string sBlackRed="";
int iBlackRed;//Это ставка игрока
int iBlackRedP;//Переменная для проверки: выиграл игрок или нет? 1-Красный;2-Черный;
int iBlackRedBet; //Сумма которую поставил игрок на красное/черное
string sPolovina="";
int iPolovina;//Это ставка игрока
int iPolovinaP;//Переменная для проверки: выиграл игрок или нет? 1-числа 1-18;2-числа 19-36;
int iPolovinaBet; //Сумма которую поставил игрок на числа 1-18/19-36
string sTret="";
int iTret;//Это ставка игрока
int iTretP;//Переменная для проверки: выиграл игрок или нет? 1-числа 1-12; 2-числа 13-24; 3-числа 25-36;
int iTretBet;//Сумма которую поставил игрок на числа 1-12/13-24/25-36
string sRyad="";
int iRyad;//Это ставка игрока
int iRyadP;//Переменная для проверки: выиграл игрок или нет?  1-Верхний ряд;2-Средний ряд;3-Нижний ряд;
int iRyadBet;//Сумма которую поставил игрок на числа 3,6,9,12,../2,5,8,11,../1,4,7,10...
int iWIN;//Сумма, которую выиграл игрок

iNumber=Random(37)-1;
if (iNumber==-1) sNumber="Двойное Зеро"; else if (iNumber==0) sNumber="Зеро"; else sNumber=IntToString(iNumber);

if ((iNumber==1) || (iNumber==3) || (iNumber==5) || (iNumber==7) || (iNumber==9) || (iNumber==11) || (iNumber==13)
|| (iNumber==15) || (iNumber==17) || (iNumber==19) || (iNumber==21) || (iNumber==23) || (iNumber==25) || (iNumber==27)
|| (iNumber==29) || (iNumber==31) || (iNumber==33) || (iNumber==35)) {sChetNechet="Не четное"; iChetNechetP=1;}
else if ((iNumber==2) || (iNumber==4) || (iNumber==6) || (iNumber==8) || (iNumber==10) || (iNumber==12) || (iNumber==14)
|| (iNumber==16) || (iNumber==18) || (iNumber==20) || (iNumber==22) || (iNumber==24) || (iNumber==26) || (iNumber==28)
|| (iNumber==30) || (iNumber==32) || (iNumber==34) || (iNumber==36)) {sChetNechet="Четное";iChetNechetP=2;}

if ((iNumber==1) || (iNumber==3) || (iNumber==5) || (iNumber==7) || (iNumber==9) || (iNumber==12) || (iNumber==14)
|| (iNumber==16) || (iNumber==18) || (iNumber==19) || (iNumber==21) || (iNumber==23) || (iNumber==25) || (iNumber==27)
|| (iNumber==30) || (iNumber==32) || (iNumber==34) || (iNumber==36)) {sBlackRed="Красное";iBlackRedP=1;}
else if ((iNumber==2) || (iNumber==4) || (iNumber==6) || (iNumber==8) || (iNumber==10) || (iNumber==11) || (iNumber==13)
|| (iNumber==15) || (iNumber==17) || (iNumber==20) || (iNumber==22) || (iNumber==24) || (iNumber==26) || (iNumber==28)
|| (iNumber==29) || (iNumber==31) || (iNumber==33) || (iNumber==35)) {sBlackRed="Черное";iBlackRedP=2;}

if (iNumber>0 && iNumber<13) {sTret="1-12";iTretP=1;} else if (iNumber>12 && iNumber<25) {sTret="13-24";iTretP=2;}
else if (iNumber>24 && iNumber<37) {sTret="25-36";iTretTret=3;}

if (iNumber>0 && iNumber<19) {sPolovina="1-18";iPolovinaP=1;} else if (iNumber>18 && iNumber<37) {sPolovina="19-36";iPolovinaP=2;}

if ((iNumber==3) || (iNumber==6) || (iNumber==9) || (iNumber==12) || (iNumber==15) || (iNumber==18)
|| (iNumber==21) || (iNumber==24) || (iNumber==27) || (iNumber==30) || (iNumber==33) || (iNumber==36)) {sRyad="Верхний ряд";iRyadP=1;} else
if ((iNumber==2) || (iNumber==5) || (iNumber==8) || (iNumber==11) || (iNumber==14) || (iNumber==17)
|| (iNumber==20) || (iNumber==23) || (iNumber==26) || (iNumber==29) || (iNumber==32) || (iNumber==35)) {sRyad="Средний ряд";iRyadP=2;} else
if ((iNumber==1) || (iNumber==4) || (iNumber==7) || (iNumber==10) || (iNumber==13) || (iNumber==16)
|| (iNumber==19) || (iNumber==22) || (iNumber==25) || (iNumber==28) || (iNumber==31) || (iNumber==34)) {sRyad="Нижний ряд";iRyadP=3;}

if (iNumber==iNumberP) iNumberBet=iNumberBet*//Я не знаю на сколько тут умножать//;
if (iBlackRed==iBlackP) iBlackRedBet=iBlackRed*2;
if (iChetNechet==iChetNechetP) iChetNechetBet=iChetNechetBet*2;
if (iPolovina==iPolovinaP) iPolovinaBet=iPolovinaBet*2;
if (iTret==iTretP) iTretBet=iTretBet*3;
if (iRyad==iRyadP) iRyadBet=iRyadBet*3;

iWIN=iNumberBet+iBlackRedBet+iChetNechetBet+iPolovinaBet+iTretBet+iRyadBet;

SetCustomToken(1,sNumber);
SetCustomToken(2,sBlackRed);
SetCustomToken(3,sChetNechet);
SetCustomToken(4,sPolovina);
SetCustomToken(5,sTret);
SetCustomToken(6,sRyad);
SetCustomToken(7,IntToString(iWIN));
}


Я сильно налажал?:crazy:

Сообщение отредактировал Proydoha - Aug 18 2005, 23:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 18 2005, 18:45
Сообщение #1854


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



мама...


если никто не выскажется, я тебе напишу, как бы я сделал (хотя можно и ошибку поискать, напомни только где там и что не работает...).. но if такого размаха... нееее...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Misty Dragon
сообщение Aug 18 2005, 19:09
Сообщение #1855


Level 4
Иконки Групп

Класс: Маг
Характер: Lawful Neutral
Раса: Дракон
NWN: Скриптинг [PW]



QUOTE (Proydoha @ Aug 18 2005, 18:39)
:crazy: Все началось с того, что я захотел азартных игр в моем модуле... Это рулетка.
Возможно я сделал не грамотно или не правильно. Не судите строго.

Я сильно налажал?:crazy:

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

Neverwinter Script Source
if ((iNumber==1) || (iNumber==3) || (iNumber==5) || (iNumber==7) || (iNumber==9) || (iNumber==11) || (iNumber==13)
|| (iNumber==15) || (iNumber==17) || (iNumber==19) || (iNumber==21) || (iNumber==23) || (iNumber==25) || (iNumber==27)
|| (iNumber==29) || (iNumber==31) || (iNumber==33) || (iNumber==35)) {sChetNechet="Не четное"; iChetNechetP=1;}


Hint: тут у тебя идет инкремент на 2. :drag:

Сообщение отредактировал Misty Dragon - Aug 18 2005, 19:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Proydoha
сообщение Aug 18 2005, 19:14
Сообщение #1856


Level 4
**

Класс: Маг
Характер: Chaotic Good
Раса: Эльф



QUOTE
как минимум это тяжелый код на первый взгляд. все структуры с или можно заменить на одну с формулой.

Я думал об этом, но там уж больно хитрая разметка с красным/черным и горизонтальными рядами чисел. Мне ничего лучше в голову не пришло.

Напиши пожалуйста пример. Я так понимаю лучше. По примерам.

Сообщение отредактировал Proydoha - Aug 18 2005, 19:23
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Misty Dragon
сообщение Aug 18 2005, 19:21
Сообщение #1857


Level 4
Иконки Групп

Класс: Маг
Характер: Lawful Neutral
Раса: Дракон
NWN: Скриптинг [PW]



QUOTE (Proydoha @ Aug 18 2005, 19:14)
Я думал об этом, но там уж больно хитрая разметка с красным/черным и горизонтальными рядами чисел. Мне ничего лучше в голову не пришло.

разметка тут ни при чем.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Proydoha
сообщение Aug 18 2005, 19:31
Сообщение #1858


Level 4
**

Класс: Маг
Характер: Chaotic Good
Раса: Эльф



Нет я понимаю, что, скажем, в ряде чисел 3,6,9,12,15,18,21,24,27,30,33,36 каждое из чисел на 3 больше предидущего, но я не понимаю как это вставить в проверку. Поэтому и прошу пример.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 18 2005, 21:12
Сообщение #1859


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Neverwinter Script Source
int Check(int nNumber, int nStart, int nStep)
{
int nIter = 0;
while (nIter*nStep + nStart <= nNumber)
   {
   if (nNumber == nIter*nStep + nStart)
         return TRUE;
   nIter ++;
   }
return FALSE;


ну грубо говоря так. 1 доп функция, описывай ее наверху.
nNumber - твое рандомное число
nStart - первое число в ряду. (тут имеется ввиду ряд чисел.. как в школе все :) )
nStep - длина шага.. все как в школе

те проверка на нечетность такая:
if (Check(nNumber, 1, 2)) \\ нечет
else \\ чет
на твой рад 3,6,9,12 такая:
if (Check(nNumber, 3, 3))

ну и так далее...

даже в этом маленьком коде есть место оптимизации. (не считать каждый раз nIter*nStep + nStart а скидывать все в ту-же nStart и потом к ней nStep плюсовать каждую итерацию.. )
но идея кажись такая... хотя могу и ошибаться.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Proydoha
сообщение Aug 18 2005, 22:56
Сообщение #1860


Level 4
**

Класс: Маг
Характер: Chaotic Good
Раса: Эльф



Суть цикла понял. Спасибо. Отныне я буду учиться мыслить рационально. Цикл проверяет числа с определенным интервалом(по формуле nInter*... и тд.), пока не подберет то которое равняеться nNumber. А подобрав выполнит все что написано после If(Check,... Так?
Но ничто не рождает так много вопросов, как поиски ответа.
Вопрос номер раз: nInter ++ как я понял равносильно nInter=nInter+1?
Вопрос номер два: Что означает ошибка:"Потеря анализатора переменной"?
Вопрос номер три: Так что же все-таки с токенами и рандомом?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 18 2005, 23:02
Сообщение #1861


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Proydoha @ Aug 18 2005, 23:56)
Вопрос номер раз: nInter ++ как я понял равносильно nInter=nInter+1?

да
QUOTE (Proydoha @ Aug 18 2005, 23:56)
Вопрос номер два: Что означает ошибка:"Потеря анализатора переменной"?

ставь английский тлк. Нехватало еще кривости перевода тут разбирать.
QUOTE (Proydoha @ Aug 18 2005, 23:56)
Вопрос номер три: Так что же все-таки с токенами и рандомом?

а что с ними?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Proydoha
сообщение Aug 18 2005, 23:24
Сообщение #1862


Level 4
**

Класс: Маг
Характер: Chaotic Good
Раса: Эльф



ERROR: PARSING VARIABLE LIST
Все равно не понимаю.

QUOTE
а что с ними?

Они не работают. Ну то есть в самом начале суть вопроса была почему Random(38)-1 все время дает 10 и почему из всех кастомных токенов работает только первый. Меня попросили показать код и потом пошло-поехало, но не зря.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 18 2005, 23:59
Сообщение #1863


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Proydoha @ Aug 19 2005, 00:24)
ERROR: PARSING VARIABLE LIST
Все равно не понимаю.

эх... на какой строке скрипта?
у меня все ок (когда убрал все буквы "я", так как патч не использую, и поправил в паре мест имена переменных.)

рандом одно и то же выдает постоянно..тебе к Айвану, он сталкивался с этим.
Все мои рандомы работают нормально..
с Токенами - ХЗ. Вроде как все верно, может вызываешь неправильно их в диалоге?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Proydoha
сообщение Aug 19 2005, 00:09
Сообщение #1864


Level 4
**

Класс: Маг
Характер: Chaotic Good
Раса: Эльф



Вот здесь:
Neverwinter Script Source
int Check(int nNumber, int nStart, int nStep)


Айван свое по этому поводу уже сказал:
QUOTE
Proydoha рандом привязан к локации и тайлам и прочему. ЕСли локи одинаковые и маленькие то будут одни и те же цифры. Я это уже съел. Читай лексикон.

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

С токенами вроде все правильно (или наоборот все неправильно и наверное с них надо начинать так как 10 я увидел через них). <CUSTOM1> мне это выдавал(из моего скрипта).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 19 2005, 00:45
Сообщение #1865


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Neverwinter Script Source
int Check(int nNumber, int nStart, int nStep)
{
int nIter = 0;
while (nIter*nStep + nStart <= nNumber)
  {
  if (nNumber == nIter*nStep + nStart)
        return TRUE;
  nIter ++;
  }
return FALSE;
}

void main()
{
/// тут твой скрипт
}

так тадо типа.
Добавлено в [mergetime]1124401586[/mergetime]
токены у меня всегда нормально работали.. Надо смотреть уже как это в модуле сделано.
то же самое с рандомами. У меня все было нормуль с ними.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Aug 19 2005, 01:07
Сообщение #1866


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



хм...
1.
QUOTE
Custom tokens 0-9 are used by Bioware and should not be used.

2. несколько сокращенный вариант твоих проверок:
Neverwinter Script Source
//...
  if (iNumber==-1)
    sNumber="дв.зеро";
  else
    if (!iNumber)
      sNumber="зеро";
    else
    {
      sNumber=IntToString(iNumber);
      iChetNechetP = iNumber % 2;
      iBlackRedP = (
        (iChetNechetP && (iNumber < 10 || (iNumber > 18 && iNumber < 28))) ||
        (!iChetNechetP && ((iNumber > 10 && iNumber < 19) || iNumber > 28))
      );
      iTretP = (iNumber-1) / 12;
      iPolovinaP = (iNumber-1) / 18;
      iRyadP = (iNumber-1) % 3;
      sChetNechet = iChetNechetP ? "нечетное" : "четное";
      sBlackRed = iBlackRedP ? "красное" : "черное";
      sTret = GetSubString(" 1-1213-2425-36", iTretP * 5, 5);
      sPolovina = iPolovinaP ? "19-36" : " 1-18";
      sRyad = GetSubString(" нижнийсреднийверхний", iRyadP * 7, 7) + " ряд";
    }
//...

note: все "проверочные" переменные (iChetNechetP, iBlackRedP...) нумеруются не с 1 (1,2..), а с 0...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Aug 19 2005, 10:05
Сообщение #1867


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Дракон



похоже, пора создавать тему типа "вопросы без ответов"...
Извините, что по сто раз одно и то же, прошу по фейсу не бить и через соломинку не надувать... но:

1. Как сделать, чтобы хенчмен при отдыхе не восстанавливал очки жизни

2. есть ли хаки с огнестрельным оружием типа мушкетов и ползающими тварями( змеями, или чем нибудь типа ормирр из POOL OF RADIANCE

3. Как сделать, чтобы при событии on close саркофага В НЕСКОЛЬКИХ локациях в точках WP_SKELET появились скелеты? (таких точек в одной локации может быть несколько). вешать скрипты на on enter каждой локи не выход...

4.Нужен юзабельный труп колдуна в мантии (без инвентаря). Делаю токой, грохая на on spawn непися. Но тогда труп получается или с инвентарём, или неюзабельный. И он исчезает! А мне по сюжету надо, чтобы труп не исчезал, т.к при использовании на это самый труп уникальной силы предмета должен появляться дух. (кстати как прописывать, на что должна бть использована уникальная сила?) :crazy:


Добавлено в [mergetime]1124435255[/mergetime]
как добавить запись в журнал, если перс взял в инвентарь предмет. (и как сделать, чтобы запись не обновлялась, если перс ВЫЛОЖИЛ предмет, а потом снова ВЗЯЛ?)
Добавлено в [mergetime]1124435429[/mergetime]
Если не трудно, расскажите, что такое RANDOM, CASE, OBJECT_INVALID и как всё это работает.

и ссылочку на последний лесикон, пожалуйста, интернет медленный, да и недешёвый...
Добавлено в [mergetime]1124435531[/mergetime]
:yes: И если можно, то все выше написанное подробно, с примерами и пояснениями - мне за шесть дней модуль доделать надо...
Добавлено в [mergetime]1124435643[/mergetime]
Здрасьте, Феникс! Ну друг, ну выручил! Шесть часов возни - и я смог сделать диалог с вещью!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 19 2005, 10:33
Сообщение #1868


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (zmey @ Aug 19 2005, 10:05)
2. есть ли хаки с огнестрельным оружием типа мушкетов и ползающими тварями( змеями, или чем нибудь типа ормирр из POOL OF RADIANCE

Есть, а где не знаю :)

QUOTE (zmey @ Aug 19 2005, 10:05)
3. Как сделать, чтобы при событии on close саркофага В НЕСКОЛЬКИХ локациях в точках WP_SKELET появились скелеты? (таких точек в одной локации может быть несколько). вешать скрипты на on enter каждой локи не выход..

Делаешь закрытую локу и в нее помешаешь скилетов, на места их появления ставешь WP(можно тригер растянуть), далее с помощью
Neverwinter Script Source
ActionJumpToObject(object oToJumpTo, int bWalkStraightLineToPoint=TRUE)

кидаешь нужных челов к нужному объекту.
Но наверное лучше использовать
Neverwinter Script Source
ActionJumpToLocation(location lLocation)

и объявлять локацию так,
Neverwinter Script Source
location locLoc = Location(GetArea(таг WP), GetPosition(таг WP), GetFacing(таг WP));

Это уже мой вопрос.

QUOTE (zmey @ Aug 19 2005, 10:05)
как добавить запись в журнал, если перс взял в инвентарь предмет. (и как сделать, чтобы запись не обновлялась, если перс ВЫЛОЖИЛ предмет, а потом снова ВЗЯЛ?)

QUOTE (-fenix- @ Aug 13 2005, 18:11)

Есть 3 функции.

Neverwinter Script Source
AddJournalQuestEntry(string szPlotID, int nState, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE, int bAllowOverrideHigher=FALSE)

GetJournalQuestExperience(string szPlotID)



RemoveJournalQuestEntry(string szPlotID, object oCreature, int bAllPartyMembers=TRUE, int bAllPlayers=FALSE)


Создай задание в мастере сюжета и посмотри появившиеся скрипты.


Мож еще, что напишу попожее.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Aug 19 2005, 10:37
Сообщение #1869


Level 4
**

Класс: Маг
Характер: Chaotic Evil
Раса: Дракон



Феникс, то есть мне толпу скелетов в закрытой локе делать?
Добавлено в [mergetime]1124437147[/mergetime]
Мне ведь нужно штук пятьдесят скелетов и зомби по руниам замка раскидать! :DB: :crazy:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 19 2005, 10:47
Сообщение #1870


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Random(хх) - генератор рандомных чисел, будет генерировать от 0, до нужного числа(хх)-1.
Random(3) будет генерировать числа от 0, до 2.

Neverwinter Script Source
switch (Random(3))
{
case 0:
    //действия
    break;

case 1:
    //действия
    break;

case 2:
    //действия
    break;

}

case - это один из операторов конструкции switch/case. Смысл ее в следующем.
В switch пишется число, скажем Random(3), а в каждом из 3 case условием выполнения операторов стоит свое значение этого числа.
Если рандом даст 2, то выполнятся операторы стоящие в case 2:.
OBJECT_INVALID - если просто перевести, то можносказать, что ОБЪЕКТ НЕ ДЕЙСТВИТЕЛЕН. Короче такого объекта нет или объект не соответствует каким-то условиям.
QUOTE (zmey @ Aug 19 2005, 10:05)
и ссылочку на последний лесикон, пожалуйста, интернет медленный, да и недешёвый...

Я качал с ВРГ.
Добавлено в 10:49
QUOTE (zmey @ Aug 19 2005, 10:37)
Феникс, то есть мне толпу скелетов в закрытой локе делать? Добавлено в 10:39 Мне ведь нужно штук пятьдесят скелетов и зомби по руниам замка раскидать!

Получается так.

Хм, а можно вообще сделать вторую локацию с руинами(копию), только со скелетами.
И после чего там у тебя, при выходе из данной локи кидать чела уже в эту локу. У тебя ведь сундук стоит в подвале, а руины на верху?

Сообщение отредактировал -fenix- - Aug 19 2005, 10:52
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Misty Dragon
сообщение Aug 19 2005, 11:03
Сообщение #1871


Level 4
Иконки Групп

Класс: Маг
Характер: Lawful Neutral
Раса: Дракон
NWN: Скриптинг [PW]



Neverwinter Script Source
CreateObject(nObjectType, sTemplate, location, bUseAppearAnimation);


этого никто не отменял

QUOTE
1. Как сделать, чтобы хенчмен при отдыхе не восстанавливал очки жизни


Neverwinter Script Source
int iHenchHP = GetCurrentHitPoints(oHench);

запоминаем количество ХП хенча.

Neverwinter Script Source
effect eEffect = EffectDamage(GetMaxHitPoints(oHench) - iHenchHP,DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_NORMAL);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect,oHench);

удаляем лишние ХП у хенча.

Сообщение отредактировал Misty Dragon - Aug 19 2005, 11:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 19 2005, 11:13
Сообщение #1872


Level 19
Иконки Групп

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (Misty Dragon @ Aug 19 2005, 11:03)

Neverwinter Script Source
effect eEffect = EffectDamage(GetCurrentHitPoints(oHench) - iHenchHP,DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_NORMAL); ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect,oHench);




Небольшая ошибка, наверное так :)
Neverwinter Script Source
effect eEffect = EffectDamage(GetMaxHitPoints(oHench) - iHenchHP,DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_NORMAL); ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect,oHench);

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Aug 19 2005, 11:44
Сообщение #1873


Level 9
Иконки Групп

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



-fenix-
с ХП все было правильно.

zmey
создать скелетов во всех вэйпах с тэгом WP_SKELET:
Neverwinter Script Source
void main()
{
  object oWP;
  int nIdx = 0;
  while (GetIsObjectValid(oWP = GetObjectByTag("WP_SKELET", nIdx)))
  {
    CreateObject(OBJECT_TYPE_CREATURE, "NW_SKELETON", GetLocation(oWP));
    nIdx++;
  }
}


делаем юзабельный труп своими руками: в Advanced свойствах непися убираем все галки(всякие дизармы, Leave lootable corpse итд), время ставим на максимум(32767), в OnSpawn вешаем такое:
Neverwinter Script Source
void main()
{
  ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), OBJECT_SELF);
  // ucorpse - !!resref!! созданного нами плэйса с галочкой usable
  // и моделью Invisible Corpse Object
  object oUse = CreateObject(OBJECT_TYPE_PLACEABLE, "ucorpse",
                            GetLocation(OBJECT_SELF));
}

если делаешь через использование предмета, то нужно в скрипте вызываемом при активации проверять цель применения - если это наш ucorpse, то запускать создание духа итд... или просто в свойствах ucorpse на OnUse поставить скрипт...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 19 2005, 11:45
Сообщение #1874


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



QUOTE (Misty Dragon @ Aug 19 2005, 12:03)
Neverwinter Script Source
CreateObject(nObjectType, sTemplate, location, bUseAppearAnimation);



этого никто не отменял

а лучше в закрытую локу 1 скелета как эталон, а потом запустить цикл

Neverwinter Script Source
object oEtalon = GetObjectByTag("ETALON_SKELET");
int i = 0;
object oPoint = GetObjectByTag("WP_SKELET",i);
while (GetIsObjectValid(oPoint))
    {
    CopyObject(oEtalon,GetLocation(oPoint));
    i++;
    oPoint = GetObjectByTag("WP_SKELET",i);
    }

в закрытую локу скелета с тэгом ETALON_SKELET
в локации поинты WP_SKELET
кусок кода суешь куда тебе надо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 19 2005, 11:53
Сообщение #1875


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Том III находится тут
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 73 74 75 76 77 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2025 - 22:08