Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Сравнение строк


GRuSHa

Рекомендуемые сообщения

Доброго времени суток всем.

Столкнулся с проблемой, нужно проверять имя шарда и в зависимости от имени выводить сообщение, но не получается сравнить строки с помощью ==  , перевожу обе строки в WString и всёравно не сравнивает, что посоветуете?

Ссылка на комментарий
Поделиться на другие сайты

Если хочется сравнивать через ==, то переводить надо в обычные строки и сравнивать их, а не WString

 

Если хочется сравнивать именно WString, то для этого есть функции:

http://alloder.pro/md/LuaApi/FunctionCompareWString.html

http://alloder.pro/md/LuaApi/FunctionCompareWStringEx.html

Ссылка на комментарий
Поделиться на другие сайты

оно не сравнивает ни в обычных строках ни в WString

Error: addon Addon:   func: ToWString, field, line: -1, defined: C, line: -1, [C]
Error: addon Addon:     func: OnGetShard, global, line: 33, defined: Lua, line: 23, [string "Mods/Addons/Addon/scripts/AddonScript.lua"]
Error: addon Addon:       func: Init, global, line: 96, defined: Lua, line: 91, [string "Mods/Addons/Addon/scripts/AddonScript.lua"]
Error: addon Addon:         func: ?, ?, line: 112, defined: main, line: 0, [string "Mods/Addons/Addon/scripts/Addon.lua"]
Error: addon Addon: Game::LuaDebugToWString: param 1 not a class nstl::basic_string<char> (type: WString), details: int __cdecl Game::LuaDebugToWString(struct lua_State *)
Ссылка на комментарий
Поделиться на другие сайты


if common.CompareWString( mission.GetShardName(), userMods.ToWString( "Нужный шард" ) ) ~=  0 then

--- some code

end


if userMods.FromWString( mission.GetShardName() ) ~= "Нужный шард" then

  --- some code

end

Ссылка на комментарий
Поделиться на другие сайты

 

оно не сравнивает ни в обычных строках ни в WString

Error: addon Addon: Game::LuaDebugToWString: param 1 not a class nstl::basic_string<char> (type: WString), details: int __cdecl Game::LuaDebugToWString(struct lua_State *)

Передаваемый в функцию ToWString параметр 1 не "nstl::basic_string<char>", а WString.

 

Т.е. вместо обычной строки (string) вы в функуию "превратить обычную строку в WideString" передаете WideString, в то время как функции нужно передать обычную строку.

В описании функции mission.GetShardName() написано что функция возвращает WString:

-- возвращаемое значение: WString - локализованное имя шарда

 

А в коде у вас наверняка используется string вроде "Ожившие Легенды". Соответственно чтобы сравнить string и WString их нужно привести к одному типу. Т.е. либо сконвертировать string в WString, либо наоборот.

 

П.С. И WString не сравниваются оператором ==, для них есть специальная функция.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования