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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
205 страниц V  « < 60 61 62 63 64 > »   
Ответить в эту темуОткрыть новую тему
> Вопросы новичков, Абсолютные глупости
Мефистофель
сообщение Jun 28 2005, 18:14
Сообщение #1526


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Lex Спасибо, но я не на столько умён как вы, эх.
QUOTE
это разбиралось не раз и не 2. И по характеру, по классу, по расе и прочее.
Смотри старые темы или Вопросы и Ответы.

Чёрт, клянусь мамой, искал гдето час, пользовался поиском, и в итоге 0! :swoon:
Ткните носом! :D
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 29 2005, 01:18
Сообщение #1527


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

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



Мефистофель
по расам: http://www.wrg.ru/forums/index.php?showtopic=889&st=225 :this:
далее по аналогии...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jun 29 2005, 08:24
Сообщение #1528


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC))
return;
int nPasi = GetGoodEvilValue(oPC);
string sWP;
if(nPasi == ALIGNMENT_GOOD)
    sWP = "wp_start_good";
if(nPasi == ALIGNMENT_EVIL)
    sWP = "wp_start_Evil";
ActionJumpToObject(GetWaypointByTag(sWP));
}
????
А скажите как зделать так, если игрок нейтральный то он несможет играть, а например то что связано с добрым, например Хаотично добрый? или здлым. относилось к скрипту.
а если игрок нейтральный то появлялась тобличка как в проклятии левора.
Спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 29 2005, 08:54
Сообщение #1529


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

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



QUOTE (Мефистофель @ Jun 29 2005, 11:24)
а если игрок нейтральный то появлялась тобличка как в проклятии левора.

Возьми скрипты Левора и глянь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jun 29 2005, 13:05
Сообщение #1530


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



QUOTE
Возьми скрипты Левора и глянь.

Дело в том что у меня сейчас нет левора!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Friedrich
сообщение Jun 29 2005, 22:16
Сообщение #1531


Level 5
**

Класс: Рейнджер
Характер: Neutral Good
Раса: Человек



Мефистофель, GetGoodEvilValue(object) возвращает значение от 0 до 100, а не константу аляймента!
Добавлено в [mergetime]1120072670[/mergetime]
Знакомые грабли.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jun 29 2005, 23:41
Сообщение #1532


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



QUOTE
Мефистофель, GetGoodEvilValue(object) возвращает значение от 0 до 100, а не константу аляймента!

А какую функцыю надо?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 30 2005, 00:08
Сообщение #1533


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



Мефистофель
Вот функция
Neverwinter Script Source
if (GetGoodEvilValue(oPC) )
    Kill(oPC);

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 30 2005, 01:44
Сообщение #1534


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Брр... о чем это вы, вот что должно быть:

Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();

    if (!GetIsPC(oPC)) return;

    int iAligment = GetAlignmentGoodEvil(oPC);
    string sWP;

    if (iAligment == ALIGNMENT_GOOD)
        sWP = "wp_start_good";
    else if (iAligment == ALIGNMENT_EVIL)
        sWP = "wp_start_Evil";
    else
        DelayCommand(6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(FALSE, TRUE), oPC));

    AssignCommand(oPC, ActionJumpToObject(GetWaypointByTag(sWP)));
}


Судя по этому "if (!GetIsPC(oPC)) return;", относится к многопользовательской игре, поэтому скрипт можно поставить и на "OnClientEnter". Правда, я не советую так делать, не поймут, лучше уж накладывать неподвижность, и выводи фразу в лог боя, что персонажи с нейтральным мировоззрением не допускаются.

Например, так:

Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();

    if (!GetIsPC(oPC)) return;

    int iAligment = GetAlignmentGoodEvil(oPC);
    string sWP;

    if (iAligment == ALIGNMENT_GOOD)
        sWP = "wp_start_good";
    else if (iAligment == ALIGNMENT_EVIL)
        sWP = "wp_start_Evil";
    else
        effect eParalyze = EffectCutsceneImmobilize();
        ApplyEffectToObject(DURATION_TYPE_PERMANENT, eParalyze, oPC);
        DelayCommand(3.0, SendMessageToPC(oPC, "Извините, но нейтральное мировоззрение недопустимо."));
        return;

    AssignCommand(oPC, ActionJumpToObject(GetWaypointByTag(sWP)));
}


Сообщение отредактировал Zirrex - Jun 30 2005, 01:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jun 30 2005, 19:10
Сообщение #1535


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



А, а я на сам вопрос невнимательно посмотрел, я думал, что при вхождении в модуль игрок должен быть только нейтральным. А если надо, чтобы он к вейпу определенному прыгал, то это другое дело. :buba:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jul 1 2005, 04:23
Сообщение #1536


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Зирекс Спасибо огромное пойду проверять.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мягкий Пушистик
сообщение Jul 1 2005, 06:28
Сообщение #1537


мягкий и пушистый
Иконки Групп

Класс: Обыватель
Характер: True Neutral
Раса: Человек
Фанат WRG!



не хватает там в нескольких местах { и }
(в блоке для нейтралов в первом и втором скрипте)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
GoingPro)
сообщение Jul 1 2005, 15:49
Сообщение #1538


Level 3
*

Класс: Ниндзя
Характер: Chaotic Evil
Раса: Человек



хочу зделать малюсенький сервер...
вопрос такой:
Как мне зделать так что бы на нем нельзя было инспользовать персонажей локалки, а создавать новых и что бы они сохранялись? :unsure:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jul 1 2005, 18:39
Сообщение #1539


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



QUOTE
и что бы они сохранялись? 

Любой созданный персонаж сохраняется в loalvault.
QUOTE
Как мне зделать так что бы на нем нельзя было инспользовать персонажей локалки

Ты боишся, что люди будут заходить прокачанными персонажами? Тогда этот скрипт на on enter начальной локации
Neverwinter Script Source
void main()
{

object oPC = GetEnteringObject();
object oEquip = GetFirstItemInInventory(oPC);
int nGold = GetGold(oPC);
object oCustoms = GetObjectByTag("customs");
location lEntry =GetLocation (GetObjectByTag("ENTRY_POINT"));
int nHasEntered=GetLocalInt(oPC, "entered");
effect eEffect;


f (GetIsPC(oPC) == TRUE && GetIsDM(oPC) == FALSE && GetIsObjectValid (oPC) == TRUE) // далее скрипт идет если персонаж не DM
{


  while(GetIsObjectValid(oEquip))
    {
      DestroyObject(oEquip);
      oEquip = GetNextItemInInventory(oPC);
    }

  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARMS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BELT, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CHEST, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_HEAD, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_NECK, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC));
  DestroyObject(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC));
//забирает вещи

  SetXP(oPC, 0);


  AssignCommand ( oPC, TakeGoldFromCreature ( nGold, oPC, TRUE)); //забирает золото


}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 1 2005, 23:31
Сообщение #1540


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Агрессинг эм... скрипт конечно хорошо, но на сервере достаточно убрать галку "Local Characters Allowed", тогда все входящие игроки будут создавать персонажей заново. Твой скрипт низводит персонажа до 1-го уровня, удаляет все вещи и золото, но он делает это при каждом входе. Можно сделать проще, с учетом вышеописанной опции:

Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();

    if (GetIsDM(oPC)) return;

    if (!GetXP(oPC))
    {
        int StartGold = 0;
        int StripPlayer = TRUE;

        if (StartGold == 0)
        {
            if (GetLevelByClass(CLASS_TYPE_BARBARIAN,oPC))    StartGold = d4(5) * 100;
            else if (GetLevelByClass(CLASS_TYPE_BARD,oPC))    StartGold = d4(4) * 100;
            else if (GetLevelByClass(CLASS_TYPE_CLERIC,oPC))  StartGold = d4(4) * 100;
            else if (GetLevelByClass(CLASS_TYPE_DRUID,oPC))    StartGold = d4(4) * 100;
            else if (GetLevelByClass(CLASS_TYPE_FIGHTER,oPC))  StartGold = d4(6) * 100;
            else if (GetLevelByClass(CLASS_TYPE_MONK,oPC))    StartGold = d4(4) * 100;
            else if (GetLevelByClass(CLASS_TYPE_PALADIN,oPC))  StartGold = d4(5) * 100;
            else if (GetLevelByClass(CLASS_TYPE_RANGER,oPC))  StartGold = d4(5) * 100;
            else if (GetLevelByClass(CLASS_TYPE_ROGUE,oPC))    StartGold = d4(6) * 100;
            else if (GetLevelByClass(CLASS_TYPE_SORCERER,oPC)) StartGold = d4(3) * 100;
            else if (GetLevelByClass(CLASS_TYPE_WIZARD,oPC))  StartGold = d4(3) * 100;
            else                                              StartGold = d4(4) * 100;
        }
        GiveGoldToCreature(oPC, StartGold - GetGold(oPC));

        // Удалить надетые на игроке вещи
        if (StripPlayer)
        {
            int i;

            for (i = 0; i < 15 ; i++)
            {
                object oEquip = GetItemInSlot(i,oPC);

                if (GetIsObjectValid(oEquip)) DestroyObject(oEquip);
            }
        }

        // Удаление вещей из рюкзака персонажа
        object oItem = GetFirstItemInInventory(oPC);

        while (GetIsObjectValid(oItem))
        {
            DestroyObject(oItem);
            oItem = GetNextItemInInventory(oPC);
        }
        SetXP(oPC, 1);
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 2 2005, 13:23
Сообщение #1541


Level 4
**

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



Здравствуйте, я чодержу небольшой шард в локальной сети, вроде полностью созданый модуль работает безглючно но появилась такая проблема, нет стимула пвп ибо с игроков ничего не падает, как я не старался, скрипт onDeath у меня вроде правильно составлен, но золото с игрока не падает, а только копируется в сумку, откуда отреспавнившийся игрок может забрать в 2 раза больше золота и такие же вещи. Почему у мертвого игрока нельзя забрать веши и как с этим бороться?
И вот еще вопрос: как заставить нипися слушать и как узнать что именно сказал игрок(янашел как узнать сказал ли он то, что задуманно, сказал ли он чтото вообще, но как узнать что именно игрок сказал понять не могу)?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jul 2 2005, 14:38
Сообщение #1542


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

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



QUOTE (Batkom @ Jul 2 2005, 14:23)
Почему у мертвого игрока нельзя забрать веши и как с этим бороться?

надо сделать, чтобы падали.
Самый простой вариант: на смерть игрока написать скрипт создания мешка, куда кидать деньги и вещи (какая часть денег и вещей - решать вам. Тут были варианты рандомно одетую вещь, рандомно вещь инвентаря...)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 2 2005, 16:21
Сообщение #1543


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Batkom, скажи мне одну вещь, ты HCR используешь? Если да, то ответ прост, на скрипте умирания "dying" есть обработка создания сумки и копирования туда денег. Бывают моменты, когда скрипт на эвентах "dying и death" срабатывает одновременно, поэтому у тебя и получается дублирование денег. Есть такой вариант:

Neverwinter Script Source
object DropBag(location lDiedHere, object oPC)
{
    string sID = GetName(oPC) + GetPCPublicCDKey(oPC);
    location lLoc = GetLocation(oPC);

    vector vLootBag = GetPositionFromLocation(lLoc);

    float fFacing = GetFacing(oPC) + (Random(2) ? 90.0 : -90.0);

    vLootBag.x += cos(fFacing) * 0.45f;
    vLootBag.y += sin(fFacing) * 0.45f;

    location lDropBag = Location(GetArea(oPC), vLootBag, fFacing + 180.0);

    object oDropBag = CreateObject(OBJECT_TYPE_PLACEABLE, "DyingCorpse", lDropBag, FALSE, "DropBag" + sID);
    return oDropBag;
}

void StripThings(object oPC, object oDrop, object oEquip)
{
    if (GetIsObjectValid(oEquip))
    {
        CopyItem(oEquip, oDrop);
        DestroyObject(oEquip);
    }
}


void CheckBag(object oDropBag)
{
    object oItem = GetFirstItemInInventory(oDropBag);

    if (!GetIsObjectValid(oItem))
    {
        DelayCommand(2.0, DestroyObject(oDropBag));
    }
}

void main()
{
    object oPC = GetLastPlayerDied();
    object oMod = GetModule();

    if (GetTag(GetArea(oPC)) == "fugue_plane") return;

    object oHenchman = GetHenchman(oPC);

    if (GetIsObjectValid(oHenchman))
    {
        RemoveHenchman(oPC, oHenchman);
    }

    string sName = GetName(oPC);
    string sCDK = GetPCPublicCDKey(oPC);
    string sID = sName + sCDK;

    if (GetIsObjectValid(oPC))
    {
        location lDiedHere = GetLocation(oPC);
        object oDropBag = GetLocalObject(oMod, "DropBag" + sID);

        if (!GetIsObjectValid(oDropBag))
        {
            oDropBag = DropBag(lDiedHere, oPC);
        }

        int iGold = GetGold(oPC);

        if (iGold > 0)
        {
            object oBag = CreateItemOnObject("bagofgold", oDropBag);
            SetLocalInt(oBag, "Gold", iGold);
            SetLocalInt(oDropBag, "Gold", iGold);
            AssignCommand(oDropBag, TakeGoldFromCreature(iGold, oPC, TRUE));
        }

        float fProcent = 50.0;

        float fRoll = IntToFloat(d20());
        float fChance = (fRoll * fProcent) / 100.0;
        float fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_ARMS, oPC));
        }

        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_BELT, oPC));
        }

        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC));
        }

        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC));
        }

        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_HEAD, oPC));
        }

        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC));
        }

        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_NECK, oPC));
        }

        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC));
        }


        fRoll = IntToFloat(d20());
        fChance = (fRoll * fProcent) / 100.0;
        fCheck = IntToFloat(d20());

        if (fChance >= fCheck)
        {
            StripThings(oPC, oDropBag, GetItemInSlot(INVENTORY_SLOT_CHEST, oPC));
        }
        CheckBag(oDropBag);

        object oLimbo = GetObjectByTag("wp_enter_fugue");
        DelayCommand(5.0, AssignCommand(oPC, ActionJumpToObject(oLimbo)));
    }
}

Это лишь малая часть, чтобы описать тут весь процесс смерти, страницы не хватит. Если тебе нужна более серьезная обработка смерти, могу скинуть по почте скрипты. В данном случае я убрал создание трупа, с помощью которого можно воскресить, описав лишь создание мешка с деньгами, и выпадение случайным образом вещей.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 2 2005, 21:49
Сообщение #1544


Level 4
**

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



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

Сообщение отредактировал Batkom - Jul 2 2005, 21:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jul 3 2005, 00:50
Сообщение #1545


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



ОГРОМНАЯ Посьба, дорогие форумчане помогите мне пожалуйста, очень нужен скрипт. :swoon:
если ПК с Хорактером Злой, то при смерти он отправляется в ад, если добрый то в рай. :this:
надеюсь на вашу помощь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 3 2005, 03:59
Сообщение #1546


Level 4
**

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



можно включить в скрипт onDeath вот это:
Neverwinter Script Source
object oPC = GetLastPlayerDied();
if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
{
ActionCastSpellAtObject(SPELL_RESURRECTION, oPC);
AssignCommand(oPC, ActionJumpToLocation(GetLocation(GetObjectByTag("heven"))));
}

if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL)
{
ActionCastSpellAtObject(SPELL_RESURRECTION, oPC);
AssignCommand(oPC, ActionJumpToLocation(GetLocation(GetObjectByTag("hell"))));
}



