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

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

Ответ
 
J
expert
offline
Опыт: 48,447
Активность:
клик на траккабл
Создавал я такую темку на бру.. но не услышал ничего толкового...

так... мну короче нужно, чтобы при нажатии на траккабл, улавливался игрок, который нажимает на него...
специальной функции для этого нету...
потому я попробовал по извращаться... придумал только это=/
» Функция
Код:
function ClickTrackable takes nothing returns nothing
    local trigger trig = GetTriggeringTrigger()
    local player p = I2P(GetStoredInteger(udg_Cache, I2S(H2I(trig)), "p")
    call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, GetPlayerName(p) )
    set p    = null
    set trig = null
endfunction

function JCreateTrigger takes real X, real Y, integer id returns nothing
    local trigger trig
    local trackable tk = CreateTrackable("square.mdx", X, Y, 0)    
    local integer i = 0
    local player p
    loop
        exitwhen i > 11
        set trig = CreateTrigger() 
        call TriggerRegisterTrackableHitEvent(trig, tk                     )
        call TriggerAddAction                (trig, function ClickTrackable) 
        set p = Player(i) 
        call StoreInteger(udg_Cache, I2S(H2I(trig)), "p", H2I(p))
        call DisableTrigger( trig )
        if (GetLocalPlayer () == p) then
            call EnableTrigger( trig )
        endif
        set i = i + 1
    endloop    
    call StoreReal   (udg_Cache, I2S(id), "X", X)
    call StoreReal   (udg_Cache, I2S(id), "Y", Y)
    set p    = null
    set trig = null
    set tk   = null
endfunction

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

Отредактировано Jon, 01.01.2007 в 21:34.
Старый 01.01.2007, 21:24
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
http://xgm.guru/forum/showthread.php?p=205763#post205763

Решить можно тока созданием тракаблав для каждого игрока...
Старый 01.01.2007, 23:10
J
expert
offline
Опыт: 48,447
Активность:
для каждого игрока никак нельзя создать.. иначе будет десинк
я сделал так:
Код:
function ClickTrackable takes nothing returns nothing
    local trigger trig = GetTriggeringTrigger ()
    local trackable tk = GetTriggeringTrackable ()
    local player p = GetStoredInteger(udg_Cache, I2S(H2I(tk)), "p")
    call DisplayTextToForce( bj_FORCE_ALL_PLAYERS, GetPlayerName(p) )
    set p    = null
    set trig = null
    set tk   = null    
endfunction    
    
function JCreateTrigger takes real X, real Y, integer id returns nothing
    local trigger trig
    local trackable tk   
    local integer i = 0
    local player p
    local string model
    loop
        exitwhen i > 11   
        set p = Player(i) 
        set model = ""
        if (GetLocalPlayer() == p) then
            set model = "square.mdx"
        endif
        set tk = CreateTrackable(model, X, Y, 0) 
        set trig = CreateTrigger() 
        call TriggerRegisterTrackableHitEvent(trig, tk                     )
        call TriggerAddAction                (trig, function ClickTrackable)
        call StoreInteger(udg_Cache, I2S(H2I(tk)), "p", H2I(p))
        call DisableTrigger( trig )
        if (GetLocalPlayer () == p) then
            call EnableTrigger( trig )
        endif
        set i = i + 1
    endloop    
    call StoreReal   (udg_Cache, I2S(id), "X", X)
    call StoreReal   (udg_Cache, I2S(id), "Y", Y)
    set p    = null
    set trig = null
    set tk   = null
endfunction

трекаблы создаются нормально.. на выкидывает при на их нажатие
Старый 01.01.2007, 23:12
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Блин, по набору тракаблов для каждого игрока. Все тракаблы создаются у всех игроков...
Старый 01.01.2007, 23:13
J
expert
offline
Опыт: 48,447
Активность:
exploder непонял.. напиши код
Старый 01.01.2007, 23:15
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Просто у локального игрока его набор тракаблов с моделями, а остальные пустышки...

exploder добавил:
Блин дал линк на статью =)
Старый 01.01.2007, 23:17
J
expert
offline
Опыт: 48,447
Активность:
exploder блин.. ты хоть почитал код что я выложил?
Старый 01.01.2007, 23:18
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
У тебя громоздко =) Но по сути одно и тоже =) Сорри...

exploder добавил:
Тока зачем дисеблить триг я не понял...
Старый 01.01.2007, 23:21
DioD

offline
Опыт: 45,134
Активность:
мышь не мониторится , можно создавать тракабли в РАЗНЫХ местах, для одного игрока в одном для другого в другом
Старый 02.01.2007, 08:20
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
В общем-то, в ФСГУИ это так и вычисляется.
Старый 02.01.2007, 14:39
NETRAT

offline
Опыт: 83,712
Активность:
в FSGUI делается так как сказал DioD
Старый 03.01.2007, 10:49
ArchWorm
Матрица незалежности
offline
Опыт: 4,675
Активность:
Я это и сказал, спасибо за внимание.
Старый 06.01.2007, 11:18
Ответ

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

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

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

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



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