Сейчас 13:28:53 Воскресенье, 1 декабря, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Скилл Механика у Тинкера
FatalBladeДата: Воскресенье, 07 Августа 2011, 01:16:50 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
эхх... Стоило мне уехать на день так тут уже закрыли тему :D У меня ещё куча вопросов

1) - Вот сделал я что бы выбранные скиллы появлялись, всё нормально, но почему этот возможно выучить только на лвл 1. То есть игрок выучил скилл герою, теперь скилл лвл 1, но он пропал из панели Learn Skills, как будто в этом скилле всего 1 лвл. Я так понял это потому что Механика закрывается для игрока (disable ability), но ёмаё, если этого не сделать то она будет отображаться в панели. Что я опять делаю не так?

2) -
local integer i = GetSpellAbilityId()
set с =LoadInteger(udg_Abilities,i,2)
call UnitRemoveAbilityBJ( i, GetSpellAbilityUnit() )
call UnitRemoveAbilityBJ( c, GetSpellAbilityUnit() )
Вот я так и не понял, почему абилка под переменнойi удаляется, а под переменной с не удаляется? Под (udg_Abilities,i,2) сохранён равкод абилки. Инит хэш у меня при инициализации. Надо в каждом триггере делать инит хэш?... Он же глобальный. Да и тогда бы у меня вообще ничего не работало... А ведь у меня удаляется только выбираемая абилка в магазине, а две другие нет.

3) - Прелоад. Как я понял надо прелодить модели и абилки. Значит меню квестов под F9 невозможно прелодить?

4) - Какая конструкция может работать быстрее ифзенов, если нужно проверить способен ли данный юнит носить данный предмет, или нет, если этих юнитов например больше 10-ти? (То есть и ифзенов больше 10-ти)


 

FkoFFДата: Воскресенье, 07 Августа 2011, 01:42:45 | Сообщение # 2
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Я так понял это потому что Механика закрывается для игрока (disable ability)

плохо понял
Quote (FatalBlade)
т сделал я что бы выбранные скиллы появлялись, всё нормально, но почему этот возможно выучить только на лвл 1.

Сделай количество уровней пустышек выше.

Quote (FatalBlade)
Надо в каждом триггере делать инит хэш?...

игра зафаталит

Quote (FatalBlade)
А ведь у меня удаляется только выбираемая абилка в магазине, а две другие нет.


проверь дебагом

if HaveSavedInteger(udg_Abilities,i,2) then
call BJDebugMsg("init correct")
else
call BJDebugMsg("not correct :<")
endif


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 02:03:43 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (FkoFF)
Сделай количество уровней пустышек выше.

Равное уровню скиллов, или уровню механик?

Добавлено (07-08-2011, 02:01)
---------------------------------------------

Quote (FkoFF)
проверь дебагом

if HaveSavedInteger(udg_Abilities,i,2) then
call BJDebugMsg("init correct")
else
call BJDebugMsg("not correct :<")
endif

Самое смешное что пишет Correct. Значит сохранено, но тогда почему не удаляются????

Добавлено (07-08-2011, 02:03)
---------------------------------------------

Quote (FkoFF)
Сделай количество уровней пустышек выше.

Ок сделал спс работает. Но опять же, сколько лвлов то надо? Как механик или как скиллов?


 

FkoFFДата: Воскресенье, 07 Августа 2011, 02:32:22 | Сообщение # 4
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Равное уровню скиллов, или уровню механик?

скиллов офк
Quote (FatalBlade)
Самое смешное что пишет Correct. Значит сохранено, но тогда почему не удаляются????

криво делаешь. кстати, почему ты используешь бж?

Добавлено (07-08-2011, 02:32)
---------------------------------------------

Quote (FatalBlade)
4) - Какая конструкция может работать быстрее ифзенов, если нужно проверить способен ли данный юнит носить данный предмет, или нет, если этих юнитов например больше 10-ти? (То есть и ифзенов больше 10-ти)

базы данных на равкодах итемов и героев. Система пишется за час, оформление бд - в зависимости от кол-ва предметов еще меньше.


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 02:42:19 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (FkoFF)
криво делаешь. кстати, почему ты используешь бж?

Я не знаю как раскрывать БЖ, да и я токо пробую как эта система со скилами работает. Я ещё даже FlushChildHastable не написал)))

Добавлено (07-08-2011, 02:38)
---------------------------------------------
И разве изза БЖ что то может не работать?

Добавлено (07-08-2011, 02:42)
---------------------------------------------

Quote (FkoFF)
базы данных на равкодах итемов и героев. Система пишется за час, оформление бд - в зависимости от кол-ва предметов еще меньше.

Но как сделать что бы герой не смог купить или поднять не подходящий ему предмет?


 

FkoFFДата: Воскресенье, 07 Августа 2011, 02:50:55 | Сообщение # 6
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Но как сделать что бы герой не смог купить или поднять не подходящий ему предмет?

как раз через базы данных..

ну, условно скажем

function SaveUserGroup takes integer whichgroup, integer rawcode1 returns nothing

сохраняешь всех юнитов в группы (индексы), и, ежели, юнит находится внутри группы (есть под индексом ссылка на его равкод) - дропаешь предмет.. Там все достаточно просто, правда заполнять базу данных будет несколько долго, но работать будет в сто раз быстрее.


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 03:11:38 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Ок и всё же что вот с этим делать:
local integer i = GetSpellAbilityId()
set с =LoadInteger(udg_Abilities,i,2)
call UnitRemoveAbilityBJ( c, GetSpellAbilityUnit() )


 

FkoFFДата: Воскресенье, 07 Августа 2011, 03:20:36 | Сообщение # 8
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
local integer i = GetSpellAbilityId() set с =LoadInteger(udg_Abilities,i,2) call UnitRemoveAbilityBJ( c, GetSpellAbilityUnit() )

SpellAbilityUnit замени на TriggeringUnit() , для начала.


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 14:09:26 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
call UnitRemoveAbility(GetSpellAbilityUnit(), c)
Написал вот так.
Quote (FkoFF)
SpellAbilityUnit замени на TriggeringUnit() , для начала.

Заменил...
Работает!!! Ура спс! Пойду спать))

Добавлено (07-08-2011, 14:09)
---------------------------------------------
Теперь вот ещё:

Code
call SaveInteger(udg_Heroes, 'H00V', 0, 'A0J7')
call SaveInteger(udg_Heroes, 'H00V', 1, 'A0J9')
call SaveInteger(udg_Heroes, 'H00V', 2, 'A0JA')


Code

local location AA
local unit u = GetTriggerUnit()
local integer a = GetConvertedPlayerId(GetOwningPlayer(u))
set v = GetUnitTypeId(Hero)
set AA = GetUnitLoc(Hero)
call CreateNUnitsAtLoc( 1, 'n00U', GetOwningPlayer(u), AA,0 )
set udg_AA[a] = GetLastCreatedUnit()
call UnitAddAbility (udg_AA[a] , (LoadInteger(udg_Heroes,v, 0)) )
call UnitAddAbility (udg_AA[a] , (LoadInteger(udg_Heroes,v, 1)) )
call UnitAddAbility (udg_AA[a] , (LoadInteger(udg_Heroes,v, 2)) )

Это не весь код, а только те строчки что относится к моему вопросу... Hero это локальная переменная для героя.
И так, почему через UnitAddAbility не добавляется абилка? Вроде не БЖ, TriggerUnit...


 

FkoFFДата: Воскресенье, 07 Августа 2011, 14:48:01 | Сообщение # 10
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
local location AA
local unit u = GetTriggerUnit()
local integer a = GetConvertedPlayerId(GetOwningPlayer(u))
set v = GetUnitTypeId(Hero)
set AA = GetUnitLoc(Hero)
call CreateNUnitsAtLoc( 1, 'n00U', GetOwningPlayer(u), AA,0 )
set udg_AA[a] = GetLastCreatedUnit()
call UnitAddAbility (udg_AA[a] , (LoadInteger(udg_Heroes,v, 0)) )
call UnitAddAbility (udg_AA[a] , (LoadInteger(udg_Heroes,v, 1)) )
call UnitAddAbility (udg_AA[a] , (LoadInteger(udg_Heroes,v, 2)) )

что это за ужас? -_-

local unit u=GetTriggerUnit()
local unit shop=CreateUnit(GetOwningPlayer(u),'n00U',GetWidgetX(u),GetWidgetY(u),0)
local integer i=GetUnitTypeId(u)
call UnitAddAbility(shop,LoadInteger(udg_Heroes,i,0))
call UnitAddAbility(shop,LoadInteger(udg_Heroes,i,1))
call UnitAddAbility(shop,LoadInteger(udg_Heroes,i,2))


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 15:08:33 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
FkoFF, GetTriggerUnit(), это не герой. Это как бы таверна в которой покупаются герои.
shop, локальный для каждого игрока... но их же больше одного! Как потом в других триггерах обращаться к нему, например удалить когда все абилки куплены? Нужно занести в хэш, или массив (я просто давно это делал, поэтому у меня массив). Остюда и local integer a = GetConvertedPlayerId(GetOwningPlayer(u)) и udg_AA[a]




Сообщение отредактировал FatalBlade - Воскресенье, 07 Августа 2011, 15:08:54
 

FkoFFДата: Воскресенье, 07 Августа 2011, 15:35:23 | Сообщение # 12
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Как потом в других триггерах обращаться к нему, например удалить когда все абилки куплены? Нужно занести в хэш, или массив (я просто давно это делал, поэтому у меня массив). Остюда и local integer a = GetConvertedPlayerId(GetOwningPlayer(u)) и udg_AA[a]

