SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Русский/Russian (https://forum.sa-mp.com/forumdisplay.php?f=32)
-   -   Видимость переменных в include (https://forum.sa-mp.com/showthread.php?t=668243)

wowowo 27/07/2019 03:51 PM

Видимость переменных в include
 
Здравствуйте.

Немного предыстории:
- сделал себе мультиязычность в моде посредством: глобального двухмерного массива (translate[ID Текста][Язык текста{0 - RU, 1 - EN}]) и добавлением в enum информации об игроках (pInfo) переменную pLanguage;
- решил вынести все TextDraw'ы из основного pwn-файла в include.
- создал PlayerTextDraw'ы по такому принципу: CreatePlayerTextDraw(playerid, TDName[playerid][0], translate[TextID][PlayerInfo[playerid][pLanguage]]); и засунул их все в одну функцию (CreatePlayerTextDraws(playerid)), которую в моде вызываю в OnPlayerConnect.

Проблема заключается в том, что при компиляции мода выдаёт ошибку о том, что в инклуде с TextDraw'ами присутствует error 017: необъявленный символ "PlayerInfo".

Собственно, вопрос заключается в том, как можно исправить данную проблему (ошибку)?

P.S. Добавить язык в качестве параметра функции CreatePlayerTextDraws(playerid) не вариант, т.к. в данном инклуде присутствуют ещё функции связанные с отображением / скрытием целых композиций из TextDraw и добавлять в каждую из них такой параметр не считаю целесообразным (по крайней мере в своём моде).

Romzes24 27/07/2019 06:19 PM

Re: Видимость переменных в include
 
Quote:

Originally Posted by wowowo (Post 4107721)
Собственно, вопрос заключается в том, как можно исправить данную проблему (ошибку)?

Нужно подключить инклуд ниже создания массива PlayerInfo.

wowowo 28/07/2019 01:09 PM

Re: Видимость переменных в include
 
Quote:

Originally Posted by Romzes24 (Post 4107734)
Нужно подключить инклуд ниже создания массива PlayerInfo.

Пробовал. Не вариант, потому что по умолчанию игроку присваивается pLanguage = 0 (т.е. язык - русский) и поэтому в инклуде с TextDraw'ами pLanguage всего равно нулю (соответственно, всегда отображается русский язык, даже если выбран английский).
В конце мода тоже не вариант, т.к. тогда появляются ошибки #17 о неизвестных переменных TextDraw'ов.

eakwarp 28/07/2019 03:45 PM

Re: Видимость переменных в include
 
функция для управления и присвоения пары переменных тебя спасет.

wowowo 29/07/2019 05:45 PM

Re: Видимость переменных в include
 
Quote:

Originally Posted by eakwarp (Post 4107848)
функция для управления и присвоения пары переменных тебя спасет.

Немного не понял. Можешь объяснить подробнее или привести пример?

eakwarp 30/07/2019 09:38 AM

Re: Видимость переменных в include
 
Размещаешь подключение инклюда ниже плеер инфо, пилишь отдельную функцию для установки planguage=1, используешь ее в инклюде с текстдравами.


All times are GMT. The time now is 10:22 AM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.