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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 71 72 73 74 75 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
-fenix-
сообщение Aug 10 2005, 16:33
Сообщение #1801


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

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



Не знаю нужно это уже или нет :xz: , но пусть будет, мож кому прегодиться. Все работает!
Теги и ресрефы везде конечно свои

На OnPlayerDeath
Neverwinter Script Source
void Clear(object oBag = OBJECT_SELF)
{
object oItem = GetFirstItemInInventory(oBag);
while (GetIsObjectValid(oItem))
  {
  DestroyObject(oItem);
  oItem = GetNextItemInInventory(oBag);
  }
DestroyObject(oBag,1.0);
}

void main()
{
object oPlayer = GetLastPlayerDied();
string sTag = GetName(oPlayer);
location lDiedHere = GetLocation(oPlayer);
string sHelpString="Вы мертвы, если желаете реинкарнироватьсЯ нажмите кнопку Респавн.";
object oCorpse = CreateObject(OBJECT_TYPE_PLACEABLE,"blueprint001", lDiedHere,TRUE);
object oLoot = CreateObject(OBJECT_TYPE_PLACEABLE, "blueprint002", lDiedHere, TRUE, sTag);
int nGP = GetGold(oPlayer);
SetLocalObject(oPlayer, "oOwner", oCorpse);
SetImmortal(oPlayer, TRUE);

int i = 0;
object oItem = GetFirstItemInInventory(oPlayer);
while (GetIsObjectValid(oItem))
    {
    if (GetDroppableFlag(oItem))
      CopyObject(oItem,lDiedHere,oLoot);
    DestroyObject(oItem);
    oItem = GetNextItemInInventory(oPlayer);
    }
oItem = GetItemInSlot(i,oPlayer);
while (i<14)
    {
    if (GetDroppableFlag(oItem))
      CopyObject(oItem,lDiedHere,oLoot);
    DestroyObject(oItem);
    i++;
    oItem = GetItemInSlot(i,oPlayer);
    }

AssignCommand(oLoot,TakeGoldFromCreature(nGP,oPlayer,FALSE));

ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer);
AssignCommand(oPlayer,ClearAllActions());
AssignCommand(oPlayer,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE"))));
DelayCommand(1.0,PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH));
}


На OnPlayerRespawn

Neverwinter Script Source
#include "nw_i0_plot"

void ApplyPenalty(object oDead)
{
  int nXP = GetXP(oDead);
  int nPenalty = 250 * GetHitDice(oDead);
  int nHD = GetHitDice(oDead);
  // * You can not lose a level with this respawning


  int nNewXP = nXP - nPenalty;

  SetXP(oDead, nNewXP);

}
void main()
{
  object oRespawner = GetLastRespawnButtonPresser();
  object oCorpse = GetLocalObject(oRespawner,"oOwner");

  DestroyObject(oCorpse);
  AssignCommand(oRespawner,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE01"))));
  ApplyPenalty(oRespawner);
  ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
  ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
  RemoveEffects(oRespawner);
  DeleteLocalInt(oRespawner,"oOwner");
  SetImmortal(oRespawner,FALSE);

}


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


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Все спасибо всем, теперь все удаляеться и новый вопрос)
Вот значит лежит на земле труп, я его беру игроком в свой инвентарь - он превращаеться из плэйсебла в итем. Теперь выкладывая - обратное превращение. НО!!!! Если теперь этот игрок воскреснет вдруг по средствам кнопки Респауна, то труп , выложеный мной, не исчезает. Почему? Я думал , думал, пришел к выводу, что нет на вновь созданом трупе той переменной, которая даеться при смерти. Что мне делать в это ситуации?
З.Ы.
Если не понятное что-то в вопросе - спрашивайте.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Aug 11 2005, 01:16
Сообщение #1803


Level 4
**

Класс: Клерик
Характер: Lawful Good
Раса: Человек



Повесь на итем у хозяина трупа переменную со статусом жив\мертв, а затем трупу на хертбит, на спавн или на юз проверку этой самой переменной сидящей в предмете в кармане хозяина, если жив дестрой
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 11 2005, 19:36
Сообщение #1804


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

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



Я вот не нашел анимации при которойбы чел махал руками, как маг, когда кастует что-то. У меня ущербная 1.30, все дело вней или этого вообще нет!

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


Level 7
**

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



-fenix-, не пробовал поставить скрипт кастования? ВОт сам скрипт
Neverwinter Script Source
ActionCastFakeSpellAtObject();
ActionCastFakeSpellAtLocation();


Одно из двух..... :D

Добавлено в [mergetime]1123778403[/mergetime]
Но возможно что вокруг чела будут летать те хре.... Ну корочи фигни :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение Aug 11 2005, 20:09
Сообщение #1806


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



QUOTE
Я вот не нашел анимации при которойбы чел махал руками, как маг, когда кастует что-то. У меня ущербная 1.30, все дело вней или этого вообще нет!

Я пользуюсь анимацией "ANIMATION_FIREFORGET_VICTORY2". Смотрится неплохо. Можешь попробывать сам. ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DroWishSoul
сообщение Aug 12 2005, 07:56
Сообщение #1807


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



Прошу прощенья, что суюсь в беседу :yes:
У меня вопрос появился. Я написал 2 скрипта. Поставил их на OnDeath двух разных NPC. Суть скрипта проста. После смерти он проверяет, мертв ли второй объект, после чего идет действие.
Вот сам скрипт одного из NPC
Neverwinter Script Source
void main()
{
object oPC = GetLastKiller();
object oTag = GetObjectByTag("tag"); // второй объект
effect eCurse = EffectCurse(4, 4, 4, 4, 4, 4); // я выбрал первое попавшееся действие просто для првоерки скрипта

oPC = GetMaster(oPC);

if(!GetIsPC(oPC)) return;

if(!GetIsDead(oTag)) return;

ApplyEffectToObject(1, eCurse, oPC, 10.0);

}

Скрипт компилится, умирают оба объекта, но ничего не происходит. Не могу понять, в чем дело.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 12 2005, 08:44
Сообщение #1808


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

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



DroWishSoul
Тут ты смотрешь, кто убил твоего НПС
Neverwinter Script Source
object oPC = GetLastKiller();

А потом получаешь мастера убийцы, убийца всегда хенч?
Далее смотрешь является ли мастер PC, если нет, то скрипт не работает. Зачем все это?
Neverwinter Script Source
oPC = GetMaster(oPC);

if(!GetIsPC(oPC)) return;

Не знаю, что тебе на самом деле нужно, но вот один из скриптов. Работает на убийцу-PC.

Neverwinter Script Source
void main()
{
object oPC = GetLastKiller();
object oTag = GetObjectByTag("tag");
effect eCurse = EffectCurse(4, 4, 4, 4, 4, 4);

if(!GetIsPC(oPC)) return;

if(!GetIsDead(oTag)) return;

ApplyEffectToObject(1, eCurse, oPC, 10.0);
}


Сообщение отредактировал -fenix- - Aug 12 2005, 08:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DroWishSoul
сообщение Aug 12 2005, 11:01
Сообщение #1809


Level 3
*

Класс: Убийца
Характер: Chaotic Neutral
Раса: Эльф



Я пробовал убирать oPC = GetMaster(oPC)
все равно не работает. Не знаю, почему. Может, я с эффектом наглючил?
Добавлено в [mergetime]1123834605[/mergetime]
Извиняюсь, все заработало. Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение Aug 12 2005, 13:38
Сообщение #1810


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Мучил, мучил я систему смерть\воскрешение. Вот что получилось.

Создаем обьект - труп, обьект - сумочка

На труп в OnSpellCast(вродек так называеться)
Neverwinter Script Source
void main()
{

  if (GetResRef(OBJECT_SELF) != "pc_corpse") return;
  object oPC = GetLocalObject(OBJECT_SELF, GetName(oPC));
  if (oPC == OBJECT_INVALID) return;

  int nPenalty;
  int nSpell = GetLastSpell();
  if (nSpell == SPELL_RAISE_DEAD)
    nPenalty =100*GetHitDice(oPC);
  else if (nSpell==SPELL_RESURRECTION)
    nPenalty =50*GetHitDice(oPC);
  else return;


  AssignCommand(oPC, ClearAllActions(TRUE));
  AssignCommand(oPC, ActionJumpToLocation(GetLocation(OBJECT_SELF)));


  int nXP = GetXP(oPC);
  int nNewXP = nXP - nPenalty;
  SetXP(oPC, nNewXP);

  DeleteLocalObject(oPC,"oCorpse");
  DestroyObject(OBJECT_SELF, 1.0);
}


