ссылка на имя игрока

  • Автор темы Автор темы UZzip
  • Дата начала Дата начала

UZzip

Продвинутый
2 Янв 2016
282
1
у меня во время игры выводится текст
Код:
GameRules:SendCustomMessage("<font color='#FE2E2E'>Информация:</font> Вы получили рандомный УЛЬТ!", 0, 0)

Хочу заменить вы, на имя игрока.
 
Последнее редактирование модератором:
Мне в свое время не хватило разобраться с этим: русские ники не отображались. Может ты разберешься и выложишь решение)
 
В addon_game_mode.lua:
Код:
GameRules:SendCustomMessage( "#sillka_v_addon_english.txt", GetPlayerID(), 0)

В addon_english.txt:

Код:
"sillka_v_addon_english.txt" "<font color='#FE2E2E'>Информация:</font> %s1 получил рандомный УЛЬТ!"


Вместо sillka_v_addon_english.txt, любое свое напиши.
 
Последнее редактирование модератором:
а как бы в строчке ещё и название ульты отобразить?

Код:
function main:GiveRandomAbility(hero)
  hero:AddAbility(random_ability_table[RandomInt(2, #random_ability_table)])
  
  GameRules:SendCustomMessage("<font color='#FE2E2E'>Информация:</font> %s1 получил рандомный УЛЬТ!", 0, 0)
end
 
Последнее редактирование модератором:
UZzip,
Код:
GameRules:SendCustomMessage( "#sillka_v_addon_english.txt", GetPlayerID(), GetAbilityByIndex(сюда нужно передавать индекс абилки))
либо:
Код:
GameRules:SendCustomMessage( "#sillka_v_addon_english.txt", GetPlayerID(), GetAbility(сюда нужно передавать имя абилки))
А в локализации:
Код:
"<font color='#FE2E2E'>Информация:</font> %s1 получил способность %s2!"
 
Последнее редактирование модератором:
UZzip, ну я же не знаю, как ты получаешь абилку. Тебе нужно как то получать индекс с абилки, которая нарандомилась в этот момент и передавать его уже в тот блок.
 
I_GRIN_I,ну я же не знаю, как ты получаешь абилку.
Код:
function main:GiveRandomAbility(hero)
 hero:AddAbility(random_ability_table[RandomInt(2, #random_ability_table)])
 
 GameRules:SendCustomMessage("<font color='#FE2E2E'>Информация:</font> %s1 получил рандомный УЛЬТ!", 0, 0)
end
вот так и у меня ещё есть таблица со спелами из которой берётся один рандомом
 
Последнее редактирование модератором:
Ну так чуть подкорректируй:

Код:
function main:GiveRandomAbility(hero)
  local abrakadabra = RandomInt(2, #random_ability_table)
  hero:AddAbility(random_ability_table[abrakadabra])
  local id = hero:FindAbilityByName(random_ability_table[abrakadabra]):GetAbilityIndex()
  GameRules:SendCustomMessage("<font color='#FE2E2E'>Информация:</font> %s1 получил %s2", 0, GetAbilityByIndex(id))
end
Если я правильно понял.
 
Последнее редактирование модератором:
Илья, консоль:
Код:
[ W VScript       ]: Script Runtime Error: ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:89: attempt to call global 'GetAbilityByIndex' (a nil value)
[ W VScript       ]: stack traceback:
[ W VScript       ]:  ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:89: in function 'GiveRandomAbility'
[ W VScript       ]:  ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:68: in function <...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:66>


89
Код:
 GameRules:SendCustomMessage("<font color='#FE2E2E'>Информация:</font> %s1 получил %s2", 0, GetAbilityByIndex(id))
66
Код:
function main:OnHeroPicked (event)
68
Код:
main:GiveRandomAbility(hero)
 
Последнее редактирование модератором:
Не, ну я не знаю как там функция эта вызывается (ни разу ей не пользовался, чтобы прям имена и т.д.). Я ток в теории подал. Так что жди Зеленого.
 
Ну а консоль говорит, что функция получения абилки по индексу принадлежит конкретному объекту CDOTA_BaseNPC. Попробуй так:

GameRules:SendCustomMessage("<font color='#FE2E2E'>Информация:</font> %s1 получил %s2", 0, hero:GetAbilityByIndex(id))
 
Последнее редактирование модератором:
Илья,
Код:
[ W VScript       ]: Script Runtime Error: ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:87: Parameter type mismatch
[ W VScript       ]: stack traceback:
[ W VScript       ]:  [C]: in function 'SendCustomMessage'
[ W VScript       ]:  ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:87: in function 'GiveRandomAbility'
[ W VScript       ]:  ...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:68: in function <...me\dota_addons\zipn\scripts\vscripts\addon_game_mode.lua:66>
 
Последнее редактирование модератором:
Ну эт уже зеленку тереби, как там функцию сообщения над запускать.
 
М, а я тут между делом свой вопрос задам: вспомнил, почему не получалось имя вывести.
Можно ли то же самое реализовать через FireGameEvent("show_center_message",messageinfo) ?
 
Последнее редактирование модератором:
Реклама: