CustomGames.ru - Dota 2 пользовательские игры

Вызов GameEvents. Панорама

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн den4iccc

  • 302
  • Мощь: 4
Вызов GameEvents. Панорама
« : 02-08-2017, 14:55:39 »
Есть список который фильтруется и выводится в css через js, мне надо сделать вызов GameEvents.SendCustomGameEventToServer("craft_system", upgradesss) только по одной картинке, а не по всему контейнеру (я продебажил каждую картинку вывело: <Button id="craft_axe" class="Up" style="..." />) id "craft_axe" в xml не указывал. Как мне сделать вызов только по одной картинке, что имеется в var upList ? На данный момент у меня по всем картинкам срабатывает вызов через CraftContainer(всё тело).

Скрин www.picshare.ru/view/8212669/

js
Спойлер
Код
"use strict";
var upList = ["craft_axe",
    "craft_axew",
    "craft_axe_tree",
    "craft_wood",
   ];

function Open()
{
var container = $("#CraftContainer")
var dotaHud = $.GetContextPanel().GetParent().GetParent().GetParent().GetParent()
if ( dotaHud.FindChildTraverse("shop").BHasClass("ShopOpen") ) {
$.DispatchEvent( "DOTAShopHideShop" );
container.AddClass("opened")
}
else
container.ToggleClass("opened")
}

/*function Craft()
{
var plyID = Game.GetLocalPlayerID();
    var upgradesss = {
        playerID: plyID,
    }

    GameEvents.SendCustomGameEventToServer(  "craft_system", upgradesss );
}*/

function Up(name)
{
var upButton = $.CreatePanel("Button", $("#CraftContainer"), name)
upButton.style.backgroundImage = "url('file://{images}/custom_game/craft/" + name + ".png')"
upButton.AddClass("Up")
//upButton.name = name

var plyID = Game.GetLocalPlayerID();

        var upgradesss = {
        playerID: plyID,
    }

upButton.SetPanelEvent("onmouseactivate", function() {

GameEvents.SendCustomGameEventToServer("craft_system", upgradesss)
})
}

(function () {
for (var i = 0; i != upList.length ; i++) {
Up(upList[i])
}
$.Schedule(0.03)
})();
[свернуть]


xml
Спойлер
Код
<root>
<styles>
<include src="file://{resources}/styles/custom_game/slider_shop.css" />
</styles>
<scripts>
<include src="file://{resources}/scripts/custom_game/slider_shop.js" />
</scripts>
<Panel class="Root" hittest="false">

<Panel id="Scrolling" onactivate="ScrollToTop()"  hittest="false">
<Panel id="CraftContainer" />
</Panel>

<Button id="OpenButton" onactivate="Open()" >
<Image id="img" src="file://{images}/custom_game/img.png"/>
</Button>
</Panel>
</root>
[свернуть]
« Последнее редактирование: 02-08-2017, 16:25:26 от den4iccc »

Оффлайн den4iccc

  • 302
  • Мощь: 4
Re: Вызов GameEvents. Панорама
« Ответ #1 : 02-08-2017, 16:11:38 »
Как именно внутри CraftContainer выбрать элемент без создания новой панели, пробовал по id добавлять в xml, потом в js создавать новую панель и обрабатывать запрос именно только по этому id, в итоге получается у меня под контейнером создаётся панель "картинка" и работает как надо, но мне надо внутри использовать а не добавлять новые

Оффлайн ZLOY

  • Супермодератор
  • 395
  • Мощь: 5
Re: Вызов GameEvents. Панорама
« Ответ #2 : 02-08-2017, 17:16:29 »
Должно быть так-же как у меня?

Оффлайн den4iccc

  • 302
  • Мощь: 4
Re: Вызов GameEvents. Панорама
« Ответ #3 : 02-08-2017, 17:26:45 »
Должно быть так-же как у меня?
Нельзя ?)))

Оффлайн I_GRIN_I

  • Продвинутый
  • 517
  • Мощь: 9
  • Научиться бы скриптить...
Re: Вызов GameEvents. Панорама
« Ответ #4 : 02-08-2017, 17:36:41 »
den4iccc, var itempanel = $.CreatePanel("Panel", $("#CraftContainer"), АЙДИ ПАНЕЛИ, КОТОРУЮ СОЗДАЕШЬ);
Вызов: $("#АЙДИ ПАНЕЛИ, КОТОРУЮ СОЗДАЕШЬ")

Оффлайн I_GRIN_I

  • Продвинутый
  • 517
  • Мощь: 9
  • Научиться бы скриптить...
Re: Вызов GameEvents. Панорама
« Ответ #5 : 02-08-2017, 17:37:40 »
den4iccc, а ты отправляешь в айди таблицу. Там строка нужна.

Оффлайн ZLOY

  • Супермодератор
  • 395
  • Мощь: 5
Re: Вызов GameEvents. Панорама
« Ответ #6 : 02-08-2017, 18:20:52 »
Нельзя ?)))
Я просто не понимаю что не работает у тебя, если должно быть аналогично.

Оффлайн ZLOY

  • Супермодератор
  • 395
  • Мощь: 5
Re: Вызов GameEvents. Панорама
« Ответ #7 : 02-08-2017, 18:27:38 »
B ID игрока тебе самому не нужно в ивент вставлять

Оффлайн den4iccc

  • 302
  • Мощь: 4
Re: Вызов GameEvents. Панорама
« Ответ #8 : 02-08-2017, 18:37:45 »
Хз, просто хотел сделать вызов когда нажимаю на одну из картинок например: "file://{images}/custom_game/upgrades/craft_axe_tree.png')" то срабатывет    
Код
GameEvents.SendCustomGameEventToServer("craft_system", upgradesss) 
а не как я написал что бы срабатывало когда я жму по кантейнеру

Оффлайн I_GRIN_I

  • Продвинутый
  • 517
  • Мощь: 9
  • Научиться бы скриптить...
Re: Вызов GameEvents. Панорама
« Ответ #9 : 02-08-2017, 22:19:15 »
den4iccc, ну создай просто панель с бэкграундом твоей картинки

Оффлайн ZLOY

  • Супермодератор
  • 395
  • Мощь: 5
Re: Вызов GameEvents. Панорама
« Ответ #10 : 03-08-2017, 05:53:22 »
Для начала нужно понять что ты нажимаешь не на картинку, а на панель на которой эта картинка нарисована

Оффлайн I_GRIN_I

  • Продвинутый
  • 517
  • Мощь: 9
  • Научиться бы скриптить...
Re: Вызов GameEvents. Панорама
« Ответ #11 : 03-08-2017, 09:30:06 »
ZLOY, ну типо есть $.Msg(), чтобы проверять такое

Оффлайн den4iccc

  • 302
  • Мощь: 4
Re: Вызов GameEvents. Панорама
« Ответ #12 : 03-08-2017, 17:12:26 »
den4iccc, ну создай просто панель с бэкграундом твоей картинки
Когда я так делаю у меня вся таблица заполняется однообразной картинкой помимо того что есть другие картинки

Оффлайн den4iccc

  • 302
  • Мощь: 4
Re: Вызов GameEvents. Панорама
« Ответ #13 : 03-08-2017, 17:13:16 »
Для начала нужно понять что ты нажимаешь не на картинку, а на панель на которой эта картинка нарисована
Я знаю что я нажимаю на эту панель я же написал в самом начале темы

Оффлайн I_GRIN_I

  • Продвинутый
  • 517
  • Мощь: 9
  • Научиться бы скриптить...
Re: Вызов GameEvents. Панорама
« Ответ #14 : 05-08-2017, 16:51:13 »
den4iccc, что тебе нужно сделать? Кинь свой вк в лс