OnPlayerRespawn
Neverwinter Script Source
#include "nw_i0_plot"

void ApplyPenalty(object oDead)
{
  int nXP = GetXP(oDead);
  int nPenalty = 250 * GetHitDice(oDead);
  int nHD = GetHitDice(oDead);
  int nNewXP = nXP - nPenalty;
  SetXP(oDead, nNewXP);

}
void main()
{
  object oRespawner= GetLastRespawnButtonPresser();
  object oCorpse = GetObjectByTag("pc_corpse");
  if(GetLocalObject(oCorpse ,"oCorpse")==oRespawner)
    {
  DelayCommand(1.0,DestroyObject(oCorpse));
  AssignCommand(oRespawner,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE01"))));
  ApplyPenalty(oRespawner);
  ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
  ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
  RemoveEffects(oRespawner);
  DeleteLocalObject(oRespawner,"oCorpse");
  SetImmortal(oRespawner,FALSE);
    } }



OnPlayerDead
Neverwinter Script Source
void main()
{
object oPlayer = GetLastPlayerDied();
location lDiedHere = GetLocation(oPlayer);

string sHelpString="Вы мертвы, если желаете реинкарнироватьсЯ нажмите кнопку Респаун.";
DelayCommand(0.1,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer));
DelayCommand(0.5,AssignCommand(oPlayer,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE")))));
object oCorpse = CreateObject(OBJECT_TYPE_PLACEABLE,"pc_corpse", lDiedHere,FALSE);
SetLocalObject(oCorpse, "oCorpse",oPlayer);
object oBag = CreateObject(OBJECT_TYPE_PLACEABLE,"pc_bag", lDiedHere,FALSE);
SetImmortal(oPlayer, TRUE);
int nGP = GetGold(oPlayer);
int i=0;
  while(i<14)
    {
    AssignCommand(oBag,ActionTakeItem(GetItemInSlot(i, oPlayer),oPlayer));
    i++;
        }

AssignCommand(oBag,TakeGoldFromCreature(nGP,oPlayer,FALSE));
DelayCommand(6.0,PopUpDeathGUIPanel (oPlayer, TRUE,TRUE,1, sHelpString));
}




Neverwinter Script Source
OnPlayerDyining
void DyingTicker(object oPC)
{
  int iHP=GetCurrentHitPoints(oPC);
  if (iHP>0) {
      RemoveEffect(oPC,EffectBlindness());
      DeleteLocalInt(oPC,"DyingDC");
      DeleteLocalInt(oPC,"STvsDeathSucceed");
      return;
  }
  int iDC;
  int iDam;
  int iSuc;
  if (iHP<-9) { ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(TRUE,TRUE),oPC); }
  else {
      iDam=d4();
      iDC=GetLocalInt(oPC,"DyingDC");
      if (FortitudeSave(oPC,iDC)>0) {
          iDam=iDam/2;
          iSuc=GetLocalInt(oPC,"STvsDeathSucceed")+1;
          SetLocalInt(oPC,"STvsDeathSucceed",iSuc);
          if (iSuc>2) {
              FloatingTextStringOnCreature("Кровотечение прекратилось",oPC,FALSE);
              return;
          }
      }
      AssignCommand(oPC,DelayCommand(6.0,DyingTicker(oPC)));
      ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(iDam), oPC);
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectBlindness(),oPC,6.0);
      SetLocalInt(oPC,"DyingDC",iDC+1);
  }
}

void main()
{
  object oPC=GetLastPlayerDying();
  if (!GetIsPC(oPC)) return;
  SetLocalInt(oPC,"DyingDC",15);
  SetLocalInt(oPC,"STvsDeathSucceed",0);
  FloatingTextStringOnCreature("У менЯ открылось кровотечение",oPC,FALSE);
  DyingTicker(oPC);
}



Я взял стандарные скрипты предложеные на WRG.RU на слоты OnPlayerDying и на OnSpellCast (на трупе)
pc_corpse - тег и ресреф трупа
pc_bag - тег и ресреф сумочки

В итоге что у меня вышло - После того как хиты персонажа падают за 0 - он теряет сознание и лежит без него пока хиты не упадут за -10. Дальше Смерть - перс переноситься в фугу.....Шмот и деньги сбрасываються в сумку, появляеться труп, через который можно воскресить персонажа. Воскрешение - через кнопку Респан - теряет опыт 250хЛевел. Через Заклы 50хЛевел или 100хЛевел.

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

Далее вопрос:

Я вот пытался сделать, чтобы при руп при нажатии на него выдавал инфу "кто покойник".
В голову не пришло более ничего только это
OnUsed
Neverwinter Script Source
void FRAZA(object oD)
{
object oPlayer =  GetLocalObject(oD, "oCorpse");
string nm = GetName(oPlayer);
string s1="Здесь лежит"+nm+"";
AssignCommand(oD,DelayCommand(1.0,SpeakString(s1)));
}
void main()
{
object oPC = GetLastUsedBy();
object oD =OBJECT_SELF;
FRAZA(oD);
}

Но он чего-то не фурычит когда игрок выходит с сервера...
Большая прозьба внимательно посмотреть все или даже опробывать - если есть ошибки сообщить.

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 12 2005, 15:40
Сообщение #1811


Level 7
**

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



А разьве когда лежит труп, ри направлении курсора на него, его имя не видно? :swoon: Может посмотри смерть простых НеПиСей? ну или опять хенчманов? Когда их трупы валяються и направляешь на них курсор, их имя видно... скорее всего можно так сделать, но добавить уровень и т.д.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение Aug 12 2005, 16:31
Сообщение #1812


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Не я имею ввиду не когда курсор наводят, а когда нажимаешь на него..и перс подходит и взаимодействует. Должно вых строка "Имя" умершего. У меня получаеться, но когда игрок покидает шард то в место имени пустота.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 12 2005, 18:19
Сообщение #1813


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

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



Значит нужно имя в Базу данных сохранять, а когда чел опять конектится удалять.
Вот только я с БД не работал - пока и без них дел хватает.
Сам покопайся, уверен все поймешь ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Aug 12 2005, 18:34
Сообщение #1814


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

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



не нужна никакая база. просто нужно объект трупа обвесить переменными-параметрами игрока и потом брать имя(и остальное) из этих переменных. пример: добавить эту строку после создания объекта-трупа
Neverwinter Script Source
SetLocalString(oCorpse, "Name", GetName(oPlayer));


Сообщение отредактировал dumbo - Aug 12 2005, 18:36
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение Aug 13 2005, 00:15
Сообщение #1815


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



О большое спасибо. Теперь все окей
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 13 2005, 16:12
Сообщение #1816


Level 7
**

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



вот вечная проблема... Это ДНЕВНИК ( не школьный). Какой скрипт добавляет в журнал записи, изменяет их и переносит (и соответствено изменяет) в раздел выполненых?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 13 2005, 18:11
Сообщение #1817


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

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



У меня есть 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)

Добавлено в [mergetime]1123946547[/mergetime]
Создай задание в мастере сюжета и посмотри появившиеся скрипты.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Aug 16 2005, 10:18
Сообщение #1818


Level 4
**

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



Тэ-э-экс! Хреново, что посты тю-тю... я их скопировать не успел... ежели у кого есь те страницы, киньте на мыло!

А ежели нет ни у кого, то извиняюсь, но снова е же вопросы задам:

1. Как сделать, чобы хенчмен НЕ ВОССТАНАВЛИВАЛ жизнь при отдыхе, но ЗЕЛЬЯМИ нормально лечился (ну о-о-о-очень надо!)

2. у меня сингл. есть два модуля. мне нужно перенести локальную переменную из првого во второй. Помню, писали, что сохранять надо на вещах. А как? (пусть есть невыбрасываемая вещь, тег: "ТЕГ", рес реф: "ресреф". как на нее В ДИАЛОГЕ повесить локальную переменную Z=1, и как в другом модуле В ДИАЛОГЕ ее определять?) (тоже ну о-о-о-очень надо!)

