Пятница, 22 Ноября 2024, 23:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
два вопроса по эклипсу
МиханоидДата: Воскресенье, 18 Июля 2010, 11:28 | Сообщение # 1
почетный гость
Сейчас нет на сайте
как создавать квесты и как сделать анимацию способностей?


67boyДата: Пятница, 08 Октября 2010, 23:23 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Итак, в первом уроке я расскажу о том, как создать самый простенький квест. В этом уроке мы также познакомимся с игровыми скриптами и тем, что они из себя представляют. Приступим:
1) Создадим NPC, у которого поставим Scripted и выберем в полоске Script -> 1 (Это означает номер Case см. ниже).
2) Поставим где-нибудь нашего НПС, чтобы потом поговорить с ним и взять квест.
3) Идём в папку Server -> Scripts -> Events -> и открываем в блокноте ScriptedNpc
4) В папке Scripts -> создаём папку Quests.
5) Создаём еще одного НПЦ.
6) Создаём какую-нибудь вещь, чтобы та дропалась с моба и её нужно было принести квестодателю.
7) Пишем скрипт в ScriptedNpc.То что помечено этим знаком (') - обычный комментарий, его писать ненужно.:

Code
Case 1 'Номер скрипта, который использует NPC   
If GetPlayerLevel(Index) >= 1 then ' Если уровень персонажа больше или равен еденице, то.   
     If GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = vbNullString Then     
      Call PlayerMsg(Index, "Здесь должен быть текст, который будет говорить вам NPC в чате.", YELLOW) ' Call - обязательная вещь для вызова того или иного скрипта. Yellow - цвет текста в чате (желтый)   
      Call  PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 1) 'Создаём в папке Quests файл игрока, в котором отмечаются стадии квеста. Сейчас эта стадия - 1. General - то, что написано в квадратных скобках (программное имя квеста). Quest1 - программная отметка квеста. 1 - стадия квеста.'   

Else if GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = 1 Then     
     If CanTake(Index, 2, 8) then' Внимание: цифры могут отличаться от ваших, смотрите: 2 - это номер предмета. 8 - это количество предметов. CanTake - есть ли у вас этот предмет в данном количестве.   
      Call PlayerMsg(Index, "Здесь, по идее, должна быть благодарность NPCa", YELLOW)   
      Call TakeItem(Index, 2, 8) ' Забирает вещи. Скрипт похож на CanTake. 2 - номер предмета. 8 - количество предметов, которые нужно забрать.   
      Call GiveCurrency(Index, 1, 100) ' Выдаёт деньги или тот предмет, что помечен под Currency. 1 - номер предмета, 100 - количество.   
      Call PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 2)   
end if   
end if   
End if   
End if   
Exit Sub

+ в репу b Fulier автор




Сообщение отредактировал 67boy - Пятница, 22 Октября 2010, 23:38
FulierДата: Пятница, 15 Октября 2010, 15:54 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
67boy, Забыл указать авторство урока wink

Лампа. Кофе. Игра. - сайт о компьютерных, компьютерных и еще раз компьютерных играх.

Сообщение отредактировал Fulier - Пятница, 15 Октября 2010, 18:07
infermikДата: Вторник, 19 Октября 2010, 22:32 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Fulier не плохое дополнение чтобы и тебе поставили спасибку! biggrin

Добавлено (19.10.2010, 22:32)
---------------------------------------------
Кстати странно попробовал кв не робит почему то имею ввиду потом вещи не отдаёт нипсу и такая вот заглушка получается))


Выпрямляю путем кнута и пряника
FulierДата: Среда, 20 Октября 2010, 13:08 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
infermik,
Code
Call TakeItem(Index, 1, 1)

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


Лампа. Кофе. Игра. - сайт о компьютерных, компьютерных и еще раз компьютерных играх.
infermikДата: Пятница, 22 Октября 2010, 20:29 | Сообщение # 6
заслуженный участник
Сейчас нет на сайте
Спс покапаюсь)))

Добавлено (22.10.2010, 20:29)
---------------------------------------------
ХД теперь воспринимать вообще перестал
Case 4
If GetPlayerLevel(Index) >= 1 then ' Если уровень персонажа больше или равен еденице, то.
If GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = vbNullString Then
Call PlayerMsg(Index, "I lost shild help me faind him.", YELLOW) ' Call - обязательная вещь для вызова того или иного скрипта. Yellow - цвет текста в чате (желтый)
Call PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 1) 'Создаём в папке Quests файл игрока, в котором отмечаются стадии квеста. Сейчас эта стадия - 1. General - то, что написано в квадратных скобках (программное имя квеста). Quest1 - программная отметка квеста. 1 - стадия квеста.'

Else if GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = 1 Then
If CanTake(Index, 2, 1) then' Внимание: цифры могут отличаться от ваших, смотрите: 2 - это номер предмета. 8 - это количество предметов. CanTake - есть ли у вас этот предмет в данном количестве.
Call PlayerMsg(Index, "Oh, were he is", YELLOW)
Call TakeItem(Index, 2, 1) ' Забирает вещи. Скрипт похож на CanTake. 2 - номер предмета. 8 - количество предметов, которые нужно забрать.
Call GiveCurrency(Index, 4, 100) ' Выдаёт деньги или тот предмет, что помечен под Currency. 1 - номер предмета, 100 - количество.
Call PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 2)
end if
end if
End if
End if
Exit Sub

Вроде всё так


Выпрямляю путем кнута и пряника
FulierДата: Суббота, 23 Октября 2010, 15:25 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Попробуй так:
Code
if GetPlayerLevel(Index) >= 1 then ' Если уровень персонажа больше или равен еденице, то.
If GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = vbNullString Then
Call PlayerMsg(Index, "I lost shild help me faind him.", YELLOW) ' Call - обязательная вещь для вызова того или иного скрипта. Yellow - цвет текста в чате (желтый)
Call PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 1) 'Создаём в папке Quests файл игрока, в котором отмечаются стадии квеста. Сейчас эта стадия - 1. General - то, что написано в квадратных скобках (программное имя квеста). Quest1 - программная отметка квеста. 1 - стадия квеста.'
end if

Else if GetVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1") = 1 Then
If CanTake(Index, 2, 1) then' Внимание: цифры могут отличаться от ваших, смотрите: 2 - это номер предмета. 8 - это количество предметов. CanTake - есть ли у вас этот предмет в данном количестве.
Call PlayerMsg(Index, "Oh, were he is", YELLOW)
Call TakeItem(Index, 2, 1) ' Забирает вещи. Скрипт похож на CanTake. 2 - номер предмета. 8 - количество предметов, которые нужно забрать.
Call GiveCurrency(Index, 4, 100) ' Выдаёт деньги или тот предмет, что помечен под Currency. 1 - номер предмета, 100 - количество.
Call PutVar("Scripts\Quests\" & GetPlayerName(Index) & ".ini", "General", "Quest1", 2)
end if
end if
End if

Exit Sub  


Лампа. Кофе. Игра. - сайт о компьютерных, компьютерных и еще раз компьютерных играх.
infermikДата: Суббота, 23 Октября 2010, 21:14 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
cry angry омг теперь не один кв не робит скрипт не робит я в шоке!

Добавлено (23.10.2010, 21:07)
---------------------------------------------
убейте меня! cry

Добавлено (23.10.2010, 21:13)
---------------------------------------------
вот кодики файлов:
scriptedNPC.ess:

Добавлено (23.10.2010, 21:14)
---------------------------------------------
Раньше все норм как по часам теперь даже гильд мастер не робит


Выпрямляю путем кнута и пряника
FulierДата: Воскресенье, 24 Октября 2010, 09:56 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
У тебя в скрипте нет Exit Sub.

В конце вот так должно быть:

Code
   Exit Sub
  End Select
End Sub

После каждого Case должен стоять Exit Sub, а между ними располагаются все команды.
Также советую проверить папку Quests, правильно ли она располагается и т.п. вещи.

Добавлено (24.10.2010, 09:56)
---------------------------------------------
А End Select и End Sub, вообще должны быть использованы только один раз и в самом конце скрипта, после всех Case. (Это если ты вдруг не знаешь, так на всякий случай говорю=)).


Лампа. Кофе. Игра. - сайт о компьютерных, компьютерных и еще раз компьютерных играх.
infermikДата: Воскресенье, 24 Октября 2010, 21:47 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Люди извиняюсь за свою не внимательность. Если читать гайды на офф форуме то ясно написано все характеристики NPC должны стоять хотябы на 1
Но спс за то что рекомендовали))
Fulier
Code
  End Select
End Sub

Это всё естественно проставлено))) Ещё раз извиняюсь за балагам всем спасибо.


Выпрямляю путем кнута и пряника
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг