Language
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Language
public plugin_init() { register_dictionary("langfile.txt") }
client_print(id, print_chat, "%L", id, "LANG_TEXT")
client_print(0, print_chat, "%L", LANG_PLAYER, "LANG_TEXT")
langfile.txt:
[en]
LANG_TEXT = Hello
[lt]
LANG_TEXT = Labas
client_print(id, print_chat, "%L", id, "LANG_TEXT")
client_print(0, print_chat, "%L", LANG_PLAYER, "LANG_TEXT")
langfile.txt:
[en]
LANG_TEXT = Hello
[lt]
LANG_TEXT = Labas
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: Language
Blin sufailinau galvodamas. ;D Pasakysiu pilnai ko man reikia.
Turiu tą ad_manager pluginą.
http://forums.alliedmods.net/showthread.php?t=27814
Ir man reikia, kad būtų skirtingi .ini failai, su skirtingomis kalbomis.
Turiu tą ad_manager pluginą.
http://forums.alliedmods.net/showthread.php?t=27814
Ir man reikia, kad būtų skirtingi .ini failai, su skirtingomis kalbomis.
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Language
Jei nori su multilangual daryti, tai teks visus tuos tekstus rašyti tame lang failiuke. Kitu atveju visai kitaip reikės pluginą kurti. Su pačiu multilangual nepadarysi, teks jį pačiam daryti, kad skaitytų tam tikrą ini failiuką reikiamam vartotojui.
Kad gauti vartotojo kalbą, tai su funkcija:
Kad gauti vartotojo kalbą, tai su funkcija:
Code: Select all
new lang[4]get_user_info(id, "lang", charsmax(lang), lang)
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: Language
Aišku. Pats bandysiu pasidaryti tada. O galima padaryti su if, else, sakykim:
Aišku, čia neteisingas būdas man atrodo. ;D
Code: Select all
if(lang == en) {}
- aaarnas
- Vyr. diskusijų administratorius
- Posts: 3891
- Joined: 2010 Aug 31 13:21
- Skype: fiarno
- Contact:
Re: Language
if(equal(lang, "en"))
arba
if(lang[0] == 'e' && lang[1] == 'n')
Jei labai daug kalbų, tai galima dar su switch žaisti, bet užteks equal.
Geriausia tai susirašyti ini faile panašiai kaip ir lang faile pvz:
[en]
rašau visus angliškus
[lt]
rašai visus lietuviškus.
Po to užkrauni į cellarray (arba trie) ir tikrini pagal tai ar yra tokia kalba užkrauta, tai rodai tokias žinutes, ne tai kitu atveju. Na čia kaip padarysi taip. Daryk ir išmoksi.
arba
if(lang[0] == 'e' && lang[1] == 'n')
Jei labai daug kalbų, tai galima dar su switch žaisti, bet užteks equal.
Geriausia tai susirašyti ini faile panašiai kaip ir lang faile pvz:
[en]
rašau visus angliškus
[lt]
rašai visus lietuviškus.
Po to užkrauni į cellarray (arba trie) ir tikrini pagal tai ar yra tokia kalba užkrauta, tai rodai tokias žinutes, ne tai kitu atveju. Na čia kaip padarysi taip. Daryk ir išmoksi.
Palikau CS pasaulį ;/ . Nebepasiekiamas.
Re: Language
Na su cellarray aš dar nemoku. Bet radau kodą, tik neišsprendžiu kaip lang padaryti.
Code: Select all
#include <amxmodx>#include <amxmisc> #define PLUGIN "Easy Advertiser"#define VERSION "1.3.1"#define AUTHOR "Aver" #define MAX_ADS 32 new gCvarTime;new gMsgSayText; new Array:gAdvertisements;new gAdvertisement; public plugin_init(){ register_plugin(PLUGIN, VERSION, AUTHOR); gCvarTime = register_cvar("ea_time", "45"); gMsgSayText = get_user_msgid("SayText"); gAdvertisements = ArrayCreate(192, MAX_ADS); set_task(10.0, "LoadAdvertisements");} public LoadAdvertisements(){ new file[64]; get_configsdir(file, charsmax(file)); formatex(file, charsmax(file), "%s/easy_advertiser.ini", file); if(file_exists(file)) { new fHandle = fopen(file, "rt"); if(!fHandle) return; new szLine[192]; for(new i; i < MAX_ADS && !feof(fHandle); i++) { fgets(fHandle, szLine, charsmax(szLine)); if(!szLine[0] || szLine[0] == ' ' || szLine[0] == ';') { i--; continue; } ArrayPushString(gAdvertisements, szLine); } set_task(get_pcvar_float(gCvarTime), "ShowAdvertisement"); fclose(fHandle); } else log_amx("Brak pliku 'easy_advertiser.ini' na serwerze");} public ShowAdvertisement(){ if(gAdvertisement >= ArraySize(gAdvertisements)) gAdvertisement = 0; new szText[192]; formatex(szText, charsmax(szText), "%a", ArrayGetStringHandle(gAdvertisements, gAdvertisement)); if(contain(szText, "[team]") != -1 && contain(szText, "[/team]") != -1) { replace_all(szText, charsmax(szText), "[team]", "^x03"); replace_all(szText, charsmax(szText), "[/team]", "^x01"); } if(contain(szText, "[green]") != -1 && contain(szText, "[/green]") != -1) { replace_all(szText, charsmax(szText), "[green]", "^x04"); replace_all(szText, charsmax(szText), "[/green]", "^x01"); } new players[32], num; get_players(players, num, "ch"); if(contain(szText, "[you]") != -1) { for(new i; i < num; i++) { new szTemp[192], szName[32]; copy(szTemp, charsmax(szTemp), szText); get_user_name(players[i], szName, charsmax(szName)); replace_all(szTemp, charsmax(szTemp), "[you]", szName); message_begin(MSG_ONE, gMsgSayText, {0,0,0}, players[i]); write_byte(players[i]); write_string(szTemp); message_end(); } } else { for(new i; i < num; i++) { message_begin(MSG_ONE, gMsgSayText, {0,0,0}, players[i]); write_byte(players[i]); write_string(szText); message_end(); } } gAdvertisement++; set_task(get_pcvar_float(gCvarTime), "ShowAdvertisement");}
Who is online
Users browsing this forum: No registered users and 4 guests