ммм... что то ты как то совсем странно строишь эту систему. И все то у тебя не получается, и все то криво... =) Почему вот у меня с первого раза все получилось? )

в любом случае
set udg_AA[a]=CreateUnit(GetOwningPlayer(hero),'rawcode',GetWidgetX(hero),GetWidgetY(hero),0.)


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 16:18:27 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Кстати я проверил дебагом. Пишет Incorrect. Но почему? Нельзя чтоли использовать 2 хэша в одной карте???

 

FkoFFДата: Воскресенье, 07 Августа 2011, 16:31:57 | Сообщение # 14
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Кстати я проверил дебагом. Пишет Incorrect. Но почему? Нельзя чтоли использовать 2 хэша в одной карте???

можно, возможно не заинитил хэш этот, аль еще где проблема )


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 16:55:50 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Ок я сделал с одним хэшем. Вот:
Code
call SaveInteger(udg_Abilities, 'A0JF', 0, 'A0J7')


Code
if HaveSavedInteger(udg_Abilities, GetSpellAbilityId(),0) then   
call BJDebugMsg("init correct")   
else
call BJDebugMsg("init incorrect")
endif


Пишет init incorrect, значит равкод НЕ СОХРАНЯЕТСЯ.

Добавлено (07-08-2011, 16:42)
---------------------------------------------
Это триггер выбора героев. Выбор героев происходить посредству нажатия на абилку пустышку. Например 'A0JF' равкод абилки пустышки героя Лазаря из Д1. Нажимая на неё игроку создаётся Лазарь.

Добавлено (07-08-2011, 16:55)
---------------------------------------------
Я уже что бы проверить даже тупо написал if HaveSavedInteger(udg_Abilities, 'A0JF',0) then... И всё равно не работает. Равкод не сохраняется. Да и не только равкод. Я попробовал присвоить цифру 1, тоже не сохраняется.




Сообщение отредактировал FatalBlade - Воскресенье, 07 Августа 2011, 16:56:51
 

FkoFFДата: Воскресенье, 07 Августа 2011, 17:08:24 | Сообщение # 16
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Я уже что бы проверить даже тупо написал if HaveSavedInteger(udg_Abilities, 'A0JF',0) then... И всё равно не работает. Равкод не сохраняется. Да и не только равкод. Я попробовал присвоить цифру 1, тоже не сохраняется.

посмотри, не объявляешь ли ты где то еще в коде эту хэш-таблицу? у меня был случай когда я дважды инит запускал, причем второй раз просто присваивал значение таблице и получалось что вся уже существующая таблица заменялась на пустую.


 

FatalBladeДата: Воскресенье, 07 Августа 2011, 17:21:52 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Quote (FkoFF)
посмотри, не объявляешь ли ты где то еще в коде эту хэш-таблицу? у меня был случай когда я дважды инит запускал, причем второй раз просто присваивал значение таблице и получалось что вся уже существующая таблица заменялась на пустую.

ыыыы действительно. :D Щас всё работает. При инициализации карты и в триггере где сохраняется дата у меня есть инит хэш. Но почему всё остальное то работало?? Я не понимаю этот ВЕ.... если уж что то должно не работать, то должно не работать ВСЁ что с ним связано. А в ВЕ вообще ничего не поймёш.


 

FkoFFДата: Воскресенье, 07 Августа 2011, 17:23:18 | Сообщение # 18
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
тему закрываю?

 

FatalBladeДата: Воскресенье, 07 Августа 2011, 17:25:21 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
Ну раз уж теперь всё работает то мне нужно ещё кое что... Как занести звуки в хэш? SaveSound?

Добавлено (07-08-2011, 17:25)
---------------------------------------------

Quote (FkoFF)
тему закрываю?

Ответь плз на это:
Quote (FatalBlade)
Ну раз уж теперь всё работает то мне нужно ещё кое что... Как занести звуки в хэш? SaveSound?

и закрывай)


 

FkoFFДата: Воскресенье, 07 Августа 2011, 17:30:12 | Сообщение # 20
Группа: Заблокированные
Сообщений: 4356
Награды: 1
Репутация: 1413
Блокировки:
Quote (FatalBlade)
Ну раз уж теперь всё работает то мне нужно ещё кое что... Как занести звуки в хэш? SaveSound?

зачем тебе саунды заносить? Впрочем делается это через
SaveStr(hashtable,parentkey,childkey,"soundpath")
SaveSoundHandle(hashtable,parentkey,childkey,already existen sound handle)

т.е - первое, если надо приписать к какому-то объекту в базу данных определенный звук, второе - для временного проигрывания како-го то звука, который надо бы удалить, до его оригинального завершения.


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz