CustomNetTable

  • Автор темы Автор темы I_GRIN_I
  • Дата начала Дата начала
[quote author=Илья link=topic=1079.msg6104#msg6104 date=1473261493]
Чет касательно моего вопроса: не пашет.

Простая табличка ability_table.kv:

Код:
arrayValue = [
	1, 	
	2, 	
	3, 		
 ]

Простое использование:

Код:
GameRules.AbilityTable = LoadKeyValues("scripts/kv/ability_table.kv") --грузим
print(GameRules.AbilityTable[1]) --выводим

В итоге получаем ошибку, а GameRules.AbilityTable равняется nill.

Я думаю, что дело все-таки все же в функции LoadKeyValues.
[/quote]
На странице красным текстом написано, но это для читающих
 
Последнее редактирование модератором:
Так красным написано, что надо строчку первую такую иметь (хотя это коммент и я не вижу смысла)
Код:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->

Так, я так и не понял: в чем я косячу? Иначе таблицу там записать или что?
 
Последнее редактирование модератором:
И получится таблица с ключами в виде строк
Которую можно перепарсить в нормальный массив. или использовать tostring( number ) при адрессации.
---
Косячишь в том что ты пытаешься парсить неправильный по синтаксису kv-файл. Иди смотри файл с абилками, там есть точно ключ и точно значение. Причем и то и другое выделяется в кавычки, но вместо значения МОЖЕТ быть набор других ключей со значениями заключенных в {}. А первая строка указывает на версию kv-файлов(и она тоже есть разная, но конкретно для нас интересует полная копия синтаксиса с айтемов/абилок/юнитов и т.д и т.п).
 
Последнее редактирование модератором:
[quote author=Илья link=topic=1079.msg6109#msg6109 date=1473263053]
Так красным написано, что надо строчку первую такую иметь (хотя это коммент и я не вижу смысла)
Код:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->

Так, я так и не понял: в чем я косячу? Иначе таблицу там записать или что?
[/quote]
Код:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
	arrayValue =
	[
		1,
		2,
	]
}
Более чем уверен что вот так все будет работать.
PS: <!-- считается комментарием в xml-файлах
 
Последнее редактирование модератором:
Так я же вот так и делал до коммента ZLOY, ability_table.kv:

Код:
"ability" 
{ 
	1 "sven_storm_bolt"
	2 "sven_great_cleave"	
	3 "sven_warcry"
...
}

И получаю в итоге хт. Мне не надо её парсить в массив, я хотел, чтобы можно было написать что-то в духе:

Код:
"ability" 
{ 
	"sven_storm_bolt"
	"sven_great_cleave"	
	"sven_warcry"
...
}

и обращаться затем в коде:

Код:
GameRules.AbilityTable = LoadKeyValues("scripts/kv/ability_table.kv") --грузим
print(GameRules.AbilityTable[1]) --выводим

А вместо этого приходится так:

Код:
GameRules.AbilityTable = LoadKeyValues("scripts/kv/ability_table.kv") --грузим
print(GameRules.AbilityTable["1"]) --выводим

Что весьма напряжно.


ZLOY, где я что туплю? Я могу сделать что-то в духе того примера, что скидывал?
 
Последнее редактирование модератором:
[quote author=ZLOY link=topic=1079.msg6111#msg6111 date=1473263336]
Код:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
	arrayValue =
	[
		1,
		2,
	]
}
Более чем уверен что вот так все будет работать.
PS: <!-- считается комментарием в xml-файлах
[/quote]

Ща попробую
А комменты - я же говорю, что это коммент и его пишут только друг для друга прогеры, на работу файла он же не влияет. Эт к твоему упреку про "чтение" : )
 
Последнее редактирование модератором:
Не, такой вариант тоже не работает:

Код:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
	arrayValue =
	[
		1,
		2,
	]
}
 
Последнее редактирование модератором:
Вот в js можно решить мой вопрос, а в lua походу нет, так как на гитхабе ребята тоже все страдают через key,value для абилок.
 
[quote author=Илья link=topic=1079.msg6114#msg6114 date=1473263954]
Не, такой вариант тоже не работает:

Код:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
	arrayValue =
	[
		1,
		2,
	]
}
[/quote]
Епт Илья, да нельзя просто перечислить числа. Должен быть ключ, и его значение. Нельзя засунуть в kv файл( а точнее в структуру данных дерево) массив чисел. Запили его по правилам абилкам, а в луа сделай такой хинт
Код:
local load_kv = LoadKeyValue(....)
local massiv = {}
for key, value in pairs(load_kv) do
	table.insert(massive, value)
end
И в итоге получишь массив значений.

kv не поддерживает массивы в чистом виде, это гребанное дерево в простейшем его проявлении.
 
Последнее редактирование модератором:
Нельзя засунуть в kv файл( а точнее в структуру данных дерево) массив чисел.

Смори, тут в kv пихают массив объектов (строк), а затем в js с ним работают. Так что можно.

В луа нет подобной функции, что очень обидно.

Спасибо, конечно за пример, в будущем может пригодится, но в текущий момент - это не то, что мне нужно было. Если я ручками буду добавлять/удалять в kv абилки, то нужно будет все ключи (циферки) заодно менять.
Так что я просто буду использовать отдельный lua файл, где буду хранить этот массив как глобалку.
 
Илья, а куда они пихают этот файл и откуда они взяли эти функции?
 
Гитхабом не умеешь пользоваться?

Когда ты в чьем-то репозитории, можешь по нему поиск делать. Вбиваешь там название файла и вот.

А если надо найти совпадения со строкой по всем репам, то идешь на главную и там в поиск вбиваешь строку, а затем "extension: расширение файла", например так.

Ну а в самом коде я не разбирался. Может это какие-то стандартные функции, может они сами реализовали. Там уже сам смотри.

Вбил keyvalue.parseKVFile в поиск по репам и получил это в каком-то другом репозитории. Может у них что-то подобное. Ну а если почитать README.md у них в репе, то там говорится, что это их плагин для пика умений. В любом случае, если покопаешься, думаю, найдешь что-то для себя либо просто скопировать/поставить их плагин можешь : )
 
Последнее редактирование модератором:
[quote author=Илья link=topic=1079.msg6122#msg6122 date=1473277324]
Смори, тут в kv пихают массив объектов (строк), а затем в js с ним работают. Так что можно.

В луа нет подобной функции, что очень обидно.

Спасибо, конечно за пример, в будущем может пригодится, но в текущий момент - это не то, что мне нужно было. Если я ручками буду добавлять/удалять в kv абилки, то нужно будет все ключи (циферки) заодно менять.
Так что я просто буду использовать отдельный lua файл, где буду хранить этот массив как глобалку.
[/quote]
Этот код был сделан больше 3 лет назад, и он не работает по простой причине - это код не панорамы.
 
Последнее редактирование модератором:
Реклама: