Revo1teR
offline
Опыт:
146Активность: |
Пара вопросов по заклинаниям.
Вот скилл №1: Смысл следующий.. заклинатель кидает камень, который (очень не реалистично набирая высоту летит вперед =) ) после достижения точки указаной заклинанием (за основу взял кидок голема) камень взрывается нанося всем в округе урон и отбрасывая их.
Но камень (почему-то) отказывается.. что наносить урон, что двигать вражеские войска. В чем может быть дело? Ошибок нет, вроде как все должно работать.
т.е как бы call ForGroup(...) тупо не работает, а почему ? нельзя использовать одно и тоже условие дважды что-ли?
И №2 та же проблема.. смысл заклинания следующий: Заклинатель создает шар который летит в указаном направлении постоянно притягивая к себе вражеские войска после достижения заданой точки, шар взрывается нанося всем в неком радиусе урон. А проблема такая же.. я хочю зделать задержу урона, т.е что уро наносился спустя 0.8 секунд после взрыва шара т.к тогда получается реалестичней.
Вот код
Отредактировано Revo1teR, 11.09.2010 в 22:49. |
08.09.2010, 20:49 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elf_Stratigo
offline
Опыт:
4,699Активность: |
вроде нельзя использовать
GetExpiredTimer() если функция вызвана не таймером, попробуй использовать глобалку 1. код утечный 2. к вещественным константам подпиши точку |
08.09.2010, 21:18 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
А где ж ошибка то ? Про утечки я и сам знаю.. мне главное чтоб он сначала заработал, а потом я уже буду все оптимизировать.
Причем тут ResumeTimer? У меня там вобще такой команды нет, только StopTimer. Отредактировано Revo1teR, 09.09.2010 в 18:12. |
08.09.2010, 21:35 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
94 просмотра и ни одного ответа ? =) Ну помогите а ) |
10.09.2010, 20:06 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Revo1teR, в твоих "джассовых повестях" никто копаться и искать причину неполадок не будет.
Выводи отладочную информацию на каждом этапе работы спелла, смотри на данные, ищи где проблема и выкладывай проблемный участок кода, а всю писанину. п.с. как дети... silumin добавил: и тэги [сut]...[/сut] придумали для нубов? |
10.09.2010, 20:54 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Ну вы даете.. одним подавай весь код - а то непонятно может в начале ошибка то, другим "повести" мои не нравятся.И если внимательно почитать суть проблемы, то становится абсолютно ясно, что проблема именно в функциях к которым мы обращаемся с помощью call ForGroup() и в моих повестях все функции очень правильно подписаны, следовательно не так уж тяжело ( я бы даже сказал очень просто) понять что не работают те функции где написано слово Group либо есть GetEnumUnit(). до этих функции все работает просто отлично.. а если мой код такой длинный и не понятный, то вот часть кода которая не работает:
т.е call ForGroup (g,function Gravity_Boll_Damage) по какой-то причине не выполняется. Отредактировано Revo1teR, 11.09.2010 в 14:54. |
10.09.2010, 23:40 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
silumin
offline
Опыт:
11,153Активность: |
Цитата:
Какой таймет истекает в рамках этих двух потоков? Знаешь ответ?... Никакой! Вот и вся твоя ошибка. Передавай ХендлИд тайпера в свои функции через глобальную переменную, либо все необходимые паратметры через глобалки. silumin добавил: Тебе об этом сказал в первом посте Elf_Stratigo. |
|
11.09.2010, 02:29 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Elf_Stratigo не прав, и ты тоже, потому что в рамках этих двух функций истекает таймер t, который мы запустили в самой первой функции которая "запускается" через событие, а к какой функции мы его запустили это не важно (можешь проверить). Таймер t я запустил еще в начале, потому-то там вверху и висит моя "повесть" что бы была видна вся картинка. |
11.09.2010, 14:53 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elf_Stratigo
offline
Опыт:
4,699Активность: |
это просто подозрение было про GetExpiredTimer()
local timer t=LoadTimerHandle(udg_Hash,GetHandleId(lt),1)
local unit o=LoadUnitHandle(udg_Hash,GetHandleId(t),1) а вот это чудо - в одной ячейке может лежать лишь один объект |
11.09.2010, 15:47 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
AlexKARASb
Learning cpp
offline
Опыт:
22,103Активность: |
Elf_Stratigo, а ячеек там 2 -.- посмотри на хендлы в одном t в другом lt |
11.09.2010, 15:54 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
AlexKARASb может ты мне поможеш ? =) У меня есть подозрение что нужно просто b-сохранять из функции Gravity_Boll_Move |
11.09.2010, 16:24 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Elf_Stratigo
offline
Опыт:
4,699Активность: |
о боги ><
тогда вот эти две, из Kamenuka_Damage:
local real n=LoadReal(udg_Hash,GetHandleId(lt),2) local real lvl=LoadReal(udg_Hash,GetHandleId(lt),2) и там условие останова:
n>=11+2*lvl никогда не возможно в общем очевидно, что напутано с хендлами внутри хеша Отредактировано Elf_Stratigo, 11.09.2010 в 17:55. |
11.09.2010, 16:26 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
да причем тут ? Ну опечатка тут да.. но не в этом дело. Мы сейчас вобще второй спелл рассматриваем с хендлами ничего не напутано.. что никто не видит возможных причин (ДРУГИХ!).
И сразу еще 1 вопрос. Вот для начала код заклинания:
код незаконченный, но уже на этой стадии возникли проблема.. не меняется угол а т.е по логике когда переменная back >= 15 угол а должен становится углом между 2-мя юнитами, или даже первый пример если back >=1 ... then а= выгружаем угол между юнитом и точкой из первой функции.. в итоге юнит который должен по этому углу двигатся даже не дергается т.к а=0.Вот и вопрос - Почему?
На всяк случай я уже придумал альтернативное решение.. хотя наверно нужно переходить на глобалки.. просто не пользовался никогда, а на новое тяжело переходить =(. Отредактировано Revo1teR, 11.09.2010 в 23:21. |
11.09.2010, 20:53 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Windrunner
Верь мне!
offline
Опыт:
4,565Активность: |
Revo1teR, учись разбиратся во всем сам,тут мало кто тебе будет помогать. Да и ты относишся минимум грубовато к тем,кто пытается тебе помочь. |
13.09.2010, 19:31 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
set a=Atan2(GetUnitY(q)-GetUnitX(u),GetUnitX(q)-GetUnitX(u)) исправляй |
13.09.2010, 20:48 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Windrunner
Я, отвечаю так, как отвечают мне, ведь "в твоих "джассовых повестях" никто копаться и искать причину неполадок не будет." тоже немного грубовато не замечаеш? Это не то что грубо, но во первых имхо, каждый вправе сам решать будет он помогать или нет, и выдавать свое отношение к данному вопросу ( либо мнение) за все общее не есть хорошо.Далее "и тэги [сut]...[/сut] придумали для нубов?" - очень тонкий намёк.
Далее, я думаю что мне "мало кто будет помогать" © Windrunner потому, что я использую обычный джазз и локалки.. вы же почти все (может и все) используете глобалки и дополнительные формы джаза и возвращаться к не удобному не хочется.. мне так кажется.. если кого обидел извиняйте.
Что бы учится, желательно иметь учителя, ибо если над всем думать в одиночестве это может занять очень много времени которое терять было бы крайне не разумно.Разбираться сам я могу, но далеко не во всем.
16GB Спасибо, но что исправлять то ? так и задумано что бы угол а становился углом между кастером и дамми юнитом, но он не становится. Как я уже писал "юнит который должен по этому углу двигаться даже не дергается т.к а=0" |
14.09.2010, 19:32 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Windrunner
Верь мне!
offline
Опыт:
4,565Активность: |
Revo1teR:
Ты думаешь,что столь трудно дописать local и udg_? Не знаю,как всем,но мне без разницы,просто удобнее без него не более. Но по сути,дай карту,как вариант,тогда мб кто-нибудь уже с опытом поиска ошибок покажет и расскажет все(Может быть даже я помогу.) |
14.09.2010, 19:35 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Вот карта пожалуйста ). там кстати есть комментарии, где описано что и как должно работать или проблема. Если сможеш, то пожалуйста найди решение проблем с call ForGroup() в заклинании Gravity_Boll. |
14.09.2010, 19:50 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
это на
это set a=Atan2(GetUnitY(q)-GetUnitY(u),GetUnitX(q)-GetUnitX(u)) |
14.09.2010, 19:52 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Revo1teR
offline
Опыт:
146Активность: |
Да опечатка.. опять. Но все равно не помогло т.к угол а=0.И знаю я это потому, что юнит все равно не дергается. |
14.09.2010, 20:24 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|