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

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

Ответ
 
Alibek
Choops
offline
Опыт: 12,699
Активность:
Система "Мешок"
Моя первая система! Я вообще в основном рисую иконки и редко делаю модели, ну а триггеры я даже толком не открывал, так что это для меня…)))
Сама система может и простая для некоторых и она даже не стоит рядом с другими системами, но мне кажется ктонибуть все таки будет использовать ее в своей карте.

Особенность
-Возможность хранить в мешке неограниченное количество предметов

v1.1
-весь код соединен в один триггер
-удалены ненужные ГУИшные условия
v1.2
-оптимизирован весь код
-удалены лишние функции
v1.3
-немного оптимизирован код
-возможность указать максимальное количество слотов в мешке
Прикрепленные файлы
Тип файла: w3x SB(Alibek) v1.2.w3x (13.4 Кбайт, 50 просмотров )
Тип файла: w3x SB(Alibek) v1.3.w3x (14.3 Кбайт, 180 просмотров )

Отредактировано Alibek, 21.05.2009 в 12:27.
Старый 17.05.2009, 13:35
SwuJe
aka Sakh_badboy
offline
Опыт: 15,238
Активность:
Alibek приколная система чем то напоминает систему КУБИК РУБИК.Она годиться для переноса ненужного хлама но не аптечек и т д
Старый 17.05.2009, 13:40
Alibek
Choops
offline
Опыт: 12,699
Активность:
Sakh_badboy
+1
может ктото будет делать рпг и там будут у него рецепты куча ингридиентов...
Старый 17.05.2009, 13:46
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Рекомендации от VD:
  1. Избавиться от BJ
  2. Почистить условия - они сейчас в ужасно-гуишном виде
  3. Свести весь код в один триггер
  4. Сделать поудобнее и в одном месте указание id мешка
  5. И желательно бы перейти на массивы =)
  6. Приятнее было бы как-то видеть, что в мешке и доставать не только последн.. добавленную вещь
Старый 17.05.2009, 14:32
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
Alibek, просто гениально прикольно.
Старый 17.05.2009, 14:52
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
Бредово, что нельзя делать древо из мешков, т.е. мешок в мешке, а в нем еще один мешок и тп =)
Цитата:
чем то напоминает систему КУБИК РУБИК

черт, я о ней вообще забыл =О, надо бы закончить начатое...
Старый 17.05.2009, 15:19
Alibek
Choops
offline
Опыт: 12,699
Активность:
Цитата:
Бредово, что нельзя делать древо из мешков, т.е. мешок в мешке, а в нем еще один мешок и тп =)

хитро))
но там идет небольшая парка, тк в кэш сохраняется не сам предмет а тип предмета

Alibek добавил:
вышла v1.1))
Старый 17.05.2009, 15:44
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Код:
call DisplayTextToForce( GetPlayersAll(), "1" )
дебаг не убрал =)



при ините можно обойтись одной локальной переменной типа триггер, присваивая её по очереди - ведь тебе не нужны ссылки эти триги потом?


Код:
function SB_S_conditions takes nothing returns boolean
 local integer id=GetIssuedOrderId()
    return id>852001 and id<852008
endfunction
здесь локалка бессмысленна имхо

Отредактировано Van Damm, 17.05.2009 в 16:22.
Старый 17.05.2009, 16:16
Alibek
Choops
offline
Опыт: 12,699
Активность:
с дисплеем омг забыл) уберу немедленно
Цитата:
при ините можно обойтись одной локальной переменной типа триггер, присваивая её по очереди - ведь тебе не нужны ссылки эти триги потом?


Код:
function InitTrig_SB takes nothing returns nothing
    local trigger trg = CreateTrigger(  )
