![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
![]() Класс: Пьяный Мастер Характер: Lawful Good Раса: Тварь MySQL, PHP, JavaScript Порядок Времени ![]() |
а это... можно спросить? (IMG:style_emoticons/kolobok_light/blush.gif) а что такое переменная? (IMG:style_emoticons/kolobok_light/blush.gif)
|
![]() |
![]() ![]()
Сообщение
#2
|
|
Лорд AxisTown'a ![]() Класс: Монах Характер: Lawful Good Раса: Дварф NWN: Маппинг ![]() |
и так, мы уже довольно подробно разобрали задачу очишщения сундука и в процессе обсуждения нащли нужные инструменты ( функции и команды) которые позволят это сделать( и еще надо заметитьпопутно нашли несколько функций, которые нам здесь не понадобяться-ибо не соответсвует тому , что нужно, но это отнюдь не означает, что вы их не будетеиспользовать потом в других местах и задачах-то есть опыт все равно приобретен)
теперь нам из всего найденово надо отобрать нужное и собрать все в месте и так отбираем из того что выяснили 1 строчка скрипта - определяем "рабочее тело" то есть обьект -сундук Цитата object oChest = OBJECT_SELF; 2 строчка скрипта - берем первый предмет из лежащих в сундуке Цитата object oItem = GetFirstItemInInventory(oChest); 3 строчка скрипта - уничтожаем выбранный обьект-итем Цитата DestroyObject(oItem); 4 строчка скритпа - выбираем следующий предмет из сундука Цитата GetNextItemInInventory(oChest); тогда унас получился примерно такой скрипт Neverwinter Script Source void main() { object oChest = OBJECT_SELF; object oItem = GetFirstItemInInventory(oChest); DestroyObject(oItem); GetNextItemInInventory(oChest); } если мы в тулсете поставим еще один сундук, напишем этот скрипт , обзовем его как нибудь и поставим на соответсвующий слот сундука, то он будет работать ..вообще...но выясниться , что за раз он будет уничтожать только один предмет положеный в сундук( можете проверить кстати (IMG:style_emoticons/kolobok_light/declare.gif) ) вроде чего то не хватает (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif) не правда ли... ну а теперь посмотрим, что мы еще не использовали в скрипте из выясненного? а еще у нас нет двух вещей 1) повторения действий, то есть цикла 2) проверки того уже сундук пустой или нет ( или говоря иначе есть ли нам следующий предмет, которого надо брать для уничтожения или нет) поскольку мы люди хитрые, мы эти две вещи обьеденим в одно (IMG:style_emoticons/kolobok_light/biggrin.gif) ------------------------------------------------------------------------------------------------------------------------------------ для этого сначало разберемся, что и как делает предложеная Лексом функция проверки валидности обьекта продолжение следует Добавлено через 24 минуты 15 секунд описание функции выглядит так Цитата // * Returns TRUE if oObject is a valid object. int GetIsObjectValid(object oObject) это означает, что функция GetIsObjectValid являеться одной из тех функций, которые дает логический ответ, и есть только два варианта логического ответа 1) TRUE - "утверждение истинно" 2) FALSE - "утверждение ложно" что это будет означать в нашем случае? и как это применить? напомню, что нам важно будет знать есть ли еще предмет в сундуке или нет а это означает, что 1) проверять на существование( валидность) нам следует oItem 2) удолетворяющий ответ унас должен быть, что такой предмет существует(то есть , когда функция GetIsObjectValid скажет гут - TRUE (IMG:style_emoticons/kolobok_light/biggrin.gif) ) в итоге мы можем написать такое УСЛОВИЕ GetIsObjectValid (oItem) == TRUE --------------------------------------------------- Добавлено через 34 минуты 24 секунды ну а теперь нам осталась вспомнить о циклах Artlira , несмотря на боязнь слова "цикл", совершенно точно определила тип цикла (циклы,выполняют одни и те же действия ПОКА выполнено какое то условие)- ведь мы не знаем, сколько предметов положено в сундук и даже написала его оператор( не функцию-кроме функций в языке скриптов есть еще и другие составные части) while (IMG:style_emoticons/kolobok_light/good.gif) Цитата Кажется это через функцию while общий вид цикла с неизвестным числом повторений таков Цитата while (<УСЛОВИЕ>) { // здесь пишуться те строки скрипта , // которые следует выполнять, пока истинно услови } теперь вызнаете достаточно, что бы сделать изменения в скрипте, что написан выше..сделайте это самостоятельно (IMG:style_emoticons/kolobok_light/declare.gif) Сообщение отредактировал mamuc - Oct 11 2007, 11:44 |
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2025 - 15:22 |