Jump to content
Alloder.pro: about Allods with love
Search In
  • More options...
Find results that contain...
Find results in...

Alloder 2.0

We have started the process of project evolve, and this relates not only, and not even primarily of the site's view

Read more

Game tooltips

Tooltips provide a way for 3rd party fansites and extensions to display detailed information on mouseover.

Read more

New program for writers

We turn from quantity to quality and tell you how we will supplement the Allods Team program with rewards in rubles.

More

The new Updater

Let us to introduce the new addon updater software and to share the details

Read more

Alloder 2.0

We have started the process of project evolve, and this relates not only, and not even primarily of the site's view

Read more

Неверная кодировка в логе + сравнение таблиц


Recommended Posts

Здравствуйте. Есть два вопрос, подскажите пожалуйста если кто-то знает.
Вопрос 1: Столкнулся с проблемой, что при следующей структуре кода:

 
local buffList={"Аспект Нападения","Адаптивная броня"}
function equal(table1,table2)
    local buffIndex = 0
   for _, value in pairs(table1) do
       buffIndex=buffIndex+1
       local buffName = table2[buffIndex]
    if buffName == value then
        LogInfo("Buff found")
    else
        LogInfo("Buff not found:",buffName," Value:",value)
        buffIndex=0
       
    end
   end
end

Получаю следующий вид лога:
 

.......
 Buff not found:Аспект Нападения Value:
 Buff not found:Аспект Нападения Value:Спасительный Щит Йокке
 Buff not found:Аспект Нападения Value:
 Buff not found:Аспект Нападения Value:
 Buff not found:Аспект Нападения Value:
 Buff not found:Аспект Нападения Value:Волшебная Фигурка Мэйвэ
 Buff not found:Аспект Нападения Value:
 Buff not found:Аспект Нападения Value:
 Buff not found:Аспект Нападения Value:
 Buff not found:Аспект Нападения Value:Испытательный срок
 Buff not found:Аспект Нападения Value:Укрытие
 Buff not found:Аспект Нападения Value:Аспект Нападения
 Buff not found:Аспект Нападения Value:Адаптивная броня
 Buff not found:Аспект Нападения Value:Абсолютный Барьер Просперо 
.....

Собственно, если выводить значения отдельно (buffName или value) то текст будет адекватным, но если выводить их вместе начинает происходить вот такая ересь.

Вопрос 2: Насколько правильный подход я использую? Мне необходимо получить информацию о баффах на игроке. Я записываю эту информацию в новую таблицу. После этого, мне надо сравнить - имеются ли значения из этой таблицы, в другой таблице (в вопросе 1 где представлен код я как раз это пытаюсь реализовать)

p.Sы Не бейте тряпками, только учусь

Link to comment
Share on other sites

Posted (edited)
1 час назад, Lafayette сказал:

А в какой кодировке у вас кириллический текст в коде? Должна быть кириллица, cp1251.

Декодер говорит что оно windows-1251. 
Сам прикол в том что если я выведу только переменную buffName - то все будет отлично, но в связке или попытке как-то вывести 2 переменные начинается вот такой аншлаг

Edited by Oceangrave
Link to comment
Share on other sites

5 минут назад, Oceangrave сказал:

Декодер говорит что оно windows-1251. 
Сам прикол в том что если я выведу только переменную buffName - то все будет отлично, но в связке или попытке как-то вывести 2 переменные начинается вот такой аншлаг

Поправлено: Не верно понял вопрос, в коде был UTF-8, конвертнул в 1251
Теперь в логе отображается адекватный текст. 
Вопрос 1 - решен)

Link to comment
Share on other sites

Не уверен насколько это верный подход, но таким образом я смог сравнить и найти необходимое мне значение. Был бы благодарен если кто-то заметит здесь ошибки или как это можно было бы улучшить

function equal(table1,table2)
    local buffIndex = 0
    for _, table1_value in pairs(table1) do
        local buffIndex=buffIndex+1
        local buffName = table2[buffIndex]
        local f_result = common.CompareWString(userMods.ToWString(buffName),table1_value)
        if f_result==0 then
            LogInfo("Что мы ищем: ", buffName," | ", " Где мы ищем:", table1_value, " | ", "Результат: ",f_result)
    end

 

Link to comment
Share on other sites

16 часов назад, Oceangrave сказал:

Не уверен насколько это верный подход, но таким образом я смог сравнить и найти необходимое мне значение. Был бы благодарен если кто-то заметит здесь ошибки или как это можно было бы улучшить

function equal(table1,table2)
    local buffIndex = 0
    for _, table1_value in pairs(table1) do
        local buffIndex=buffIndex+1
        local buffName = table2[buffIndex]
        local f_result = common.CompareWString(userMods.ToWString(buffName),table1_value)
        if f_result==0 then
            LogInfo("Что мы ищем: ", buffName," | ", " Где мы ищем:", table1_value, " | ", "Результат: ",f_result)
    end

 

Приветствую) ну код рабочий сам должен быть. Другой вопрос что он делает и зачем. Что хранится в этих таблицах table1 и table2 и как они проиндексированы? Сейчас получается, что сравниваются имена бафов в таблицах под одним и тем же индексом. Ну и если индексы не с 0 (а может и с пропусками) или во второй таблице не будет элемента с таким индексом, то вылезет ошибка

Link to comment
Share on other sites

Posted (edited)
14 часов назад, Slashuur сказал:

Приветствую) ну код рабочий сам должен быть. Другой вопрос что он делает и зачем. Что хранится в этих таблицах table1 и table2 и как они проиндексированы? Сейчас получается, что сравниваются имена бафов в таблицах под одним и тем же индексом. Ну и если индексы не с 0 (а может и с пропусками) или во второй таблице не будет элемента с таким индексом, то вылезет ошибка

В таблце 1 хранятся заранее определенные имена {"текст","текст","текст"}

Во вторую таблицу я через цикл записываю имена бафов которые есть на персонаже.

Как раз в фунции сравнию значения одной и второй таблицы и если нахожу совпадения, то вывожу в лог.

Единственное что в коде нету обнуления индекса

Надеюсь корректно пояснил)
*Обнуляю индекс buffIndex чтоб он начинал с первого элемента заново проходить (до тех пор пока не найдет совпадение по этому индексу

Edited by Oceangrave
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use