//
    set trg  = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( trg, EVENT_PLAYER_UNIT_USE_ITEM )
    call TriggerAddAction( trg, function Trig_SB_L_Actions )
    set trg  = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ(trg,EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
    call TriggerAddCondition(trg,Condition(function SB_S_conditions))
    call TriggerAddAction(trg,function SB_S_actions)
    set trg  = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( trg, EVENT_PLAYER_UNIT_SELL_ITEM )
    call TriggerAddAction( trg, function Trig_SB_B_Actions )
    set trg  = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( trg, EVENT_PLAYER_UNIT_PAWN_ITEM )
    call TriggerAddAction( trg, function Trig_SB_FO_Actions )
endfunction


так?
Старый 17.05.2009, 16:30
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
ага. и еще
Код:
call UnitAddItemByIdSwapped( ni, GetTriggerUnit() )
надо бы в
Код:
call UnitAddItemById( GetTriggerUnit(), ni )
Старый 17.05.2009, 16:33
Alibek
Choops
offline
Опыт: 12,699
Активность:
Цитата:
function SB_S_conditions takes nothing returns boolean
local integer id=GetIssuedOrderId()
return id>852001 and id<852008
endfunction

исправил на
Цитата:
function SB_S_conditions takes nothing returns boolean
return GetIssuedOrderId()>852001 and GetIssuedOrderId()<852008
endfunction


Alibek добавил:
Цитата:
ага. и еще
call UnitAddItemByIdSwapped( ni, GetTriggerUnit() )
надо бы в
call UnitAddItemById( GetTriggerUnit(), ni )

сделано
Старый 17.05.2009, 16:38
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Продолжаем:
Код:
function SB_EI takes nothing returns nothing
    if GetItemTypeId(GetEnumItem()) == 'I000' then
       call SB(GetEnumItem())
    else
    endif
endfunction

function Trig_Init_SB_Actions takes nothing returns nothing
    call InitGameCacheBJ( "NCV.w3v" )
    set udg_cache = GetLastCreatedGameCacheBJ()
    set udg_i = 0
    set udg_itemID = 'I000'
    call EnumItemsInRect(GetPlayableMapRect(), null, function SB_EI)
endfunction

Я говорил об условиях? А о бж? Надо бы где-то так:
Код:
function SB_cond takes nothing returns boolean 
   return GetItemTypeId(GetFilterItem()) == 'I000'
endfunction

function SB_enum takes nothing returns nothing
     call SB(GetEnumItem())
endfunction

function Trig_Init_SB_Actions takes nothing returns nothing
    set udg_cache = InitGameCache( "NCV.w3v" )
    set udg_i = 0
    set udg_itemID = 'I000'
    call EnumItemsInRect(bj_mapInitialPlayableArea, Condition(function SB_cond), function SB_enum)
endfunction
Аналогично условие можно добавить в триггер продажи итема.
И id вынеси отдельной константой/функцией.

И как поживает рандомное доставание? =)
Старый 19.05.2009, 22:33
Alibek
Choops
offline
Опыт: 12,699
Активность:
Van Damm
рандом даже непытаюсь...поже
ну а в остальном ок посматрю что еще можно упростить
+ я еще немогу сделать так чтобы заряды сохраняла
как сделаю выложу...
Van Damm возможно будут вопросы - готовся)

Alibek добавил:
с биджи функциями я сразу разобрался....как ты мне посаветовал вк3ньюген....там почти все карсные функции заменил на филетовые
Старый 20.05.2009, 22:08
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Цитата:
возможно будут вопросы - готовся)
ок, пиши в асю/жаббер если что
Старый 21.05.2009, 01:22
Alibek
Choops
offline
Опыт: 12,699
Активность:
смотрим новую версию 1.3
Старый 21.05.2009, 10:46
Dezmen
Kicked by Dron
offline
Опыт: 709
Активность:
У меня не робит сделал по инструкции все ровно не робит!!!!!!!!!!!!!!!!!!!!!!!!
Старый 27.06.2009, 18:05
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Мысли не читаем. Что говорит, на что ругается?
Старый 27.06.2009, 22:54
Serious07

offline
Опыт: 892
Активность:
Слухайте ребята мне кажется что при мультиплеере мешок вызывает огромную здержку =(
Старый 07.07.2009, 15:07
Ответ

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

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

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

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



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