Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
Маленкий вопрос:что возвращает return например в этом скрипте объясните пожайлуста:function Func011 takes nothing returns nothing local unit i if IsUnitDeadBJ(i) return endif set i=null endfunction А так же как и для чего ее использовать дальше. И если не в лом то напишите хотя-бы одну функцию которая бы наглядно демонстрировала return - сы.С и этот пример примерно.ESLI |
07.01.2005, 05:28 | #21
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
User
offline
Опыт:
79Активность: |
Я не специалист в этом языке, но судя по статьям которые я читал и моим скромным школьным познаниям паскаля, ничего не возвращает - просто выходит из функции если выполняется условие IsUnitDeadBJ(i). |
07.01.2005, 06:10 | #22
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Markiz
offline
Опыт:
11,432Активность: |
какая-то глупая функция. если юнит мертв - выходит, если юнит жив - выходит. Странно. |
07.01.2005, 11:00 | #23
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zibada
offline
Опыт: отключен
|
эта функция ничего не возвращает, а вешает игру, т.к. обращается к неинициализированной переменной. (прямо вопрос для теста =)) |
07.01.2005, 13:07 | #24
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
(1)return ничего не возвращает а но стоит после проверки IsUnitDeadBJ(j) но зачем ее здесь ставить и что с ней можно сделать дальше.
(2)глобальные переменные можно использовать только в файле *j. globals local real s=1 endglobals но нельзя использовать в триггерах и custom text-ах это верно???? (3)КАК ПРАВИЛЬНО ПРОПИСЫВАТЬ В ИГРОВОЙ БУФЕР. function I2Trigger takes integer r returns gamecache return r return null endfunction set gg_trg_(имя триггера) = I2Trigger(InitGameCache("здесь писать имя карты или что??")) (4)FlushStored(имя)=что делает эта функция (5)Если установить вот так. function Func01 takes nothing returns nothing' local group g=GetUnitsInRangeOfLocAll(400,локация) Это значит что тепер в группе g юниты все в которые быле установлены теперь в группе и их можно удалят из этой группы??? endfunction БОЛЬШОЕ СПАСИБО ЗА ПОМОЩЬ!!! |
07.01.2005, 14:19 | #25
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zibada
offline
Опыт: отключен
|
к тому же, у тебя ошибка.. в блоке globals..endglobals переменные идут без слова local :)
StoreBoolean StoreInteger StoreReal StoreString StoreUnit всем передается 4 параметра: ссылка на кэш, 2 строки - ключа, и само значение. ссылку на кэш можно получить вызовом InitGameCache, куда передается строка - имя файла с кэшем. другие типы можно привести, например, к integer-у при помощи описывавшегося выше бага, затем записать как обычный integer.
FlushStored*** - удаляет одну запись, относящуюся к определенному ключу.
(примечание: удаление юнита из группы, как и удаление самой группы на самих юнитов никак не влияет!) |
07.01.2005, 15:12 | #26
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
Спасибо за объяснение.
(1)-function test1 takes nothing returns unit set udg_caster=CreateUnit(Player(0),0,0,0) return udg_caster - зачем эта функция объясни пожалуйста endfunction function test2 takes nothing returns integer local integer i if i=1 return i-а это что :) endif endfunction ЗАРАНИЕ СПАСИБО!!! ПОДПИСЬ : .Drakvius. |
07.01.2005, 16:24 | #27
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
(1)-в чем отличие этих действий
function T takes nothing returns nothing local unit cast set cast=CreateUnit(Player(1),0,0,0) endfunction function T2 takes nothing returns nothing
local unit cast call CreateUnit(Player(1),0,0,0) set cast=GetLastCreatedUnit() endfunction поправь если не прав
function T - cast созданный юнит не может быть кем то другим кроме установленной переменной cast=unit - созданный function T2 - cast просто созданным юнитом последним а в это время другой юнит может прировнятся к cast я прав или нет (2) - если поставить эту функций function A takes unit p,real number returns nothing local timer ling=CreateTimer() local real dur call TimerStart(ling,Dur,false,null) loop exitwhen TimerGetRemaining(ling)==0 call SetUnitState(p,GetUnitState(p,UNIT_STATE_LIFE)+number) call TriggerSleepAction(0) endloop endfunction function A - все время лечит юнита на number,но если противник атакует то p теряет жизнь и востонавливает ее и убывание и возростание жизни видно,но почему ведь юнит лечится момоентально,и как мне сделать так что жизнь вообще не убывала а тобиш это небыло видно. (3) - DimonT - я уже давно увидел твой jassscript FullScreen Inventory и мне он очень понравился но он совершенно непрегоден для карт в которых больше одного игрока т.к когда спобность используется то юниты которые служут у тебя как пустые отделения видны всем, и любой может использовать их может есть возможность скрыть их.A?? (4)Для всех: Все кто знает как создавать jass functions в редакторе или в файлах *j. то напишите пожалуйста несколько jass примеров только с объяснением Буду очень признателен. |
07.01.2005, 23:21 | #28
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zibada
offline
Опыт: отключен
|
1.
Цитата:
делают они абсолютно одно и тоже - а именно, создают юнита, указатель на которого затем безвозратно теряется (т.к. локальные переменные существуют только до конца работы функции), следовательно, больше с юнитом ничего не сделать, не применяя функций перебора всех юнитов.. примечание: GetLastCreatedUnit() срабатывает только для юнитов, созданных функциями из blizzard.j. если тебе нужно, чтобы функция создала юнита, а затем вернула указатель на него, для дальнейших с ним действий - функция будет такая: Код:
2. млин, ты лучше скажи, чего конкретно ты добиваешься, я тебе напишу функцию... 3. Fullscreen Inventory в мультиплеере НЕ работает вообще и скорее всего, мультиплеерной версии никогда не будет, т.к. там слишком много разнообразных проблем возникает. (в частности, проблема с лимитом одновременно выводимых спецэффектов и тексттэгов..) 4. см. скрипт того же инвентаря, например =)) там все на jass'е написано =) |
|
08.01.2005, 15:32 | #29
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
DimonT я написал еще на первой странице этой темы скрипт полета юнита в точку нахождения юнита просмотри его пожалуйста и скажи почему юниты летят не вточку нахождения target а все в одну точку но не в ту которую нужно мне. |
08.01.2005, 17:19 | #30
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
remal
нечто
offline
Опыт:
2,087Активность: |
Drakvius, напиши как именно ты вызываыешь функцию полёта. от этого многое зависит. если ты используешь глобальную переменную, в триггере кот выполняется часто, но медленно(не буду по-нормальному эту фразу писать), то тут у тебя ничего не выйдет
DimonT, к сожалению, локальные переменные засоряют память. не засоряют папмять параметры. |
08.01.2005, 18:54 | #31
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Markiz
offline
Опыт:
11,432Активность: |
Цитата:
димонт,ты ошибаешься. попробуй сделать такое. |
|
08.01.2005, 19:50 | #32
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
(1)DimonT ты наверное уже видел скрипт vexorian-а UnitPassiveManaShield когда я создавал свой скрипт там должна была присутствовать функция которая востанавливает жизнь юниту.И вот тут у меня возникла большая на первый взгляд проблемма.Вот часть моега скрипта.
function LifeRestore takes nothing returns nothing call SetUnitState(udg_caster,UNIT_STATE_LIFE,GetUnitState(udg_caster,UNIT_STATE_LIFE) +GetEventDamage()) endfunction function AbilityUsed takes nothing returns boolean return GetSpellAbilityId() == 'A000' endfunction function ActionsList takes nothing returns nothing local trigger s=CreateTrigger() set udg_caster=GetTriggerUnit() call TriggerRegisterUnitEvent(s,udg_caster,EVENT_UNIT_DAMAGED) call TriggerAddAction(s,function LifeRestore) endfunction function InitTrig_((Имя Триггера)) takes nothing returns nothing local trigger t=CreateTrigger() call TriggerRegisterAnyUnitEventBJ(t,EVENT_PLAYER_UNIT_SPELL_CAST) call TriggerAddCondition(t,Condition(Ability_Used)) call TriggerAddAction(t,function ActionList) endfunction загвоздка лишь в том что при атаки противника по udg_caster,udg_caster теряет урон наносимый противником а потом прибавляет GetEventDamage() к udg_caster в скрипте vexorian-а все наоборот udg_caster терпит урон или жизнь востонавливается настолько быстро что это незаметно. И ТАК ВОТ МОЙ ВОПРОС: почему у меня в скрипте не так как у vexorian-а где ошибка как сделать как у vexorian-а только с объяснением пожалуйста.СПАСИБО!!! (2) - DimonT если тебя не затруднит то дай мне пару уроков jass-а с обяснением только непиши мне снова какую функцию тебе нужно,просто я хочу изучить jass язык получше а на сайте этом я очень недавно и мало чего знаю а ты в jass-е отлично разбираешся уроки можешь написать любые.Хорошо?? (3) - Ну и маленький вопрос если нехочешь отвечать или незнаешь ответ то на него можеш не отвечать.И все же я зарегестрировался на сайтах: www.xgm.guru,www.wc3campiagns а вот на www.wc3sear.ch не могу когда я соглашаюсь со всеми условиями сайта и выбираю "регистрация" он пишет мне Invalid_Session.Почему я даже не успевая ввесит свое имя ли пароль а успеваю только выбрать что "я согласен со всеми условиями сайта" и все??? СПАСИБО ЗА ПОМОЩЬ!!! Подпись Drakvius |
09.01.2005, 01:09 | #33
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Markiz
offline
Опыт:
11,432Активность: |
Drakvius, чтобы выбрать подпись открой "Панель Управления" (вверху) и выбери пункт "Подпись" |
09.01.2005, 11:06 | #34
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Да вот тема уже интересная :)
Я лутче спошу как локалку вот в такой пример втыкать = function Con takes nothing returns boolean
return GetUnitState(# u #, UNIT_STATE_LIFE)>0 вот суда надо локального ! endfunction function MyMain takes nothing returns nothing
local trigger trg=GetTriggeringTrigger() local unit u=GetTriggerUnit() call TriggerAddCondition(trg,Condition(function Con)) может функция добовления условия не правильно называетьса :) endfunction ... |
25.10.2005, 17:46 | #35
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Raz
Click here!
offline
Опыт:
5,714Активность: |
Toadcop
Всякие GetTriggerUnit() работают для всего потока. Код:
|
26.10.2005, 23:12 | #36
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Raz это бы пример ! :) а не данная проблема !
а если MyMain создаёт юнита а не юзает GetTriggerUnit ? Toadcop добавил: remal ??? я не один раз тестил ! function test takes nothing returns nothing local unit u=CreatUnitAtLoc(GetLocalPlayer(),ID,Location(0,0),0) call RemoveUnit(u) set u=null endfunction // эта функция вызывалась каждые 0.001 сек ! и я втыкал по мультиплаеру точнее создовал на мульти плаере потом загружал карту она работала и потом нажимал Ctrl+Alt+Del (диспетчер задач) и втыкал как Вар юзал память. потребление НЕ РАСЛО! да и юнит создовальса на один и тотже адрес (handle) ! |
27.10.2005, 15:17 | #37
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Raz
Click here!
offline
Опыт:
5,714Активность: |
Toadcop
В общем случае: кеш. Код:
Это Return Bug функции. |
27.10.2005, 17:22 | #38
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Toadcop
offline
Опыт:
54,313Активность: |
Raz ну я уже и не оследний нуб ! Ты может прав, но если создовать таймер и кормить его буль експр то GetTriggeringTrigger() не катит ! хотя да мне надо было сразу полностью ситувцию описать :) ну вот теперь мне интересно как в условия триггера передавать юнита , а сам триггер создан в этом триггере ?
|
29.10.2005, 16:43 | #39
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Raz
Click here!
offline
Опыт:
5,714Активность: |
Toadcop
Ну ты триггер-то создаешь... Т.е. у тебя указатель-то на него есть. Типа этого: Код:
|
30.10.2005, 01:11 | #40
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|