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

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

Ответ
 
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
DaeDR, главное начальные значения записать, потом можно использовать целые числа и не парится...
Навряд ли система будет заметно подгружать движок, ну если у тебя есть свои идеи фикс по этому поводу выкладывай...
Старый 10.04.2012, 19:02
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
quq_CCCP, Есть идея сразу сделать через integer:
function StoreDataInteger takes integer pKey, string cKey, integer value returns nothing
   call SaveInteger(bj_lastCreatedHashtable, GetHandleId(pKey), pKey, value )
endfunction
А в настройках написать так:
local unit u = CreateUnit(Player(12), 'nanm',-292.00,-516.00,270.00)
    call StoreDataReal(u, 1, -292.00) // Воскрешение по X
    call StoreDataReal(u, 2, -516.00) // Воскрешение по Y
...
Хотя твой вариант лучше в визуальном плане
DaeDR добавил:
Или еще есть такой вариант:
function StoreDataInteger takes handle pKey, integer value returns nothing
   call SaveInteger(bj_lastCreatedHashtable, GetHandleId(pKey), 1, value )
endfunction
Сразу забивать integer и даже не спрашивать
________________
Реальность - та часть вымысла, в которую мы верим
Старый 10.04.2012, 19:17
Msey

online
Опыт: 25,418
Активность: 7407
От такого жасса я чуть не ослеп. Уж лучше бы на гуи с кастом скриптом сделал)
________________
Давать я буду только если в рот © Toadcop
Старый 10.04.2012, 20:55
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Msey:
От такого жасса я чуть не ослеп. Уж лучше бы на гуи с кастом скриптом сделал)
Ну не надо поливать грязью, это наработка, тут должно быть всё понятно, а не супер оптимально...
Всё работает, утечек нет, код читаемый...
А кстати Msey, ты же знаток cJass, ( Извращённый мод мейкер которому мало редактора ) мб поможеш переписать систему на cJass чтобы продвинутым ненужно было переписывать систему на себя... Ну думаю структуры использовать бессмыслено - раздуть когда как Альфа в своём примере ради 10 миксросек., раздул код на пару страниц...

Отредактировано quq_CCCP, 11.04.2012 в 02:24.
Старый 11.04.2012, 02:09
Klop
Папа римский
offline
Опыт: 13,006
Активность: 200
Участник проектов:
-Блог Klop
quq_CCCP:
А кстати Msey, ты же знаток cJass, ( Извращённый мод мейкер которому мало редактора ) мб поможеш переписать систему на cJass
тем кто владеет нормально Jass ему такие наработки не нужны пишутся довольно быстро и настраиваются так как тебе надо самому,нет смысла чужых наработок
________________
Помидорами не кидать - Мой блог (http://xgm.ru/blog/Klop)
Старый 11.04.2012, 04:16
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Klop, ну писать самому не всегда нужно, да и порой не до этого даже тем кто может написать такую систему.
Кстати Клоп а ты как оцениш мою наработку?
Старый 11.04.2012, 04:36
Klop
Папа римский
offline
Опыт: 13,006
Активность: 200
Участник проектов:
-Блог Klop
quq_CCCP, а что оценивать для новичков и Гуишников отлично
а для тех кто разбирается,это ненужная вещь,я к примеру если что то нужно делаю всегда сам,в своём коде понятно все чем ковыряться в чужом
________________
Помидорами не кидать - Мой блог (http://xgm.ru/blog/Klop)
Старый 11.04.2012, 05:24
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
Klop, Полностью с тобой согласен. Полностью доверяю только себе
Лучше потратить немного времени и сделать под себя, чем ковырять чужой код, в котором надо будет чуть ли не каждую строку догадываться, для чего она тут?
________________
Реальность - та часть вымысла, в которую мы верим
Старый 11.04.2012, 10:11
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Так народ и возникает вопрос, насчёт способа настройки параметров новой системы респауна крипов...
Настройки для группы еще легко, а вот для конкретного юнита или типа юнита будет сложнее, так как те кто плохо разбирается в jass несмогту настроить систему, тогда может быть создать гуи триггера где существуют 2 массвика переменных первый Для юниоов, второй для типов, и 2 глобальных переменных для подсчёта кол во типов, а так же массивы других переменных для параметров...
А затем в другом триггере сохранить параметры в хеш таблицу...
Или пусть возятся над функцией типа
function IsNeutralCreep takes nothing returns boolean
      return GetOwningPlayer(GetFilterUnit()) == Player(12) // номер игрока чьих крипов респаунить
endfunction

function Group_RegisterUnit_Actions takes nothing returns nothing
    local unit uCreep = GetEnumUnit()
    call StoreDataReal(uCreep,"SpawnX",GetUnitX(uCreep))      // точка возраждения Х
    call StoreDataReal(uCreep,"SpawnY",GetUnitY(uCreep))      // точка возраждения У
    call StoreDataReal(uCreep,"SpawnA",GetUnitFacing(uCreep)) // угол поворота юнита
    call StoreDataReal(uCreep,"RepawnTime",1.01)              // зедержка респауна сек
    call StoreDataBoolean(uCreep,"ShowDeathFX",true)          // показать спецэффект при смерти
    call StoreDataBoolean(uCreep,"ShowRespFX",true)           // показать спецэффект при возрождении
    call StoreDataBoolean(uCreep,"RespRandType",true)         // случайные типы крипов одного уровня
    call StoreDataBoolean(uCreep,"SaveTools",true)            // сохранить параменты для нового типа, несмотря на то что на этот тип установлены другие настройки?
    call StoreDataBoolean(uCreep,"DelCorpse",true)            // удалять трупы?
    call StoreDataBoolean(uCreep,"DropItems",fale)            // создавать случайные предметы
    call StoreDataInteger(uCreep,"DropCtance",15)             // шанс на создание предмета (целое число от 1 до 100)
    call StoreDataString(uCreep,"DeathFX","Abilities\\Spells\\Orc\\FeralSpirit\\feralspiritdon​e.mdl")// эффект смерти
    call StoreDataString(uCreep,"RespFX","Abilities\\Spells\\Human\\Resurrect\\ResurrectTarget​.mdl") // эффект воскрешения

endfunction

function InitCreeps takes nothing returns nothing
    local group grp = CreateGroup()
    local boolexpr E = Condition( function IsNeutralCreep )
    //
    set bj_lastCreatedHashtable = InitHashtable()
    //
    call GroupEnumUnitsInRect(grp,bj_mapInitialPlayableArea,E)
    call ForGroup(grp, function Group_RegisterUnit_Actions)
    call DestroyBoolExpr(E)
    call DestroyGroup(grp)
    set grp = null
    set E = null
endfunction

//===========================================================================
function InitTrig_Creep_respaun_functions takes nothing returns nothing
    set gg_trg_Creep_respaun_functions = CreateTrigger(  )
endfunction
и собственно есть еще предложения по количеству параметров настройки...
Ну ни как не могу решить какой способ будет полезнее?
Старый 11.04.2012, 15:11
DaeDR

offline
Опыт: 7,979
Активность: 1654
Участник проектов:
-Саламандра: Honorverse на Warcraft III
так как те кто плохо разбирается в jass несмогту настроить систему
Тогда вообще не стоит делать настройку для отдельных юнитов.
Те, кто ничего не понимают в jass'e все равно не полезут настраивать, т.к. для них он - темный лес.
Самый простой способ - скопировал и все работает. идеально
Возможно, стоит регулировать только время возрождения.
________________
Реальность - та часть вымысла, в которую мы верим
Старый 12.04.2012, 20:13
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
DaeDR, ну тут только с использованием массивов глобалок, в гуи триггер, где и будут производится настройки, в Jass вся система, респануа, крепления эффектов и тд.
Старый 13.04.2012, 02:59
Msey

online
Опыт: 25,418
Активность: 7407
quq_CCCP:
А кстати Msey, ты же знаток cJass, ( Извращённый мод мейкер которому мало редактора ) мб поможеш переписать систему на cJass чтобы продвинутым ненужно было переписывать систему на себя... Ну думаю структуры использовать бессмыслено - раздуть когда как Альфа в своём примере ради 10 миксросек., раздул код на пару страниц...
я не уверен, что это кому-то пригодится в виде сжасса. ну если хочешь, то переделаю в сжасс.. однако я это буду делать без адик хелпера, чисто в блокноте.
тут должно быть всё понятно, а не супер оптимально...
если честно, то тут и новичку будет сложно разобраться, длинные и глупые названия ф-ий, переменных итд
однако за идею плюсану
________________
Давать я буду только если в рот © Toadcop
Старый 13.04.2012, 19:23
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Итак, система распределения опыта теперь и на гуи...
осталось только сделать Гуи интерфейс для управления библиотекой CRS в виде гуи триггера в которой нужно только присвоить значение переменной...
Или всё таки не стоит? Ау гуишники, жду ваших комментов...
Старый 19.05.2012, 09:55
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность: 72
Вот смори... Качает твою наработку начинающий гуишник которому очень нужна система респавна мобов
и как ты думаешь, поймет он это?!
   local unit u = CreateUnit(Player(12), 'nanm',-292.00,-516.00,270.00)
    call StoreDataReal(u,"UnitSpawnX",-292.00)
    call StoreDataReal(u,"UnitSpawnY",-516.00)
    call StoreDataReal(u,"UnitSpawnA",270.00)
    call StoreDataReal(u,"RespTime",45.00)
    call StoreDataBoolean(u,"CreateDeathFX", false)
    call StoreDataString(u,"FxOfMobDeath","Objects\\Spawnmodels\\Human\\HumanLargeDeathExplode​​\\HumanLargeDeathExplode.mdl")
    // и тд
    local handle h = ConvertFogState('nanm')
    call StoreDataReal(h,"RespTime",45.00)
    call StoreDataBoolean(h,"CreateDeathFX", false)
    call StoreDataString(h,"FxOfMobDeath","Objects\\Spawnmodels\\Human\\HumanLargeDeathExplode​​\\HumanLargeDeathExplode.mdl")
    и так далее...
    set h = null
Откуда он знает что такое false? откуда он знает что такое true?
Откуда он знает что такое StoreDataReal или StoreDataBoolean? мхм он знает джасс ты чее... или же ты ему все объяснишь?... Так что делай все на гуи, раз уж захотел так
Старый 19.05.2012, 17:36
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,833
Активность: 444
NIKZ, гуишнику нужно гуи, или это так трудно понять?
А твой код он поймет? + от твоего кода толку 0
сохранение точек
ага, унесло моба ветром и умер и реснулся где умер и снова его ветром понесло... и уже в другой части карты ресается....

Отредактировано Vadik29, 20.05.2012 в 09:28.
Старый 19.05.2012, 18:13
NIKZ
Изучаю Jass
offline
Опыт: 6,036
Активность: 72
Vadik29, Эмм мой настраивается на гуи+сохранение точек
Старый 19.05.2012, 19:40
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
NIKZ, то что ты написал так и не вышло в свет, так как несмотря на мои старание сделать больше настроек системы, росла её сложность для новичков, и это уже обсуждалось, использование HashString и тд не актуально....
Я хотел сделать 2 триггера в папке, 1 Jass триггер который не нужно трогать он сам самостоятельно работает, и второй гуи триггер в котором нужно лиш присвоить нужные значение переменным, для совсем не фига незнающих людей...
Но тут другое но - Глобальные переменные, который некоторые чебурашки на копируют и ноют, типа чё не работает...
Ну поставте вы галочку в настройках, создавать неизвестные переменные...
Старый 20.05.2012, 08:09
Hate
конь вакуумный
quq_CCCP:
NIKZ, то что ты написал так и не вышло в свет, так как несмотря на мои старание сделать больше настроек системы, росла её сложность для новичков, и это уже обсуждалось, использование HashString и тд не актуально....
Я хотел сделать 2 триггера в папке, 1 Jass триггер который не нужно трогать он сам самостоятельно работает, и второй гуи триггер в котором нужно лиш присвоить нужные значение переменным, для совсем не фига незнающих людей...
Но тут другое но - Глобальные переменные, который некоторые чебурашки на копируют и ноют, типа чё не работает...
Ну поставте вы галочку в настройках, создавать неизвестные переменные...
ну сделай в начале кода такое
globals
	ololo
endglobals
________________
новичек в картостроении Warcraft 3? загляни сюда http://xgm.ru/p/wc3/articles
Костыльно-ориентированное программирование (ц)
Старый 20.05.2012, 08:38
quq_CCCP
Я белый и пушистый!
offline
Опыт: 65,012
Активность: 24956
Участник проектов:
-God's word: The True Way
-Мастерская girvel-а
Hatsume_Hate, это есть в vJass версии
Мы говорим о гуи, без Jgnp....
Ибо у чебурашек почти всегда его нету...
Старый 20.05.2012, 08:46
Vadik29
Choice Battle 1.6а
offline
Опыт: 15,833
Активность: 444
quq_CCCP, по моему все что связано с Jass чебурашки вообще не качают....
Старый 20.05.2012, 09:29
Ответ

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

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

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

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



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