Иконка ресурса

Advertisement Translate 2021-09-12

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
@inklesspen, поставил себе, он я так понял считывает место проживания? А возможно сделать, что бы по языку клиента игры определял?
 

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
Неетт... Он как-раз язык клиента считывает..
Всё дошло. Я балда. В файле перевода были звездочки, на которые ругался "сорсмод", но ругался он так *de* - я подумал ну нет всех языков, залил конфиг с двумя языками, потом ругался снова, и я просто снес звёздочки, всё хорошо, а третий язык не добавил, но клиент на немецком. Короче почтовые голуби не успели долететь и сообщить, что я забыл третий перевод дописать))
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
  • Автор ресурса
  • #25
Удалил инфу о типах сообщений, из-за нечитания файла
/**
Типы сообщений:
0 - В чат
1 - Хинт
2 - Центер
3 - Консоль
**/
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #26
@inklesspen, не помню писал или нет, но мне кажется вместо:
C-подобный:
"1"
    {
        "ru"
        {
            "text"    "RU Message #1\nLol"
            "type"    "0"
        }
        "en"
        {
            "text"    "EN Message #1\nLol"
            "type"    "0"
        }
    }
удобнее было бы
C-подобный:
"1"
    {
        "type"    "0"
        "ru"
        {
            "text"    "RU Message #1\nLol"
        }
        "en"
        {
            "text"    "EN Message #1\nLol"
        }
    }
А еще лучше
C-подобный:
"1"
    {
        "type"    "0"
        "ru"    "RU Message #1\nLol"
        "en"    "EN Message #1\nLol"
    }

За ; убил бы)

Дальше
PHP:
public Action ShowTheText(Handle timer)
{
    for(int client = 1;client<=64;client++)
    {
        if(YesPlayer(client))
        {
            KvRewind(KvText)
            char langcode[4]
            FormatEx(langcode, 4, "%i", text_number)
            if(!KvJumpToKey(KvText, langcode, false))
            {
                text_number=1
                if(!KvJumpToKey(KvText, "1", false))
                    return Plugin_Continue
            }
            GetLanguageInfo(GetClientLanguage(client), langcode, 4)
            if(!KvJumpToKey(KvText, langcode, false))
            {
                GetLanguageInfo(GetServerLanguage(), langcode, 4)
                if(!KvJumpToKey(KvText, langcode, false))
                    continue;
            }
            char text[256]
            KvGetString(KvText, "text", text, 256, "\0")
            if(text[0]=='\0')
                continue;
            int l = ReplaceString(text, 256, "\\n", "\n")
            switch(KvGetNum(KvText, "type", 0))
            {
                case 0:
                {
                    char[][] texts = new char[l+1][256]
                    int i = ExplodeString(text, "\n", texts, l+1, 256)
                    if(i==0)
                        CGOPrintToChat(client, text)
                    else
                    {
                        for(int o = 0;o<i;o++)
                        {
                            CGOPrintToChat(client, texts[o])
                        }
                    }
                }
                case 1:
                {
                    PrintHintText(client, text)
                }
                case 2:
                {
                    PrintCenterText(client, text)
                }
                case 3:
                {
                    char[][] texts = new char[l+1][256]
                    int i = ExplodeString(text, "\n", texts, l+1, 256)
                    if(i==0)
                        PrintToConsole(client, text)
                    else
                    {
                        for(int o = 0;o<i;o++)
                        {
                            PrintToConsole(client, texts[o])
                        }
                    }
                }
            }
        }
    }
   
    text_number++
    return Plugin_Continue
}
По идее это вообще надо переписать:
Цикл по игрокам в котором каждый раз идешь на нужный ключ и получаешь данные. Хотя по уму надо сделать чтобы цикл по игрокам был уже после получения данных и производился только для вывода сообщения.
К тому же зачем считать номера ключей если есть GotoNextKey и GotoFirstSubKey.
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
966
  • Автор ресурса
  • #27
не помню писал или нет, но мне кажется вместо:
Писал

#pragma semicolon 1 как-то не идет мне...
Я никак не могу привыкнуть ставить их и если код большой, мне куда проще просто убрать semicolon

В общем я могу переписать весь код, но квары вытянуть из этой версии.

Но это так долго( Я еще и палец порезал (Кот)... В общем если не забуду - сделаю, но потом
 

BaFeR

Добрый человек
Сообщения
721
Реакции
216
в секторе "type" какие цифры за что отвечают?
 
Сверху Снизу