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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
3 страниц V   1 2 3 >  
Ответить в эту темуОткрыть новую тему
> Азы скриптинга NWN/NWN2. Внеклассные занятия, Открыто для всех желающих
Neo
сообщение Oct 6 2007, 22:55
Сообщение #1



Иконки Групп

Класс: Пьяный Мастер
Характер: Lawful Good
Раса: Тварь
MySQL, PHP, JavaScript
Порядок Времени



а это... можно спросить? (IMG:style_emoticons/kolobok_light/blush.gif) а что такое переменная? (IMG:style_emoticons/kolobok_light/blush.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 7 2007, 11:45
Сообщение #2


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

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



Переме́нная в традиционных языках программирования — поименованная ячейка памяти, имя которой можно использовать для осуществления доступа к данным, находящимся по данному адресу.
http://ru.wikipedia.org (с)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Vhall
сообщение Oct 7 2007, 13:43
Сообщение #3


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

Класс: Обыватель
Характер: True Neutral
Раса: Дварф
NWN: Контент



QUOTE(Ёжик @ Oct 7 2007, 14:03) *
Почему oNeo, oLex, oAiwan? Что значит object oAiwan = GetObjectByTag("Aiwan ROOT Boss")?

В строке
Neverwinter Script Source
object oAiwan = GetObjectByTag("Aiwan ROOT Boss")

мы говорим о том, что когда в последствии обратимся (GetObjectByTag) к oAiwan - это будет объект (GetObjectByTag) c тегом (GetObjectByTag) "Aiwan ROOT Boss".
В object'e можно писать что угодно. Но для удобства лучше ассоциировать его с тегом.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Oct 7 2007, 14:38
Сообщение #4


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Цитата(Ёжик @ Oct 7 2007, 14:03) *
Почему oNeo, oLex, oAiwan?

А это звательный падеж (IMG:style_emoticons/kolobok_light/biggrin.gif)
Серьезно - исключительно для твоего собственного удобства. Буква "о" в начале названия объекта означает, что это именно объект, чтобы ты сама потом разобралась. Можно без этого обойтись.
Цитата(Ёжик @ Oct 7 2007, 14:03) *
Что такое int StartingConditional()?

Conditioinal - это условие.
StartingConditioinal - это условие, открывающее скрипт. Eсли оно выполняется, скрипт начинает работу.
Цитата(Ёжик @ Oct 7 2007, 14:03) *
void main - это что?

void main - это основная функция. Ты просто указываешь, откуда брать данные - из списка основных функций языка. Потому что есть еще функции пользовательские - те, которых нет в списке и которые скриптеры пишут сами. Ну, это я так понимаю, во всяком случае. Меня здесь вообще быть не должно (IMG:style_emoticons/kolobok_light/ph34r.gif)

Сообщение отредактировал shadowdweller - Oct 7 2007, 16:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 8 2007, 09:26
Сообщение #5


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
Интеджер integer - это целое значение. может быть 1, 10, 25 и т.д.

маленькое уточнение целые числа - это не только натуральные (как в примере Айвана - "может быть 1, 10, 25 ") но и 0 и также негативные -1б -10, -125

------------------------------------------

Цитата
void main - это что?

Цитата
ну тогда вычеркни меня и всё

ээ колючая не надо сразу иголками колотьс...больно же (IMG:style_emoticons/kolobok_light/rolleyes.gif)

если ты пишешь скрипт, то это означает, что ты пишешь инструкцию для компа, что как и когда делать...ты эту инструкцию пишешь на определенном языке и ,как у каждого языка , у скриптов есть свои граматические правила что бы исполнитель( то есть комп) мог тебя правильно понять .. комп у нас испольнитель шустрый, но тупой (IMG:style_emoticons/kolobok_light/biggrin.gif)
поэтому ему надо расписать "обьясняя на пальцах" (IMG:style_emoticons/kolobok_light/declare.gif)
каждая такая инструкция для компа называеться функцией
она начинаеться с слова void и весь ее текст заключаеться между кавычками { и }
одна среди них есть главная( та которая и начинаеться с void main )
между кавычками главной ты и записываешь те действия которые нужно, что бы комп сделал
там может быть и коментарии( которые просто для себя пишешь, а комп их не выполняет (IMG:style_emoticons/kolobok_light/rolleyes.gif) )
и обьявление различных переменных,и выплнения каких то других действий и функций
другие функции есть трех видов
1) те которые ты используешь готовыми( они уже написаны и "зашиты" при написании тулсета)
2) те которые написали другие люди , а ты скопировала и до бавила в свои скрипты
3) те которые ты написала сама
это как с приготовлением празничного обеда:
ты берешь тарелки , вилки , ложки, супницы( встроенные функции) , берешь принесенный из кулинарии торт и шампанское( готовые функции написанные другими), добавляешь свой любимый салат и собственноручно испеченые ватрушечки(тобою написанные функции) , на стол стелишь скатерть и ставишь цветы ( разные другие действия) и вместе у тебя получаеться празничный стол(void main ) к которому садяться и все это уплетают пользователи

вот пимерно так (IMG:style_emoticons/kolobok_light/declare.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Neo
сообщение Oct 8 2007, 13:43
Сообщение #6



Иконки Групп

Класс: Пьяный Мастер
Характер: Lawful Good
Раса: Тварь
MySQL, PHP, JavaScript
Порядок Времени



Цитата(mamuc @ Oct 8 2007, 10:26) *
маленькое уточнение целые числа - это не только натуральные

ну тогда уж уточнение, целочисленные данные бывают со знаком и без (IMG:style_emoticons/kolobok_light/smile.gif) правда в нвн такого деления нет, но тем не менее (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 8 2007, 14:23
Сообщение #7


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
Каждый в скрипте имя oSelf сменит на свой ник, например oAiwan и напишет в этой теме результат. ПИШИТЕ В РЕДАКТОРЕ И КОМПИЛИТЕ.

(IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
а результата как таковово то НЕ БУДЕТ

ибо, что бы увидеть КАК СКРИПТ СРАБОТАЕТ ему нужно место ГДЕ он это может сделать
то есть не хватит просто скрипта как такового
надо еще и создать возможность как то проявить себя
поэтому сделайте лучше так :
-откройте новый модуль в тулсете с одной малюсенькой локой
-поставьте на этой локе один плейсебл( например сундук)
-сделайте его юзабельным , если он статичен (соотв галочка в свойствах плейса )
-напиштие скрипт предложеный Айваном сохраните его под каким то именем (например aivan0001)
-повесьте этот скритп на ON CLOSE вашего сундука
(откройте свойства плейса возмите страницу Scripts и там на слоте On Close смените стандартный скрипт на aivan0001)
-сохраните модуль
-запустите модуль как игрок, подойдите к сундуку и откройте и закройте его
и вы получите соотв то что требовалось (IMG:style_emoticons/kolobok_light/mosking.gif)
- опишите , что вышло Айвану (IMG:style_emoticons/kolobok_light/declare.gif)

п.с. если какой то орел супермодератор ЕЩЕ раз будет перемещать УЧЕБНЫЕ посты куда попало, то я ему клюв загну, перья из хвоста повыдергаю и в уши засуну , апотом скажу, что так все и было ...вот (IMG:style_emoticons/kolobok_light/aggressive.gif) (IMG:style_emoticons/kolobok_light/rolleyes.gif)

Сообщение отредактировал mamuc - Oct 8 2007, 14:46
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 8 2007, 16:14
Сообщение #8


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

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



mamuc, мне нужен был результат в виде кода. Я хочу начать с азов. Ты не понял. Пусть меняют только описание и компилят, что бы видеть ошибки свои же. Если не компилится.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Artlira
сообщение Oct 9 2007, 02:36
Сообщение #9


Level 4
**

Класс: Маг
Характер: Chaotic Neutral
Раса: Танар'ри



mamuc

Если проиграть вариант с сундуком, то должно получиться следующее?
При условии, что сундук пуст (OnClose), он же и лишится 5 хитов? Объектом же, как его не обзови (oSelf или oLira) будет сам сундук?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 9 2007, 08:15
Сообщение #10


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

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



Да, именно так и будет.

Добавлено через 3 минуты 12 секунды

Есть мысли (Хотя бы на словах), как сделать так, чтобы урон нанесся игроку?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 9 2007, 08:54
Сообщение #11


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
При условии, что сундук пуст (OnClose),

cкрипт на OnClose срабатывает каждый раз , когда сундук закрываеться и не важно пустой он или лежит там что-то - то есть не проверяеться содержание сундука
и тот вариант скрипта , который предложил вам Айван действительно сработает на сам сундук ибо там береться обьект по умолчанию, что не всегда есть гут (IMG:style_emoticons/kolobok_light/biggrin.gif)
поэтому давайте подумайте над предложением Лекса
Цитата
Есть мысли (Хотя бы на словах), как сделать так, чтобы урон нанесся игроку?

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

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


п.с. чертовски НЕУДОБНО искуственное разделение на две темы... теряеться смысл
поэтому предлагаю модераторам ДВАЖДЫ ПОДУМАТЬ прежде чем переносить посты из темы в тему ( моя ОЧЕНЬ ЗЛОЙ (IMG:style_emoticons/kolobok_light/spiteful.gif) становиться кстати)
а лучше вообще обе темы обьеденить обратно

Сообщение отредактировал mamuc - Oct 9 2007, 09:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 9 2007, 09:10
Сообщение #12


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

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



Не надо ничего объединять. Лебедь Рак и Щука тоже делали одно дело (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 9 2007, 09:19
Сообщение #13


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
Не надо ничего объединять. Лебедь Рак и Щука тоже делали одно дело


то есть это мягое напоминамие ударом дубиной, что помщники тебе не нужны и ты только сам и один будешь все делать?

ну чтож, тогда имею честь откланиться

как выразился здесь один кооолючий Ежик
можете вычеркивать меня

счастливо оставаться
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Oct 9 2007, 11:33
Сообщение #14


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Хорош вам уже грызться (IMG:style_emoticons/kolobok_light/diablo.gif)

Neverwinter Script Source
object Target=PC
//хотя может РС стоит писать "РС"?
// или 2-вариант
object oPC=OBJECT_SELF


Neverwinter Script Source
// Create a Damage effect
// - nDamageAmount: amount of damage to be dealt. This should be applied as an
//  instantaneous effect.
// - nDamageType: DAMAGE_TYPE_*
// - nDamagePower: DAMAGE_POWER_*
// - nIgnoreResistances: FALSE will use damage immunity, damage reduction, and damage resistance.  TRUE will skip all of these.
effect EffectDamage(int nDamageAmount, int nDamageType=DAMAGE_TYPE_MAGICAL, int nDamagePower=DAMAGE_POWER_NORMAL, int nIgnoreResistances=FALSE);


НО результат все тот же 0.85.nss(1) ERROS: ELLIPSIS IN IDENTIFIER. (IMG:style_emoticons/kolobok_light/crazy.gif)

Сообщение отредактировал Griffon - Oct 9 2007, 11:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Oct 9 2007, 11:52
Сообщение #15


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

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



Цитата(mamuc @ Oct 9 2007, 12:19) *
то есть это мягое напоминамие ударом дубиной, что помщники тебе не нужны и ты только сам и один будешь все делать?

Зря ты. Мне просто нужно самому контролировать весь процесс. Если каждый будет писать в той теме то получится куча мала. Я ж в самом начале сказал ТАМ ПИШУТ ТОЛЬЯКО Я И УЧЕНИКИ. Не обижайся (IMG:style_emoticons/kolobok_light/wink3.gif) Но мне сложно что то делать когда со всех сторон что то кто то будет писать. Я пытаюсь дать народу материал как я задумал, а твои задачи слишком сложны. Поверь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 9 2007, 11:56
Сообщение #16


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
object Target=PC

если ты хочешь это сделать так, то естественно, что ничего не получиться...почему? да потому что буквосочетание PC само автоматом не дает игрока-это просто сочетание каких то двух букв для компа вообщем то ничего особово не выражающее

а что именно это за буквосочетание ни в самом скрипте , ни в какмо нибудь подключенном инклюде( позже узнаеете что это такое) не определено и по этому непонятно для компа - вот тебя и ругает комп за ошибку (IMG:style_emoticons/kolobok_light/unsure.gif)

и еще одно уточнение - нам надо найти не вообще какого - то PC , а именно того PC который только что закрЫл сундук
то есть нам надо отследить СОБЫТИЕ которое произошло и по нему определить нужного PCя...
это событие из ряда стандартных - значит должна быть уже какая то стандартная функция отлавливающее такое действие и выявляющее преступное лицо оное совершившее
в тулсете есть длинный список таких стандартных функций (кстати с описаниями)
и у одной описание следующее
Цитата
// Use this in an OnClosed script to get the object that closed the door or placeable.
// * Returns OBJECT_INVALID if the caller is not a valid door or placeable.


( я конечно могу просто написать как правильно, но самим найденое гораздо ценне в виде опыта ИМХО)

попробуй найти эту функцию и применить ее ( знающим английский язык более менее это не должно составить труда (IMG:style_emoticons/kolobok_light/rolleyes.gif) )


то Aiwan ок проехали - мир дружба скрипты (IMG:style_emoticons/kolobok_light/declare.gif)

и не так они сложны - просто так сразу виден результат при правильно исполнеии (IMG:style_emoticons/kolobok_light/declare.gif)
и выявляються непонятные вопросы- которые нам кажутся само собой разумеющимся, а начинающим нет ..так что учаться не только они, но и мы учимся как лучше учить (IMG:style_emoticons/kolobok_light/good.gif)

Сообщение отредактировал mamuc - Oct 9 2007, 12:03
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Oct 9 2007, 12:27
Сообщение #17


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Найти не так все сложно

Neverwinter Script Source
int GetIsUsedByPlayer( object oCreature ); // не совсем уверен за правильность, но что-то такое сразу всплыло
и

Neverwinter Script Source
void main()
{
    object oUser = GetLastUsedBy();

    PrettyDebug( GetName( OBJECT_SELF ) + "'s was used by " + GetName( oUser ) );

    // Do something
}


Neverwinter Script Source
// Placeable OnUsed Template   
/*
    Required: Static=FALSE, Usable=TRUE, CurrentHP>0, attach script to the OnUsed event
    Suggested: Plot=TRUE, DefaultActionPreference="Use"
*/

//

#include "ginc_debug"

// i_temp_aq
/*
  Template for an Acquire item script.
  This script will run each time the item is acquired.
 
  How to use this script:
  Replace the word "temp" (in line 1) with the tag of the item.  Rename the script with this name. 
   
  Additional Info:
  In general, all the item "tag-based" scripts will be named as follows:
  - a prefix ("i_" by defualt)
  - the tag of the item
  - a postfix indicating the item event.
 
  This script will be called automatically (by defualt) whether it exists or not.  If if does not exist, nothing happens.
  "_aq" was used for the Acquire postfix because "_ac" was already taken by Activate. 
 
  Note: this script runs on the module object, an important consideration for assigning actions.
  -ChazM


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

Добавлено через 3 минуты 27 секунд

с последним примером вообще караул - где там temp? привел его только потому, что у игрока глаза сразу на полтарелки и если хоть что-то приглянулось, то и пойдет скрипт или можно переделать под закрываение/открывание.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 9 2007, 13:05
Сообщение #18


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
object oUser = GetLastUsedBy() ;

это есть то очем я и писал - почти правильная функция
(только лучше вместо GetLastUsedBy()( которую обычно применяют несколько в другом ключе-когда определяет кто юзал специальное свойство предмета) взять GetLastClosedBy()-ведь то что произойде произойдет после того как кое-кто закроет сундук)
а остальное ты копнул слишком глубоко (IMG:style_emoticons/kolobok_light/rolleyes.gif) там тебе и инклюд подключеный появился и еще много чего
...совет - пока не рой до основания все а учись погружаться постепенно (IMG:style_emoticons/kolobok_light/rolleyes.gif)

теперь ты можешь немного смодифицировать скрипт Айвана
и попробовать запустить модуль

попробуй сам смодифицировать если есть сейчас время

кроме строчки, где выясняеться кто есть последний закрыватель
можно еще последнюю длиную строчку упростить - не нужда порядковая команда оставь один Эфект

п.с. отредактировал это сообщение, так как оказалось, что перед уходом последние изменения не дошли

Сообщение отредактировал mamuc - Oct 9 2007, 14:31
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Artlira
сообщение Oct 9 2007, 13:40
Сообщение #19


Level 4
**

Класс: Маг
Характер: Chaotic Neutral
Раса: Танар'ри



Цитата
Есть мысли (Хотя бы на словах), как сделать так, чтобы урон нанесся игроку?


Цитата
1) какую строчку надо изменить в скрите чтобы усе работало на игрока


Мне кажется надо изменить определение объекта? Что бы эффект сработал на игрока в скрипте должно быть указано ("тот кто откроет сундук")? Скорее всего, это и будет игрок, неписи без разрешения по сундукам не лазят. Только как определить игрока?
object oPC = GetPCSpeaker() ? И слот на сундуке должен поменяться на OnUsed или OnOpen? Если правильно, то дальше в скрипте oSelf меняем на oPC?

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

object oItem = GetFirstItemInInventory(oChest);? Любой предмет нужно обозначить как предмет лежащий в этом сундуке, затем проверить есть этот объект или нет и если есть, его дестроить?
DestroyObject(oItem);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Oct 9 2007, 13:40
Сообщение #20


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Цитата(mamuc @ Oct 9 2007, 12:56) *
и еще одно уточнение - нам надо найти не вообще какого - то PC , а именно того PC который только что закрЫл сундук


это решается элементарно на мой взгляд
Neverwinter Script Source
GetName( OBJECT_SELF ) + "'s was used by " + GetName( oUser ) );
эх, мог бы написать, уже б сделал. моя идея в чем если нам нужно поймать конкретного игрока, то дела6ем проверку по имени на открывание, ну а затем сообщение в полицию, например, что вот последний и был ОН. Насколько я слабо знаю скрипты, такую идею реализовать среднему раз плюнуть.

Сообщение отредактировал Griffon - Oct 9 2007, 13:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 9 2007, 13:53
Сообщение #21


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
Мне кажется надо изменить определение объекта? Что бы эффект сработал на игрока в скрипте должно быть указано ("тот кто откроет сундук")?

правильно надо изменить определение обьекта (IMG:style_emoticons/kolobok_light/good.gif)
Цитата
object oPC = GetPCSpeaker()

нет по другому( ибо эта функция определяет кто разговаривает), как уже нарыл Griffon есть функция для этого специальная , только он немного не ту функцию взял (лучше вместо GetLastUsedBy() взять GetLastClosedBy())
ведь то что произойде произойдет после того как кое-кто закроет сундук-значит определять бум примерно так
Neverwinter Script Source
object oPC = GetLastClosedBy()


а дальше уже с этим определенным oPC будем делать что захотим

а захотим мы (например )то, что бы при закрытии (IMG:style_emoticons/kolobok_light/declare.gif) (IMG:style_emoticons/kolobok_light/declare.gif) сундук дал 1000 голдов закрывающему ...мы ведь л юбим деньги

( тут я изменил немного задание(и упростил при этом скрипт) что бы задания были более разными и не путались с Айвана
... а когда осилите это, то и со скриптом Айвана разберетесь)
Neverwinter Script Source
void main()
{
      object oPC = GetLastClosedBy(); // zdesj opredelili kto zakril sunduk
     // zdesj nado dobavitj ODNU stroku s vidachej zolota
    
}


а теперь найдите функцию с какой вы можете дать 1000 голдов игроку (IMG:style_emoticons/kolobok_light/prankster2.gif)

маленькое наблюдение :
во время разборок скриптоа вы уже мимоходом выяснили три функции выполняющие близкостоящие задачи определения PC
1) GetPCSpeaker() - определяет кто разговаривает с НПЦ
2) GetLastUsedBy() - определяет, кто юзает специальное свойство итема
3) GetLastClosedBy() - определяет , кто закрыл инвентарь обьекта

и теперь сможете их применять в своих скриптах...



Сообщение отредактировал mamuc - Oct 9 2007, 14:50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Artlira
сообщение Oct 9 2007, 14:42
Сообщение #22


Level 4
**

Класс: Маг
Характер: Chaotic Neutral
Раса: Танар'ри



Цитата
а теперь найдите функцию с какой вы можете дать 1000 голдов игроку

GiveGoldToCreature(GetPCSpeaker(),1000);? тому кто говорит

GiveGoldToCreature(GetLastClosedBy(),1000)? тому кто закрыл?

Сообщение отредактировал Artlira - Oct 9 2007, 14:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 9 2007, 14:53
Сообщение #23


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
GiveGoldToCreature(GetPCSpeaker(),1000);?

функция правильная, только вместо GetPCSpeaker() будем ставить уже определенный в первой строчке обьект (oPC)
итого вторая строчка скрипта будет выглядеть так

Цитата
GiveGoldToCreature(oPC,1000);


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Griffon
сообщение Oct 9 2007, 14:56
Сообщение #24


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

Класс: Страж Тьмы
Характер: True Neutral
Раса: Человек
МАСТЕР D&D



Не не верно. Это подойдет при разговоре. Правильная тот кто его использовал, врнее закрыл, т.е. GetLastClosed

P.S. Мое сообщение должно стоять перед Мамуком. А разве нельзя сделать получение на того кто его закрыл последним? Ведь в нашем случае, это и есть игрок.

Сообщение отредактировал Griffon - Oct 9 2007, 14:59
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Oct 9 2007, 15:27
Сообщение #25


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



Цитата
GiveGoldToCreature(GetLastClosedBy(),1000)? тому кто закрыл?

да можно и одной строчкой (IMG:style_emoticons/kolobok_light/biggrin.gif)

но тогда это наверно и будет единственной строчкой скрипта

хотя я обычно расписываю двумя ..так красивши и практичней -потом может понадобиться скрипт дополнить еще чем- то( а обычно так и есть), а oPC уже определен и можно им смело пользоваться

а
Цитата
GiveGoldToCreature(GetPCSpeaker(),1000)

обычно используеться в диалогах

п.с. ну если с этим разобрались подумайте тогда о втором задании :

как скриптом сделать уничтожение всего , что положат в сундук

если не можете написать сами скрипт, то опишите, как вы это предстваляете-какие действия для этого требуються выполнить по порядку 1,2,3 .....





Сообщение отредактировал mamuc - Oct 9 2007, 15:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

3 страниц V   1 2 3 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th March 2024 - 23:05