XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
Bee а зачем тебе в карте использовать Library?

все функции которые ты пихаешь в либрари можно пихать в кастом код карты, а если надо использовать private перед переменными и функциями, то лучше убирать триггер в scope,endscope.

Либрари может пригодиться в двух случаях:
1) Удобство импорта с одной карты в другую. (но опять же... ты должен настроить всё правильно для этого)
2) Удобство редактирования этих кастомных функций, ты же можешь назвать свою либрари каким-то именем и запихнуть туда функции делающие одно действие, а в другую либрари - другое действие.

Но в моей карте например ток чужие либрари, а если я пишу какие-то кастомные функции, то сам расставляю их в кастом коде карты
Старый 05.06.2009, 19:06
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Ranger21 вроде все понятно. спс. щяс попробую чтонибудь сделать.

Bee добавил:
делаем первые шаги. пока все правильно. щяс попробуем сделать структуры...
Код:
globals
 integer Fireball_RawCode = 'A000'
endglobals

function Fireball_Check_Ability_Id takes nothing returns boolean
 return GetSpellAbilityId() == Fireball_RawCode
endfunction

function Fireball_Main_Actions takes nothing returns nothing
endfunction

function InitTrig_Fireball takes nothing returns nothing
 local trigger t=CreateTrigger()
 local boolexpr b=Condition(function Fireball_Check_Ability_Id)
 local code a=function Fireball_Main_Actions
 local integer i=0

 loop
 call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
 set i=i+1
 exitwhen i==bj_MAX_PLAYER_SLOTS
 endloop

 call TriggerAddCondition(t,b)
 call TriggerAddAction(t,a)

 set t=null
 call DestroyBoolExpr(b)
 set b=null
endfunction
Старый 05.06.2009, 20:17
Ranger21
I love beatiul days XD
offline
Опыт: 13,274
Активность:
Bee вот то что ты сделал можно запихнуть в Library

library Fireball перед globals

а integer Fireball_RawCode = 'A000' сделать private integer, а ещё лучше перед всеми функциями засунуть private xD

Но я тебе скажу так... такие вещи нужны, если ты собираешься этот спелл делать импортируемым для других у кого есть vJass

а в конце после endfunction - endlibrary

хотя опять же... я использую scope и endscope, а в либрари насколько помню можно указывать какие ещё тригеры она может использовать
Старый 05.06.2009, 20:36
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Ranger21
» ёмаё 30 ошибок... откуда понять не могу =/
Код:
library Fireball

globals
private integer Fireball_RawCode = 'A000'
endglobals

private function Fireball_Check_Ability_Id takes nothing returns boolean
 return GetSpellAbilityId() == Fireball_RawCode
endfunction

private function Fireball_Main_Actions takes nothing returns nothing
endfunction

private function Init takes nothing returns nothing
 local trigger t=CreateTrigger()
 local boolexpr b=Condition(function Fireball_Check_Ability_Id)
 local code a=function Fireball_Main_Actions
 local integer i=0

 loop
 call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
 set i=i+1
 exitwhen i==bj_MAX_PLAYER_SLOTS
 endloop

 call TriggerAddCondition(t,b)
 call TriggerAddAction(t,a)

 set t=null
 call DestroyBoolExpr(b)
 set b=null
endfunction

endlibrary
Старый 05.06.2009, 21:04
NCrashed

offline
Опыт: 13,553
Активность:
Проверь свои настройки:
DEAD URL
Старый 05.06.2009, 21:11
SRes
1110101000
offline
Опыт: 9,997
Активность:
Попробуй...
» Код

Код:
scope Fireball initializer Init

globals
private integer Fireball_RawCode = 'A000'
endglobals

private function Fireball_Check_Ability_Id takes nothing returns boolean
 return GetSpellAbilityId() == Fireball_RawCode
endfunction

private function Fireball_Main_Actions takes nothing returns nothing
endfunction

private function Init takes nothing returns nothing
 local trigger t=CreateTrigger()
 local boolexpr b=Condition(function Fireball_Check_Ability_Id)
 local code a=function Fireball_Main_Actions
 local integer i=0

 loop
 call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
 set i=i+1
 exitwhen i==bj_MAX_PLAYER_SLOTS
 endloop

 call TriggerAddCondition(t,b)
 call TriggerAddAction(t,a)

 set t=null
 call DestroyBoolExpr(b)
 set b=null
endfunction

endscope

Старый 05.06.2009, 21:11
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
SRes 32 ошибки)
NCrashed хм... все настроил и проверил. тоже самое. проверил и код SRes'a такой же еффект. можеш пожалуста показать все дополнительные окна. как ты показал эти 2.
Старый 05.06.2009, 21:15
NCrashed

offline
Опыт: 13,553
Активность:
Счас сделаю, выложи плз скрин ошибок.

NCrashed добавил:
DEAD URL
Старый 05.06.2009, 21:25
LordSerga

offline
Опыт: 3,809
Активность:
Да кстати хорошая инфа в теме :), щас vjass буду изучать. И желательно сделайте карту образец с функцией юнит использует способность на vjass, и с комментариями желательно, а то как то непонятно :) будет половину кода разбирать. И еще напишите условие типа применяетая способность == 'а000', ну вобщем любой равкод.
Старый 05.06.2009, 22:30
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
NCrashed все надстроил и проверил все варианты. T_T все равно... тема становится популярной...
Старый 05.06.2009, 23:50
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
LordSerga, она абсолютно идентична этой же функции на жасс. Зачем переписывать все 10 раз?
Старый 06.06.2009, 00:03
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
хм... я так подумал люди, а немогут быть ошибки связанны с версией вара? у меня 1.23****** (на месте звездочек какиэто цифарки)
Старый 06.06.2009, 00:10
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Bee, это и есть 1.23 версия. У всех так.

Hellfim добавил:
Попробуй удалить JNGP и поставить заного, затем открыть, настроить все настройки и перезагрузить редактор (для большего эффекта можешь перезагрузить вместе с компом, а вдруг так сказать =)).
Старый 06.06.2009, 00:17
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Hellfim спс за информацию. Попробую завтра.
Старый 06.06.2009, 00:27
LordSerga

offline
Опыт: 3,809
Активность:
Цитата:
Сообщение от LordSerga
И желательно сделайте карту образец с функцией юнит использует способность на vjass, и с комментариями желательно, а то как то непонятно :) будет половину кода разбирать. И еще напишите условие типа применяетая способность == 'а000', ну вобщем любой равкод.


Напишите пожалуйста образец этого рав кода...
Код:
libraly A ...

Примерно так вроде?
Старый 06.06.2009, 13:39
nikeAnGeL

offline
Опыт: 230
Активность:
народ чем отличаются Jass, vJass и cJass ???
Старый 06.06.2009, 14:33
J
expert
offline
Опыт: 48,447
Активность:
Jass это обычный джасс
vJass это обычный джасс в котором встречается использование структур, библиотек, объявление глобалокв коде, и т.п. полный список всего можно узнать в вджасс мануале
cjass самопальная надстройка над vJass местного энтузиаста, пока что ничем не отличившаяся и не зарекомендовавшая себя, имхо, список всех надстроек можно узнать на cjass.xgm.ru

Отредактировано J, 06.06.2009 в 14:54.
Старый 06.06.2009, 14:42
Toadcop

offline
Опыт: 54,313
Активность:
Цитата:
народ чем отличаются Jass, vJass и cJass ???
cJass нерацыонально использовать без vJass ^_^ вот в чем. а в целом всё это Jass =)
Старый 06.06.2009, 15:34
Elf_Stratigo

offline
Опыт: 4,699
Активность:
вместе с vJass ставится супер чудоштука, которая запрещает отключение триггеров, если в них ошибка!
а всё остальное самому сделать можно)
Старый 06.06.2009, 15:53
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Вот опять решил с нуля попробывать...
» новый код
Код:
library Fireball

globals
 private integer Fire_Ball_Hero_Ability_Id = 'A000'
endglobals

private function Fireball_Check_Ability_Id takes nothing returns boolean
 return GetSpellAbilityId() == Fire_Ball_Hero_Ability_Id
endfunction

private function Fireball_Actions takes nothing returns nothing
endfunction

private function InitTrig_Fireball takes nothing returns nothing
 local trigger t=CreateTrigger()
 local boolexpr b=Condition(function Fireball_Check_Ability_Id)
 local code a=function Fireball_Actions
 local integer i=0

 loop
 call TriggerRegisterPlayerUnitEvent(t,Player(i),EVENT_PLAYER_UNIT_SPELL_EFFECT,null)
 set i=i+1
 exitwhen i==bj_MAX_PLAYER_SLOTS
 endloop

 call TriggerAddCondition(t,b)
 call TriggerAddAction(t,a)

 set t=null
 call DestroyBoolExpr(b)
 set b=null
endfunction

endlibrary
выдал 30 ошибок, вот скриншот как и обещял:

Bee добавил:
ошибки всегда появляются когда я пишу "library" & "private"... =?
Старый 06.06.2009, 17:52
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 23:12.