на клиенте делаешь http запрос на свой сервер в параметрах указываешь ключ -> на сервере проверяешь ключ ( совпадает ли с ключем твоей кастомки или нет) и возвращаешь строку например "print('hello world') -> при получении ответа делаешь loadstring(твой ответ). Чего тут не понятно?Как то не понятно.
Можно примерами ?)
Разве изначальный вопрос был не о защите кода кастомки? Или вы предлагаете хранить некоторые скрипты у себя и передавать их по http при загрузке игры?на клиенте делаешь http запрос на свой сервер в параметрах указываешь ключ -> на сервере проверяешь ключ ( совпадает ли с ключем твоей кастомки или нет) и возвращаешь строку например "print('hello world') -> при получении ответа делаешь loadstring(твой ответ). Чего тут не понятно?
Да. Это тратит больше ресурсов, но код более защищён но не на уровне представления, а на уровне доступа к нему. Ну а так, если вам надо хранить код именно в доте то можно обфусцировать его перед публикациейРазве изначальный вопрос был не о защите кода кастомки? Или вы предлагаете хранить некоторые скрипты у себя и передавать их по http при загрузке игры?
хз чел у меня норм всепосле патча отображение модифаеров сошло с ума у вас тоже? что ещё патч сломал?
выходит в extraData передаёшь в контексте ?
Не просто отображение, к примеру модифаер виднопосле патча отображение модифаеров сошло с ума у вас тоже? что ещё патч сломал?
"item_create_1"
{
"ID" "2101"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE"
"BaseClass" "item_datadriven"
"Model" "models/props_gameplay/red_box.vmdl"
"AbilityTextureName" "item_create_1"
"ItemCost" "500"
"ItemKillable" "1"
"ItemDroppable" "1"
"ItemSellable" "1"
"ItemPurchasable" "1"
"ItemQuality" "common"
"ItemShareability" "ITEM_FULLY_SHAREABLE"
"ItemDisassembleRule" "DOTA_ITEM_DISASSEMBLE_ALWAYS"
"Modifiers"
{
"modifier_1"
{
"Passive" "1"
"IsHidden" "1" //если тут написать "true" модиф больше не отображается(но зелёный урон так и не появился)
"Attributes" "MODIFIER_ATTRIBUTE_MULTIPLE"
"Properties"
{
"MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE" "%ad"
"MODIFIER_PROPERTY_HEALTH_BONUS" "%hp"
}
}
Да прятать зелёные цифры, например: спрятать бонусный урон крипу или нпс.Не просто отображение, к примеру модифаер видноДобавляет персонажу законные 8 урона но они не отображаются как зелёные цифрыКод:"item_create_1" { "ID" "2101" "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_PASSIVE" "BaseClass" "item_datadriven" "Model" "models/props_gameplay/red_box.vmdl" "AbilityTextureName" "item_create_1" "ItemCost" "500" "ItemKillable" "1" "ItemDroppable" "1" "ItemSellable" "1" "ItemPurchasable" "1" "ItemQuality" "common" "ItemShareability" "ITEM_FULLY_SHAREABLE" "ItemDisassembleRule" "DOTA_ITEM_DISASSEMBLE_ALWAYS" "Modifiers" { "modifier_1" { "Passive" "1" "IsHidden" "1" //если тут написать "true" модиф больше не отображается(но зелёный урон так и не появился) "Attributes" "MODIFIER_ATTRIBUTE_MULTIPLE" "Properties" { "MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE" "%ad" "MODIFIER_PROPERTY_HEALTH_BONUS" "%hp" } }
Так же умерли некоторые датадрейвен партикли, такие как БКБ и Бладмэйл
дарклорд тот который любит не придумывать а брать чужое) кастомхеро клашРазве изначальный вопрос был не о защите кода кастомки? Или вы предлагаете хранить некоторые скрипты у себя и передавать их по http при загрузке игры?
Все одно не понялДа. Это тратит больше ресурсов, но код более защищён но не на уровне представления, а на уровне доступа к нему. Ну а так, если вам надо хранить код именно в доте то можно обфусцировать его перед публикацией
Как подключить луа через яву?
а в доте Java не используется:\ Интересно, но не знаю как в доте.
вот тебе пример, если не поймешь, то тут мои полномочия иссякаютВсе одно не понял
local req = CreateHTTPRequestScriptVM( "get" , "http://localhost:5000/example" --[[ ещё можно дописать сюда параметром dedicated server key]])
req:SetHTTPRequestRawPostBody("application/json", "{}")--[[или сюда]]
req:Send(function(res)
if (res.StatusCode >= 200 and res.StatusCode <=299) then
ConsoleLog(res.Body)
local a = loadstring(res.Body)
a()
else
local result = http.RequestError(res.StatusCode)
if (res == nil) then result = 0 end
end
end)
[HttpGet("/example")]
public IActionResult TestCode()
{
// тут проверяешь свой ключ, если все ок, то идем дальше, иначе возвращаем пустую строку
return new OkObjectResult("print(\"HI THERE!! IT WORKS!!!!!!!\")");
}
// тут проверяешь свой ключ, если все ок, то идем дальше, иначе возвращаем пустую строку
//или так
echo "print(\"HI THERE!! IT WORKS!!!!!!!\")";
//или так
print_r("print(\"HI THERE!! IT WORKS!!!!!!!\")");
а если ты хочешь подключать lua файлы в js'е, то это сделать нельзя, ты можешь только вызывать события через https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API#CCustomGameEventManager:\ Интересно, но не знаю как в доте.
здесь более подробноа если ты хочешь подключать lua файлы в js'е, то это сделать нельзя, ты можешь только вызывать события через https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API#CCustomGameEventManager
и
API - Valve Developer Community
developer.valvesoftware.com