3. как сделать, чтобы при использовании уникальной силы вещи:
а) открывался диалог
б)на ДРУГУЮ ВЕЩЬ вешалась локалка?

если можно, то подробно и с примерами, ведь это сложно...наверно.

и еще анимацию молнии из одного обьекта в другой, угу? :crazy:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 16 2005, 10:48
Сообщение #1819


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

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



QUOTE (zmey @ Aug 16 2005, 10:18)
2. у меня сингл. есть два модуля. мне нужно перенести локальную переменную из првого во второй. Помню, писали, что сохранять надо на вещах. А как?

На диалоге в Соверешенные действия поставить установку переменной.
Вот функция.
Neverwinter Script Source
void main()
{
SetLocalInt(object oObject, string sVarName, int nValue);
}

object oObject - Объект на которм сохраняется переменная
string sVarName - имя переменной
int nValue - значение переменной

А в другом диалоге, на Текст появляется при проверить переменную.
Вот функция.
Neverwinter Script Source
int StartingConditional()
{
    if(GetLocalInt(object oObject, string sVarName) == 1)
    return TRUE;
    return FALSE;
}

object oObject - на коком объекте смотреть переменную
string sVarName - имя искомой переменной
1 - число которое нужно посмотреть(1, это для примера)

QUOTE (zmey @ Aug 16 2005, 10:18)
3. как сделать, чтобы при использовании уникальной силы вещи: а) открывался диалог б)на ДРУГУЮ ВЕЩЬ вешалась локалка?

а)
Для начала надо установить вещи уникальную силу, в ее св-вах.
Потом в св-вах модуля на OnActivateItem
Neverwinter Script Source
ActionStartConversation(object oObjectToConverseWith, string sDialogResRef="", int bPrivateConversation=FALSE, int bPlayHello=TRUE)

object oObjectToConverseWith - задает с кем будет идти разговор (ну конечно с вами)
string sDialogResRef - пишем в кавычках название разговорника =)
Если это значение не указано, то будет использован прикрепленный к объекту диалог.
int bPrivateConversation - приватный разговор (TRUE) или это слышат все (FALSE)
int bPlayHello - когда начинаешь разговор скажи привет (TRUE) или тупо промолчи (FALSE)
б) Как устанавливать локалки уже писал.
QUOTE (zmey @ Aug 16 2005, 10:18)
и еще анимацию молнии из одного обьекта в другой, угу?

Это не анимация, а эффект.
Neverwinter Script Source
ApplyEffectToObject(int nDurationType, effect eEffect, object oTarget, float fDuration=0.0f)

int nDurationType - определяет, сколько этот эффект будет продолжаться :
DURATION_TYPE_INSTANT - мгновенно
DURATION_TYPE_PERMANENT - всегда
DURATION_TYPE_TEMPORARY - временно
effect eEffect - прмиеняемый эффект
object oTarget - объект, к оторому будет применяться эффект
float fDuration - длительность эффект (если в nDurationType стоит DURATION_TYPE_TEMPORARY)
тебе нужен наверно этот эффект: EffectVisualEffect(VFX_BEAM_LIGHTNING).

Сообщение отредактировал -fenix- - Aug 16 2005, 11:09
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Aug 16 2005, 10:56
Сообщение #1820


Level 4
**

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



Fenix, а про хенчмена случаем не знаешь?

QUOTE
Neverwinter Script Source
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_BEAM_LIGHTNING), Тут на кого);

а ежели мне надобно, чтоба при использовании камня молния била из ВТОРОГО камня в ТРЕТИЙ? :D



Добавлено в [mergetime]1124179572[/mergetime]
P.S. Ставлю хенчам стандарные скрипты (из Орд) они пока живые - нормальные. Помирают - осавляют юзабельный труп. Эо нормально. А вот если их воскрешаешь, то они за тобой бегают, но НЕ НАПАДАЮТ НА ВРАГА И СТАНОВЯТСЯ БЕССМЕРТНЫМИ. А (ВЫРЕЗАНО ЦЕНЗУРОЙ) мне нужны бессмертные хенчмены?


Добавлено в [mergetime]1124179852[/mergetime]
Не врублюсь, как сделать:
Идет бой, PC почи что убивает негодяя и тот начинает молить о пощаде. То есть, как запустить диалог, если у непися во время бос осталось , ну, скажем 25% жизни?

Если есть, то готовый скрипт с пояснениями, если нет, то образец с пояснениями.

(Еще Ян Амос Коменский говорил, что в обучении важна наглядность!!!)
Добавлено в [mergetime]1124180045[/mergetime]
Скрипт на повреждение PC, OK? Типа встал перс в триггер, его молнией с неба-(ВЫРЕЗАНО ЦЕНЗУРОЙ), и наносится повреждение в Х ЕЖ.
Добавлено в [mergetime]1124180169[/mergetime]
И еще: сть ли в природе хаки с:
1. примитивным огнестрельным оружием
2. ползающими тварями, типа наг и ормирр из POOL OF RADIANCE?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 16 2005, 11:23
Сообщение #1821


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

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



zmey, посмотри еще раз пост, я там кое что поправил.
QUOTE (zmey @ Aug 16 2005, 10:56)
а ежели мне надобно, чтоба при использовании камня молния била из ВТОРОГО камня в ТРЕТИЙ?

Смотря, что подразумевается под использованием?
Если просто клик, то скрипт ставешь на OnUsed (не забудь объект поставить используемым).
Но тогда нужно писать через AssignCommand.

Neverwinter Script Source
void main()
{
object oStone1 = GetObjectByTag("Таг первого камня");
object oStone2 = GetObjectByTag("Таг второго камня");
AssignCommand(oStone1, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_BEAM_LIGHTNING)), oStone2);
}
QUOTE (zmey @ Aug 16 2005, 10:56)
А вот если их воскрешаешь

А как ты их воскрешаешь?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
zmey
сообщение Aug 16 2005, 11:26
Сообщение #1822


Level 4
**

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



Да-с. вопросов много. Как-никак неделю скриптить тренировался и вот вопрос № следующий. Не получилось написать скрипт, идея которого такая: При Юзаньи предмета во всех локах модуля, в WP_skel появляются скелеты.
Добавлено в [mergetime]1124180930[/mergetime]
Этим... как его там... Забыл блин название спелла. то ли воскрешение, то ли поднять мертвого... вроде воскрешение. Ну, в ордах жезлы воскрешения были. Вот таким и воскрешаю...
Добавлено в [mergetime]1124181035[/mergetime]
QUOTE
Смотря, что подразумевается под использованием?
Если просто клик, то скрипт ставешь на OnUsed (не забудь объект поставить используемым).
Но тогда нужно писать через AssignCommand.
Да...да...да...! Именно то, что надь... вроде. Тулсета нет под рукой проверить, но вроде оно!
Добавлено в [mergetime]1124181202[/mergetime]
как звать такую анимацию : непись медленно уходит вдаль и исчезает из поля зрения, его больше нет.
Добавлено в [mergetime]1124181441[/mergetime]
вопрос номер (ВЫРЕЗАНО ЦЕНЗУРОЙ) его знает какой: Как сделать, чтобы эффект при использовании уникальной силы накладывался случайным образом. Например, или каменная кожа, или проклятие, или повреждние персу на Х хр?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DEM
сообщение Aug 16 2005, 11:40
Сообщение #1823


Level 7
**

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



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

Я бы отправил его в вэйпоинт коорый стоит далеко, а потом зделал бы прыжок в другую локу...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Aug 16 2005, 11:47
Сообщение #1824


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

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



zmey посмотри раздел скриптов, базу скриптов вернее. ТАм я написал как сделать что бы НПС не умер а начал что-то.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 16 2005, 12:09
Сообщение #1825


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

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



QUOTE (zmey @ Aug 16 2005, 10:56)
Скрипт на повреждение PC, OK? Типа встал перс в триггер, его молнией с неба-(ВЫРЕЗАНО ЦЕНЗУРОЙ), и наносится повреждение в Х ЕЖ.

Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
effect eEffect = EffectVisualEffect(VFX_IMP_DOOM);
effect eDamage = EffectDamage(5, DAMAGE_TYPE_ELECTRICAL, DAMAGE_POWER_ENERGY);

ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPC);
}

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

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

 



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