В раю должен стоять флажок или невидимый обьект в тегом heven а в аду с тегом hell

можно также включить это в скрипт респавна , только тогда будет
Neverwinter Script Source
object oPC = GetLastRespawnButtonPresser();


Сообщение отредактировал Batkom - Jul 3 2005, 04:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 3 2005, 12:39
Сообщение #1547


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Batkom, подобный скрипт:

Neverwinter Script Source
ActionCastSpellAtObject(SPELL_RESURRECTION, oPC);

не оживит игрока, потому что ты на него читаешь воскрешение, но не возвращаешь жизнь.

Писать нужно так, чтобы точно воскресить и перенести:

Neverwinter Script Source
void Resurrect(object oPlayer, object oTransfer)
{
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectResurrection(), oPlayer);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer);
    AssignCommand(oPlayer, ActionJumpToObject(oTransfer));
}

void main()
{
    object oPC = GetLastPlayerDied();

    int iAligment = GetAlignmentGoodEvil(oPC);

    if (iAligment == ALIGNMENT_GOOD)
    {
        DelayCommand(2.0, Resurrect(oPC, GetObjectByTag("heven")));
    }
    else if (iAligment == ALIGNMENT_NEUTRAL)
    {
        DelayCommand(2.0, Resurrect(oPC, GetObjectByTag("heven")));
    }
    else
    {
        DelayCommand(2.0, Resurrect(oPC, GetObjectByTag("hell")));
    }
}


По поводу твоего скрипта, где создается сумка для вещей, ты смог разобраться?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jul 3 2005, 20:16
Сообщение #1548


Level 4
**

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



вот схематичный скрипт в ondeath
Neverwinter Script Source
object oDrop = CreateObject(OBJECT_TYPE_PLACEABLE, "тег  пласбл бекпека", GetLocation(oPC));
    int PGold = GetGold(oPC);
    TakeGoldFromCreature(PGold, oPC, TRUE);
    CreateItemOnObject("nw_it_gold001", oDrop, PGold);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
GoingPro)
сообщение Jul 3 2005, 21:15
Сообщение #1549


Level 3
*

Класс: Ниндзя
Характер: Chaotic Evil
Раса: Человек



А можно мне полный скрипт на смерть на почту выслать? плиззз
goingpro@ukr.net
что бы и труп оставался для рэса и сумка создавалась и все вещи с рюкзака выпадали кроме одетых, на одетые процент выпадания и все золото что бы выпадало, ну и на фугу естественно попадать плизззз
Очень прошу, очень нужно.... :sorry:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Агрессинг
сообщение Jul 4 2005, 00:35
Сообщение #1550


Level 5
**

Класс: Убийца
Характер: True Neutral
Раса: Чудовище



Мефистофель
Я тебе рассказывал ведь, что нужно делать проверки на характер, а потом джампать игрока к вейпоинту лагеря. Тут то же самое, в свойствах модуля на onplayerdeath ставь такой же скрипт, как и в начале с выбором лаеря, только замени теги вейпоинтов лагерей, на теги вейпоинтов рая и ада и PC обозначь как GetFirstPC();Zirrex
Я с шардами не знаком, так что...


LEX: тока не GetFirstPC() (это получится чисто сингловый скрипт. Да и не зря эти функции сделали.), а GetLastPlayerDied() или GetLastPlayerDying(). Смотре где стоит скрипт.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

205 страниц V  « < 60 61 62 63 64 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th April 2025 - 10:20