diff --git a/gamemodes/sss/core/admin/player-list.pwn b/gamemodes/sss/core/admin/player-list.pwn index b0205495..9958954f 100644 --- a/gamemodes/sss/core/admin/player-list.pwn +++ b/gamemodes/sss/core/admin/player-list.pwn @@ -111,10 +111,12 @@ GetPlayerInfo(name[]) spawntime, totalspawns, warnings, + language, + lang_name[MAX_LANGUAGE_NAME], hash[41], active; - GetAccountData(name, pass, ipv4, alive, regdate, lastlog, spawntime, totalspawns, warnings, hash, active); + GetAccountData(name, pass, ipv4, alive, regdate, lastlog, spawntime, totalspawns, warnings, language, hash, active); ip = IpIntToStr(ipv4); // TODO: use a different country service @@ -122,6 +124,8 @@ GetPlayerInfo(name[]) dayslived = (gettime() > spawntime) ? (0) : ((gettime() - spawntime) / 86400); + GetLanguageName(language, lang_name); + format(info, sizeof(info), "\ IP:\t\t\t%s\n\ Country:\t\t%s\n\ @@ -130,7 +134,8 @@ GetPlayerInfo(name[]) Last Login:\t\t%s\n\ Days Survived:\t%d\n\ Lives Lived:\t\t%d\n\ - Warnings:\t\t%d", + Warnings:\t\t%d\n\ + Language:\t\t%s", ip, country, @@ -139,7 +144,8 @@ GetPlayerInfo(name[]) TimestampToDateTime(lastlog), dayslived, totalspawns, - warnings); + warnings, + lang_name); return info; } diff --git a/gamemodes/sss/core/item/tent.pwn b/gamemodes/sss/core/item/tent.pwn index a5b68c99..d0daebba 100644 --- a/gamemodes/sss/core/item/tent.pwn +++ b/gamemodes/sss/core/item/tent.pwn @@ -408,7 +408,7 @@ StartRemovingTent(playerid, Item:itemid) { StartHoldAction(playerid, 15000); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 4.0, 1, 0, 0, 0, 0); - ShowActionText(playerid, ls(playerid, "TENTREMOVE")); + ShowActionText(playerid, ls(playerid, "TENTREMOVE", true)); tnt_CurrentTentItem[playerid] = itemid; } diff --git a/gamemodes/sss/core/itemtype/defences.pwn b/gamemodes/sss/core/itemtype/defences.pwn index bfba42d8..4b7d2210 100644 --- a/gamemodes/sss/core/itemtype/defences.pwn +++ b/gamemodes/sss/core/itemtype/defences.pwn @@ -267,7 +267,7 @@ StartBuildingDefence(playerid, Item:itemid) def_CurrentDefenceItem[playerid] = itemid; StartHoldAction(playerid, GetPlayerSkillTimeModifier(playerid, 10000, "Construction")); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 4.0, 1, 0, 0, 0, 0); - ShowActionText(playerid, sprintf(ls(playerid, "DEFBUILDING"), itemtypename)); + ShowActionText(playerid, sprintf(ls(playerid, "DEFBUILDING", true), itemtypename)); return 1; } @@ -364,7 +364,7 @@ _InteractDefence(playerid, Item:itemid) } else { - ShowActionText(playerid, ls(playerid, "DEFMOVINGIT"), 3000); + ShowActionText(playerid, ls(playerid, "DEFMOVINGIT", true), 3000); defer MoveDefence(_:itemid, playerid); } } @@ -402,7 +402,7 @@ _InteractDefenceWithItem(playerid, Item:itemid, Item:tool) def_CurrentDefenceEdit[playerid] = itemid; StartHoldAction(playerid, GetPlayerSkillTimeModifier(playerid, 10000, "Construction")); ApplyAnimation(playerid, "COP_AMBIENT", "COPBROWSE_LOOP", 4.0, 1, 0, 0, 0, 0); - ShowActionText(playerid, sprintf(ls(playerid, "DEFREMOVING"), itemtypename)); + ShowActionText(playerid, sprintf(ls(playerid, "DEFREMOVING", true), itemtypename)); return 1; } @@ -411,7 +411,7 @@ _InteractDefenceWithItem(playerid, Item:itemid, Item:tool) { if(!def_TypeData[defencetype][def_movable]) { - ShowActionText(playerid, ls(playerid, "DEFNOTMOVAB")); + ShowActionText(playerid, ls(playerid, "DEFNOTMOVAB", true)); return 1; } @@ -423,7 +423,7 @@ _InteractDefenceWithItem(playerid, Item:itemid, Item:tool) StartHoldAction(playerid, GetPlayerSkillTimeModifier(playerid, 6000, "Construction")); ApplyAnimation(playerid, "COP_AMBIENT", "COPBROWSE_LOOP", 4.0, 1, 0, 0, 0, 0); - ShowActionText(playerid, sprintf(ls(playerid, "DEFMODIFYIN"), itemtypename)); + ShowActionText(playerid, sprintf(ls(playerid, "DEFMODIFYIN", true), itemtypename)); return 1; } @@ -434,7 +434,7 @@ _InteractDefenceWithItem(playerid, Item:itemid, Item:tool) GetItemArrayDataAtCell(itemid, hasmotor, _:def_motor); if(!hasmotor) { - ShowActionText(playerid, ls(playerid, "DEFNEEDMOTO")); + ShowActionText(playerid, ls(playerid, "DEFNEEDMOTO", true)); return 1; } @@ -446,7 +446,7 @@ _InteractDefenceWithItem(playerid, Item:itemid, Item:tool) StartHoldAction(playerid, GetPlayerSkillTimeModifier(playerid, 6000, "Construction")); ApplyAnimation(playerid, "COP_AMBIENT", "COPBROWSE_LOOP", 4.0, 1, 0, 0, 0, 0); - ShowActionText(playerid, sprintf(ls(playerid, "DEFMODIFYIN"), itemtypename)); + ShowActionText(playerid, sprintf(ls(playerid, "DEFMODIFYIN", true), itemtypename)); return 1; } @@ -457,7 +457,7 @@ _InteractDefenceWithItem(playerid, Item:itemid, Item:tool) GetItemArrayDataAtCell(itemid, hasmotor, _:def_motor); if(!hasmotor) { - ShowActionText(playerid, ls(playerid, "DEFNEEDMOTO")); + ShowActionText(playerid, ls(playerid, "DEFNEEDMOTO", true)); return 0; } @@ -469,7 +469,7 @@ _InteractDefenceWithItem(playerid, Item:itemid, Item:tool) StartHoldAction(playerid, GetPlayerSkillTimeModifier(playerid, 6000, "Construction")); ApplyAnimation(playerid, "COP_AMBIENT", "COPBROWSE_LOOP", 4.0, 1, 0, 0, 0, 0); - ShowActionText(playerid, sprintf(ls(playerid, "DEFMODIFYIN"), itemtypename)); + ShowActionText(playerid, sprintf(ls(playerid, "DEFMODIFYIN", true), itemtypename)); return 1; } @@ -539,7 +539,7 @@ hook OnHoldActionFinish(playerid) _UpdateDefenceTweakArrow(playerid, itemid); PlayerGainSkillExperience(playerid, "Construction"); - ShowHelpTip(playerid, ls(playerid, "TIPTWEAKDEF")); + ShowHelpTip(playerid, ls(playerid, "TIPTWEAKDEF", true)); return Y_HOOKS_BREAK_RETURN_0; } @@ -555,7 +555,7 @@ hook OnHoldActionFinish(playerid) if(itemtype == item_Motor) { - ShowActionText(playerid, ls(playerid, "DEFINSTMOTO")); + ShowActionText(playerid, ls(playerid, "DEFINSTMOTO", true)); SetItemArrayDataAtCell(def_CurrentDefenceEdit[playerid], true, def_motor); CallLocalFunction("OnDefenceModified", "d", _:def_CurrentDefenceEdit[playerid]); @@ -565,7 +565,7 @@ hook OnHoldActionFinish(playerid) if(itemtype == item_Keypad) { - ShowActionText(playerid, ls(playerid, "DEFINSTKEYP")); + ShowActionText(playerid, ls(playerid, "DEFINSTKEYP", true)); ShowSetPassDialog_Keypad(playerid); SetItemArrayDataAtCell(def_CurrentDefenceEdit[playerid], 1, def_keypad); CallLocalFunction("OnDefenceModified", "d", _:def_CurrentDefenceEdit[playerid]); @@ -576,7 +576,7 @@ hook OnHoldActionFinish(playerid) if(itemtype == item_AdvancedKeypad) { - ShowActionText(playerid, ls(playerid, "DEFINSTADKP")); + ShowActionText(playerid, ls(playerid, "DEFINSTADKP", true)); ShowSetPassDialog_KeypadAdv(playerid); SetItemArrayDataAtCell(def_CurrentDefenceEdit[playerid], 2, def_keypad); CallLocalFunction("OnDefenceModified", "d", _:def_CurrentDefenceEdit[playerid]); @@ -600,7 +600,7 @@ hook OnHoldActionFinish(playerid) GetItemUUID(def_CurrentDefenceEdit[playerid], uuid); GetItemPos(def_CurrentDefenceEdit[playerid], x, y, z); GetItemRot(def_CurrentDefenceEdit[playerid], rz, rz, rz); - ShowActionText(playerid, ls(playerid, "DEFDISMANTL")); + ShowActionText(playerid, ls(playerid, "DEFDISMANTL", true)); GetItemTypeModel(GetItemType(def_CurrentDefenceEdit[playerid]), model); DeconstructDefence(def_CurrentDefenceEdit[playerid]); @@ -650,7 +650,7 @@ hook OnPlayerKeypadEnter(playerid, keypadid, code, match) { if(code == match) { - ShowActionText(playerid, ls(playerid, "DEFMOVINGIT"), 3000); + ShowActionText(playerid, ls(playerid, "DEFMOVINGIT", true), 3000); defer MoveDefence(_:def_CurrentDefenceOpen[playerid], playerid); def_CurrentDefenceOpen[playerid] = INVALID_ITEM_ID; } @@ -875,7 +875,7 @@ ShowEnterPassDialog_KeypadAdv(playerid, msg = 0) if(pass == defpass && strlen(inputtext) >= 4) { - ShowActionText(playerid, ls(playerid, "DEFMOVINGIT"), 3000); + ShowActionText(playerid, ls(playerid, "DEFMOVINGIT", true), 3000); defer MoveDefence(_:def_CurrentDefenceOpen[playerid], playerid); def_CurrentDefenceOpen[playerid] = INVALID_ITEM_ID; } diff --git a/gamemodes/sss/core/player/accounts.pwn b/gamemodes/sss/core/player/accounts.pwn index c04db495..4912afd6 100644 --- a/gamemodes/sss/core/player/accounts.pwn +++ b/gamemodes/sss/core/player/accounts.pwn @@ -26,8 +26,9 @@ #define FIELD_PLAYER_SPAWNTIME "spawntime" // 06 #define FIELD_PLAYER_TOTALSPAWNS "spawns" // 07 #define FIELD_PLAYER_WARNINGS "warnings" // 08 -#define FIELD_PLAYER_GPCI "gpci" // 19 -#define FIELD_PLAYER_ACTIVE "active" // 10 +#define FIELD_PLAYER_GPCI "gpci" // 09 +#define FIELD_PLAYER_LANG "lang" // 10 +#define FIELD_PLAYER_ACTIVE "active" // 11 enum { @@ -41,6 +42,7 @@ enum FIELD_ID_PLAYER_TOTALSPAWNS, FIELD_ID_PLAYER_WARNINGS, FIELD_ID_PLAYER_GPCI, + FIELD_ID_PLAYER_LANG, FIELD_ID_PLAYER_ACTIVE } @@ -84,6 +86,9 @@ DBStatement: stmt_AccountSetWarnings, DBStatement: stmt_AccountGetGpci, DBStatement: stmt_AccountSetGpci, +DBStatement: stmt_AccountGetLanguage, +DBStatement: stmt_AccountSetLanguage, + DBStatement: stmt_AccountGetActiveState, DBStatement: stmt_AccountSetActiveState, @@ -108,14 +113,15 @@ hook OnGameModeInit() "FIELD_PLAYER_TOTALSPAWNS" INTEGER,\ "FIELD_PLAYER_WARNINGS" INTEGER,\ "FIELD_PLAYER_GPCI" TEXT,\ + "FIELD_PLAYER_LANG" INTEGER,\ "FIELD_PLAYER_ACTIVE")"); db_query(gAccounts, "CREATE INDEX IF NOT EXISTS "ACCOUNTS_TABLE_PLAYER"_index ON "ACCOUNTS_TABLE_PLAYER"("FIELD_PLAYER_NAME")"); - DatabaseTableCheck(gAccounts, ACCOUNTS_TABLE_PLAYER, 11); + DatabaseTableCheck(gAccounts, ACCOUNTS_TABLE_PLAYER, 12); stmt_AccountExists = db_prepare(gAccounts, "SELECT COUNT(*) FROM "ACCOUNTS_TABLE_PLAYER" WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); - stmt_AccountCreate = db_prepare(gAccounts, "INSERT INTO "ACCOUNTS_TABLE_PLAYER" VALUES(?,?,?,1,?,?,0,0,0,?,1)"); + stmt_AccountCreate = db_prepare(gAccounts, "INSERT INTO "ACCOUNTS_TABLE_PLAYER" VALUES(?,?,?,1,?,?,0,0,0,0,?,1)"); stmt_AccountLoad = db_prepare(gAccounts, "SELECT * FROM "ACCOUNTS_TABLE_PLAYER" WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); stmt_AccountUpdate = db_prepare(gAccounts, "UPDATE "ACCOUNTS_TABLE_PLAYER" SET "FIELD_PLAYER_ALIVE"=?, "FIELD_PLAYER_WARNINGS"=? WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); @@ -146,6 +152,9 @@ hook OnGameModeInit() stmt_AccountGetGpci = db_prepare(gAccounts, "SELECT "FIELD_PLAYER_GPCI" FROM "ACCOUNTS_TABLE_PLAYER" WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); stmt_AccountSetGpci = db_prepare(gAccounts, "UPDATE "ACCOUNTS_TABLE_PLAYER" SET "FIELD_PLAYER_GPCI"=? WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); + stmt_AccountGetLanguage = db_prepare(gAccounts, "SELECT "FIELD_PLAYER_LANG" FROM "ACCOUNTS_TABLE_PLAYER" WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); + stmt_AccountSetLanguage = db_prepare(gAccounts, "UPDATE "ACCOUNTS_TABLE_PLAYER" SET "FIELD_PLAYER_LANG"=? WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); + stmt_AccountGetActiveState = db_prepare(gAccounts, "SELECT "FIELD_PLAYER_ACTIVE" FROM "ACCOUNTS_TABLE_PLAYER" WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); stmt_AccountSetActiveState = db_prepare(gAccounts, "UPDATE "ACCOUNTS_TABLE_PLAYER" SET "FIELD_PLAYER_ACTIVE"=? WHERE "FIELD_PLAYER_NAME"=? COLLATE NOCASE"); @@ -186,6 +195,7 @@ Error:LoadAccount(playerid) spawntime, spawns, warnings, + language, active; GetPlayerName(playerid, name, MAX_PLAYER_NAME); @@ -220,6 +230,7 @@ Error:LoadAccount(playerid) stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_SPAWNTIME, DB::TYPE_INTEGER, spawntime); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_TOTALSPAWNS, DB::TYPE_INTEGER, spawns); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_WARNINGS, DB::TYPE_INTEGER, warnings); + stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_LANG, DB::TYPE_INTEGER, language); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_ACTIVE, DB::TYPE_INTEGER, active); if(!stmt_execute(stmt_AccountLoad)) @@ -249,6 +260,7 @@ Error:LoadAccount(playerid) } SetPlayerAliveState(playerid, alive); + SetPlayerLanguage(playerid, language); acc_IsNewPlayer[playerid] = false; acc_HasAccount[playerid] = true; @@ -768,7 +780,7 @@ SavePlayerData(playerid) ==============================================================================*/ -stock GetAccountData(name[], pass[], &ipv4, &alive, ®date, &lastlog, &spawntime, &totalspawns, &warnings, gpci[], &active) +stock GetAccountData(name[], pass[], &ipv4, &alive, ®date, &lastlog, &spawntime, &totalspawns, &warnings, &language, gpci[], &active) { stmt_bind_value(stmt_AccountLoad, 0, DB::TYPE_STRING, name, MAX_PLAYER_NAME); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_PASS, DB::TYPE_STRING, pass, MAX_PASSWORD_LEN); @@ -779,6 +791,7 @@ stock GetAccountData(name[], pass[], &ipv4, &alive, ®date, &lastlog, &spawnti stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_SPAWNTIME, DB::TYPE_INTEGER, spawntime); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_TOTALSPAWNS, DB::TYPE_INTEGER, totalspawns); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_WARNINGS, DB::TYPE_INTEGER, warnings); + stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_LANG, DB::TYPE_INTEGER, language); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_GPCI, DB::TYPE_STRING, gpci, 41); stmt_bind_result_field(stmt_AccountLoad, FIELD_ID_PLAYER_ACTIVE, DB::TYPE_INTEGER, active); @@ -1010,6 +1023,28 @@ stock SetAccountGPCI(const name[], gpci[MAX_GPCI_LEN]) return stmt_execute(stmt_AccountSetGpci); } +// FIELD_ID_PLAYER_LANG +stock GetAccountLanguage(const name[], &languageid) +{ + stmt_bind_result_field(stmt_AccountGetLanguage, 0, DB::TYPE_INTEGER, languageid); + stmt_bind_value(stmt_AccountGetLanguage, 0, DB::TYPE_STRING, name, MAX_PLAYER_NAME); + + if(!stmt_execute(stmt_AccountGetLanguage)) + return 0; + + stmt_fetch_row(stmt_AccountGetLanguage); + + return 1; +} + +stock SetAccountLanguage(const name[], languageid) +{ + stmt_bind_value(stmt_AccountSetLanguage, 0, DB::TYPE_INTEGER, languageid); + stmt_bind_value(stmt_AccountSetLanguage, 1, DB::TYPE_STRING, name, MAX_PLAYER_NAME); + + return stmt_execute(stmt_AccountSetLanguage); +} + // FIELD_ID_PLAYER_ACTIVE stock GetAccountActiveState(const name[], &active) { diff --git a/gamemodes/sss/core/player/commands.pwn b/gamemodes/sss/core/player/commands.pwn index 1bf1d7c1..00ecc0b6 100644 --- a/gamemodes/sss/core/player/commands.pwn +++ b/gamemodes/sss/core/player/commands.pwn @@ -81,8 +81,8 @@ CMD:restartinfo(playerid, params[]) { gBigString[playerid][0] = EOS; - strcat(gBigString[playerid], sprintf(ls(playerid, "GENCOMDRES1"), floatround(gServerMaxUptime / 3600))); - strcat(gBigString[playerid], ls(playerid, "GENCOMDRES2")); + strcat(gBigString[playerid], sprintf(ls(playerid, "GENCOMDRES1", false), floatround(gServerMaxUptime / 3600))); + strcat(gBigString[playerid], ls(playerid, "GENCOMDRES2", false)); Dialog_Show(playerid, DIALOG_STYLE_MSGBOX, "Information about "C_BLUE"Server Restarts", gBigString[playerid], "Close", ""); diff --git a/gamemodes/sss/core/player/language.pwn b/gamemodes/sss/core/player/language.pwn index 4184730b..112cc994 100644 --- a/gamemodes/sss/core/player/language.pwn +++ b/gamemodes/sss/core/player/language.pwn @@ -17,7 +17,7 @@ static lang_PlayerLanguage[MAX_PLAYERS]; -#define ls(%0,%1) GetLanguageString(GetPlayerLanguage(%0), %1) +#define ls(%0,%1,%2) GetLanguageString(GetPlayerLanguage(%0), %1, %2) hook OnPlayerConnect(playerid) { @@ -33,6 +33,15 @@ stock GetPlayerLanguage(playerid) return lang_PlayerLanguage[playerid]; } +stock SetPlayerLanguage(playerid, languageid) +{ + if(!IsPlayerConnected(playerid)) + return -1; + + lang_PlayerLanguage[playerid] = languageid; + return 1; +} + ShowLanguageMenu(playerid) { new @@ -54,12 +63,31 @@ ShowLanguageMenu(playerid) if(response) { lang_PlayerLanguage[playerid] = listitem; - ChatMsgLang(playerid, YELLOW, "LANGCHANGE"); + + new lang_name[MAX_LANGUAGE_NAME]; + + GetLanguageName(listitem, lang_name); + + ChatMsgLang(playerid, BLUE, "LANGCHANGE", lang_name); + + if(!IsPlayerRegistered(playerid)) { + DisplayRegisterPrompt(playerid); + } else { + new name[MAX_PLAYER_NAME]; + GetPlayerName(playerid, name, MAX_PLAYER_NAME); + SetAccountLanguage(name, listitem); + } } } Dialog_ShowCallback(playerid, using inline Response, DIALOG_STYLE_LIST, "Choose language:", langlist, "Select", "Cancel"); } +hook OnPlayerRegister(playerid) { + new name[MAX_PLAYER_NAME]; + GetPlayerName(playerid, name, MAX_PLAYER_NAME); + SetAccountLanguage(name, lang_PlayerLanguage[playerid]); +} + hook OnPlayerSave(playerid, filename[]) { new data[1]; diff --git a/gamemodes/sss/core/player/player.pwn b/gamemodes/sss/core/player/player.pwn index f2336a3e..eb29c9f2 100644 --- a/gamemodes/sss/core/player/player.pwn +++ b/gamemodes/sss/core/player/player.pwn @@ -169,7 +169,8 @@ timer LoadAccountDelay[5000](playerid) Logger_P(playerid), Logger_I("result", _:e) ); - DisplayRegisterPrompt(playerid); + + ShowLanguageMenu(playerid); } if(e == Error:1) // Account does exist, prompt login diff --git a/gamemodes/sss/core/player/spawn.pwn b/gamemodes/sss/core/player/spawn.pwn index bbeab700..ff6c2be1 100644 --- a/gamemodes/sss/core/player/spawn.pwn +++ b/gamemodes/sss/core/player/spawn.pwn @@ -249,8 +249,8 @@ PlayerCreateNewCharacter(playerid) if(IsPlayerLoggedIn(playerid)) { - PlayerTextDrawSetString(playerid, ClassButtonMale[playerid], sprintf("~n~%s~n~~n~", ls(playerid, "GENDER_M"))); - PlayerTextDrawSetString(playerid, ClassButtonFemale[playerid], sprintf("~n~%s~n~~n~", ls(playerid, "GENDER_F"))); + PlayerTextDrawSetString(playerid, ClassButtonMale[playerid], sprintf("~n~%s~n~~n~", ls(playerid, "GENDER_M", true))); + PlayerTextDrawSetString(playerid, ClassButtonFemale[playerid], sprintf("~n~%s~n~~n~", ls(playerid, "GENDER_F", true))); PlayerTextDrawShow(playerid, ClassButtonMale[playerid]); PlayerTextDrawShow(playerid, ClassButtonFemale[playerid]); SelectTextDraw(playerid, 0xFFFFFF88); diff --git a/gamemodes/sss/core/player/tutorial.pwn b/gamemodes/sss/core/player/tutorial.pwn index 1c43555b..3fe7139c 100644 --- a/gamemodes/sss/core/player/tutorial.pwn +++ b/gamemodes/sss/core/player/tutorial.pwn @@ -34,7 +34,7 @@ forward OnPlayerHolsteredItem(playerid, Item:itemid); hook OnPlayerLoadAccount(playerid) { - ClassButtonTutorial[playerid] =CreatePlayerTextDraw(playerid, 320.000000, 300.000000, ls(playerid, "TUTORPROMPT")); + ClassButtonTutorial[playerid] =CreatePlayerTextDraw(playerid, 320.000000, 300.000000, ls(playerid, "TUTORPROMPT", true)); PlayerTextDrawAlignment (playerid, ClassButtonTutorial[playerid], 2); PlayerTextDrawBackgroundColor (playerid, ClassButtonTutorial[playerid], 255); PlayerTextDrawFont (playerid, ClassButtonTutorial[playerid], 1); @@ -71,7 +71,7 @@ hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) PlayerTutorialWorld[playerid] = TutorialWorld; TutorialWorld++; - TutUI_Keys[playerid] =CreatePlayerTextDraw(playerid, 390.000000, 140.000000, ls(playerid, "TUTORKEYSPR")); + TutUI_Keys[playerid] =CreatePlayerTextDraw(playerid, 390.000000, 140.000000, ls(playerid, "TUTORKEYSPR", true)); PlayerTextDrawBackgroundColor (playerid, TutUI_Keys[playerid], 255); PlayerTextDrawFont (playerid, TutUI_Keys[playerid], 1); PlayerTextDrawLetterSize (playerid, TutUI_Keys[playerid], 0.300000, 1.500000); @@ -83,7 +83,7 @@ hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) PlayerTextDrawBoxColor (playerid, TutUI_Keys[playerid], 100); PlayerTextDrawTextSize (playerid, TutUI_Keys[playerid], 480.000000, 0.000000); - TutUI_Watch[playerid] =CreatePlayerTextDraw(playerid, 83.000000, 250.000000, ls(playerid, "TUTORWATCHI")); + TutUI_Watch[playerid] =CreatePlayerTextDraw(playerid, 83.000000, 250.000000, ls(playerid, "TUTORWATCHI", true)); PlayerTextDrawAlignment (playerid, TutUI_Watch[playerid], 2); PlayerTextDrawBackgroundColor (playerid, TutUI_Watch[playerid], 255); PlayerTextDrawFont (playerid, TutUI_Watch[playerid], 1); @@ -96,7 +96,7 @@ hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) PlayerTextDrawBoxColor (playerid, TutUI_Watch[playerid], 100); PlayerTextDrawTextSize (playerid, TutUI_Watch[playerid], 0.000000, 150.000000); - TutUI_Stats[playerid] =CreatePlayerTextDraw(playerid, 390.000000, 20.000000, ls(playerid, "TUTORHPAPEN")); + TutUI_Stats[playerid] =CreatePlayerTextDraw(playerid, 390.000000, 20.000000, ls(playerid, "TUTORHPAPEN", true)); PlayerTextDrawBackgroundColor (playerid, TutUI_Stats[playerid], 255); PlayerTextDrawFont (playerid, TutUI_Stats[playerid], 1); PlayerTextDrawLetterSize (playerid, TutUI_Stats[playerid], 0.300000, 1.500000); @@ -108,7 +108,7 @@ hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) PlayerTextDrawBoxColor (playerid, TutUI_Stats[playerid], 100); PlayerTextDrawTextSize (playerid, TutUI_Stats[playerid], 480.000000, 0.000000); - TutUI_Exit[playerid] =CreatePlayerTextDraw(playerid, 484.000000, 280.000000, ls(playerid, "TUTOREXITCM")); + TutUI_Exit[playerid] =CreatePlayerTextDraw(playerid, 484.000000, 280.000000, ls(playerid, "TUTOREXITCM", true)); PlayerTextDrawBackgroundColor (playerid, TutUI_Exit[playerid], 255); PlayerTextDrawFont (playerid, TutUI_Exit[playerid], 1); PlayerTextDrawLetterSize (playerid, TutUI_Exit[playerid], 0.300000, 1.500000); @@ -161,7 +161,7 @@ hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) SetPlayerBrightness(playerid, 255); - ShowHelpTip(playerid, ls(playerid, "TUTORINTROD")); + ShowHelpTip(playerid, ls(playerid, "TUTORINTROD", true)); PlayerInTutorial[playerid] = true; ToggleTutorialUI(playerid, true); @@ -277,7 +277,7 @@ hook OnPlayerWearBag(playerid, Item:itemid) { if(PlayerInTutorial[playerid]) { - ShowHelpTip(playerid, ls(playerid, "TUTORACCBAG")); + ShowHelpTip(playerid, ls(playerid, "TUTORACCBAG", true)); } return 0; @@ -290,7 +290,7 @@ hook OnPlayerOpenInventory(playerid) { ToggleTutorialUI(playerid, false); - ShowHelpTip(playerid, ls(playerid, "TUTORINTINV")); + ShowHelpTip(playerid, ls(playerid, "TUTORINTINV", true)); } return Y_HOOKS_CONTINUE_RETURN_0; @@ -307,7 +307,7 @@ hook OnPlayerOpenContainer(playerid, Container:containerid) GetItemArrayDataAtCell(GetPlayerBagItem(playerid), _:bagcontainer, 1); if(containerid == bagcontainer) { - ShowHelpTip(playerid, ls(playerid, "TUTORINTBAG")); + ShowHelpTip(playerid, ls(playerid, "TUTORINTBAG", true)); } } @@ -339,7 +339,7 @@ hook OnPlayerViewCntOpt(playerid, Container:containerid) GetContainerSlotItem(containerid, slot, itemid); if(GetItemType(itemid) == item_Wrench) { - ShowHelpTip(playerid, ls(playerid, "TUTORITMOPT")); + ShowHelpTip(playerid, ls(playerid, "TUTORITMOPT", true)); } } @@ -350,7 +350,7 @@ hook OnPlayerDroppedItem(playerid, Item:itemid) { if(PlayerInTutorial[playerid]) { - ShowHelpTip(playerid, ls(playerid, "TUTORDROITM")); + ShowHelpTip(playerid, ls(playerid, "TUTORDROITM", true)); } return Y_HOOKS_CONTINUE_RETURN_0; @@ -360,7 +360,7 @@ hook OnItemAddedToInventory(playerid, Item:itemid, slot) { if(PlayerInTutorial[playerid]) { - ShowHelpTip(playerid, ls(playerid, "TUTORINVADD")); + ShowHelpTip(playerid, ls(playerid, "TUTORINVADD", true)); } return Y_HOOKS_CONTINUE_RETURN_0; @@ -370,7 +370,7 @@ hook OnPlayerViewInvOpt(playerid) { if(PlayerInTutorial[playerid]) { - ShowHelpTip(playerid, ls(playerid, "TUTORITMOPT")); + ShowHelpTip(playerid, ls(playerid, "TUTORITMOPT", true)); } return Y_HOOKS_CONTINUE_RETURN_0; @@ -386,11 +386,11 @@ hook OnItemAddedToContainer(Container:containerid, Item:itemid, playerid) GetItemArrayDataAtCell(GetPlayerBagItem(playerid), _:bagcontainer, 1); if(containerid == bagcontainer) { - ShowHelpTip(playerid, ls(playerid, "TUTORADDBAG")); + ShowHelpTip(playerid, ls(playerid, "TUTORADDBAG", true)); } else { - ShowHelpTip(playerid, ls(playerid, "TUTORADDCNT")); + ShowHelpTip(playerid, ls(playerid, "TUTORADDCNT", true)); } } } @@ -402,7 +402,7 @@ hook OnPlayerHolsteredItem(playerid, Item:itemid) { if(PlayerInTutorial[playerid]) { - ShowHelpTip(playerid, ls(playerid, "TUTORITMHOL")); + ShowHelpTip(playerid, ls(playerid, "TUTORITMHOL", true)); } return Y_HOOKS_CONTINUE_RETURN_0; @@ -412,7 +412,7 @@ hook OnPlayerUseItemWithItem(playerid, Item:itemid, Item:withitemid) { if(PlayerInTutorial[playerid]) { - ShowHelpTip(playerid, ls(playerid, "TUTORITMUSE")); + ShowHelpTip(playerid, ls(playerid, "TUTORITMUSE", true)); } } diff --git a/gamemodes/sss/core/server/language.pwn b/gamemodes/sss/core/server/language.pwn index d43c425b..9b298ac1 100644 --- a/gamemodes/sss/core/server/language.pwn +++ b/gamemodes/sss/core/server/language.pwn @@ -480,7 +480,7 @@ static stock _GetLanguageString(languageid, const key[], result[], bool:encode = /* Credit for this function goes to Y_Less: http://forum.sa-mp.com/showpost.php?p=3015480&postcount=6 -*/ + stock ConvertEncoding(string[]) { static const @@ -513,10 +513,10 @@ stock ConvertEncoding(string[]) } } } - +*/ /* Not sure where this code came from... random pastebin link! - +*/ stock ConvertEncoding(string[]) { for(new i = 0, len = strlen(string); i != len; ++i) @@ -540,7 +540,7 @@ stock ConvertEncoding(string[]) } } } -*/ + stock GetLanguageList(list[][]) { for(new i; i < lang_Total; i++) diff --git a/gamemodes/sss/core/ui/key-actions.pwn b/gamemodes/sss/core/ui/key-actions.pwn index 177c935e..48613764 100644 --- a/gamemodes/sss/core/ui/key-actions.pwn +++ b/gamemodes/sss/core/ui/key-actions.pwn @@ -425,22 +425,22 @@ _ShowRepairTip(playerid, vehicleid) if(health <= VEHICLE_HEALTH_CHUNK_2) { - ShowHelpTip(playerid, ls(playerid, "TUTORVEHVER"), 20000); + ShowHelpTip(playerid, ls(playerid, "TUTORVEHVER", true), 20000); return; } else if(health <= VEHICLE_HEALTH_CHUNK_3) { - ShowHelpTip(playerid, ls(playerid, "TUTORVEHBRO"), 20000); + ShowHelpTip(playerid, ls(playerid, "TUTORVEHBRO", true), 20000); return; } else if(health <= VEHICLE_HEALTH_CHUNK_4) { - ShowHelpTip(playerid, ls(playerid, "TUTORVEHBIT"), 20000); + ShowHelpTip(playerid, ls(playerid, "TUTORVEHBIT", true), 20000); return; } else if(health <= VEHICLE_HEALTH_MAX) { - ShowHelpTip(playerid, ls(playerid, "TUTORVEHSLI"), 20000); + ShowHelpTip(playerid, ls(playerid, "TUTORVEHSLI", true), 20000); return; } diff --git a/gamemodes/sss/core/ui/tool-tip.pwn b/gamemodes/sss/core/ui/tool-tip.pwn index 8648b069..259932de 100644 --- a/gamemodes/sss/core/ui/tool-tip.pwn +++ b/gamemodes/sss/core/ui/tool-tip.pwn @@ -77,7 +77,7 @@ hook OnPlayerPickUpItem(playerid, Item:itemid) format(itemtipkey, sizeof(itemtipkey), "%s_T", itemname); itemtipkey[11] = EOS; - format(str, sizeof(str), "%s~n~~n~~b~Type /tooltips to toggle these messages", ls(playerid, itemtipkey, true)); + format(str, sizeof(str), "%s~n~~n~~b~%s", ls(playerid, itemtipkey, true), ls(playerid, "TOOLTIPTG", true)); ShowHelpTip(playerid, str, 20000); } diff --git a/gamemodes/sss/core/vehicle/lock-break.pwn b/gamemodes/sss/core/vehicle/lock-break.pwn index dfb90c3f..1c28c774 100644 --- a/gamemodes/sss/core/vehicle/lock-break.pwn +++ b/gamemodes/sss/core/vehicle/lock-break.pwn @@ -32,7 +32,7 @@ hook OnPlayerInteractVehicle(playerid, vehicleid, Float:angle) { if(GetVehicleLockState(vehicleid) == E_LOCK_STATE_EXTERNAL) { - ShowActionText(playerid, ls(playerid, "LOCKBREAKNO"), 8000); + ShowActionText(playerid, ls(playerid, "LOCKBREAKNO", true), 8000); return Y_HOOKS_CONTINUE_RETURN_0; } @@ -68,7 +68,7 @@ StartBreakingVehicleLock(playerid, vehicleid, type) return 0; cro_OpenType[playerid] = 0; - ShowActionText(playerid, ls(playerid, "LOCKBREAKDR"), 6000); + ShowActionText(playerid, ls(playerid, "LOCKBREAKDR", true), 6000); } if(type == 1) @@ -77,7 +77,7 @@ StartBreakingVehicleLock(playerid, vehicleid, type) return 0; cro_OpenType[playerid] = 1; - ShowActionText(playerid, ls(playerid, "LOCKBREAKTR"), 6000); + ShowActionText(playerid, ls(playerid, "LOCKBREAKTR", true), 6000); } cro_TargetVehicle[playerid] = vehicleid; diff --git a/gamemodes/sss/core/vehicle/lock.pwn b/gamemodes/sss/core/vehicle/lock.pwn index 25301d10..799e1891 100644 --- a/gamemodes/sss/core/vehicle/lock.pwn +++ b/gamemodes/sss/core/vehicle/lock.pwn @@ -70,10 +70,10 @@ hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) if(!IsPlayerInVehicle(playerid, vehicleid)) { if(lock_Status[vehicleid] == E_LOCK_STATE_DEFAULT) - ShowActionText(playerid, ls(playerid, "LOCKUSECROW"), 6000); + ShowActionText(playerid, ls(playerid, "LOCKUSECROW", true), 6000); else if(lock_Status[vehicleid] == E_LOCK_STATE_EXTERNAL) - ShowActionText(playerid, ls(playerid, "LOCKCUSTOML"), 6000); + ShowActionText(playerid, ls(playerid, "LOCKCUSTOML", true), 6000); } } } diff --git a/gamemodes/sss/core/vehicle/player-vehicle.pwn b/gamemodes/sss/core/vehicle/player-vehicle.pwn index 980a90e8..32892231 100644 --- a/gamemodes/sss/core/vehicle/player-vehicle.pwn +++ b/gamemodes/sss/core/vehicle/player-vehicle.pwn @@ -686,7 +686,7 @@ _SaveIfOwnedBy(vehicleid, playerid) return 0; } - ShowActionText(playerid, sprintf(ls(playerid, "VEHICLSAVED"), vehiclename), 5000); + ShowActionText(playerid, sprintf(ls(playerid, "VEHICLSAVED", true), vehiclename), 5000); _SaveVehicle(vehicleid); @@ -704,7 +704,7 @@ _PlayerUpdateVehicle(playerid, vehicleid) _UpdatePlayerVehicle(playerid, vehicleid); - ShowActionText(playerid, sprintf(ls(playerid, "VEHICLSAVED"), vehiclename), 5000); + ShowActionText(playerid, sprintf(ls(playerid, "VEHICLSAVED", true), vehiclename), 5000); return; } diff --git a/gamemodes/sss/core/world/item-tweak.pwn b/gamemodes/sss/core/world/item-tweak.pwn index 5c1a2a89..c18feee1 100644 --- a/gamemodes/sss/core/world/item-tweak.pwn +++ b/gamemodes/sss/core/world/item-tweak.pwn @@ -102,7 +102,7 @@ stock TweakItem(playerid, Item:itemid) _twk_ShowUI(playerid); _twk_ToggleMouse(playerid, false); - ShowHelpTip(playerid, ls(playerid, "TIPTWEAKITM"), 10000); + ShowHelpTip(playerid, ls(playerid, "TIPTWEAKITM", true), 10000); return 1; } @@ -159,7 +159,7 @@ _twk_Commit(playerid) _twk_HideUI(playerid); CancelSelectTextDraw(playerid); CancelPlayerMovement(playerid); - ShowActionText(playerid, ls(playerid, "ITEMTWKFINI"), 5000); + ShowActionText(playerid, ls(playerid, "ITEMTWKFINI", true), 5000); _twk_Reset(playerid); return 1; @@ -195,13 +195,13 @@ _twk_ToggleMouse(playerid, bool:toggle) { twk_Locked[playerid] = true; SelectTextDraw(playerid, 0xffff00ff); - PlayerTextDrawSetString(playerid, twk_Unlock[playerid], ls(playerid, "ITEMTWKBTNM")); + PlayerTextDrawSetString(playerid, twk_Unlock[playerid], ls(playerid, "ITEMTWKBTNM", true)); } else { twk_Locked[playerid] = false; CancelSelectTextDraw(playerid); - PlayerTextDrawSetString(playerid, twk_Unlock[playerid], ls(playerid, "ITEMTWKBTNE")); + PlayerTextDrawSetString(playerid, twk_Unlock[playerid], ls(playerid, "ITEMTWKBTNE", true)); } } @@ -328,7 +328,7 @@ _twk_AdjustItemPos(playerid, Float:distance, Float:direction, /*Float:rx, Float: if(twk_NoGoZoneCount[playerid] > 0) { - ShowActionText(playerid, ls(playerid, "ITEMTWKMOVE"), 6000); + ShowActionText(playerid, ls(playerid, "ITEMTWKMOVE", true), 6000); return 3; } @@ -349,7 +349,7 @@ _twk_AdjustItemPos(playerid, Float:distance, Float:direction, /*Float:rx, Float: if(Distance(new_x, new_y, new_z, twk_Origin[playerid][0], twk_Origin[playerid][1], twk_Origin[playerid][2]) >= MAX_MOVEMENT_RANGE) { - ShowActionText(playerid, ls(playerid, "ITEMTWKTFAR"), 6000); + ShowActionText(playerid, ls(playerid, "ITEMTWKTFAR", true), 6000); return 4; } @@ -495,7 +495,7 @@ hook OnPlayerEnterDynArea(playerid, areaid) return Y_HOOKS_CONTINUE_RETURN_0; } - ShowActionText(playerid, ls(playerid, "ITEMTWKBLOC"), 6000); + ShowActionText(playerid, ls(playerid, "ITEMTWKBLOC", true), 6000); twk_NoGoZoneCount[twk_Tweaker[Item:data[1]]]++; return Y_HOOKS_CONTINUE_RETURN_0; diff --git a/gamemodes/sss/core/world/tree.pwn b/gamemodes/sss/core/world/tree.pwn index 829f81cd..835b0b87 100644 --- a/gamemodes/sss/core/world/tree.pwn +++ b/gamemodes/sss/core/world/tree.pwn @@ -297,7 +297,7 @@ hook OnPlayerEnterDynArea(playerid, areaid) GetItemTypeName(treeSpecies_Data[tree_Data[data[1]][tree_species]][tree_harvest_item], toolname); GetItemTypeName(treeSpecies_Data[tree_Data[data[1]][tree_species]][tree_result_item], yieldname); - ShowActionText(playerid, sprintf(ls(playerid, "TREECUTINFO"), toolname, yieldname), 6000); + ShowActionText(playerid, sprintf(ls(playerid, "TREECUTINFO", true), toolname, yieldname), 6000); tree_AtTree[playerid] = data[1]; CallLocalFunction("OnPlayerEnterTreeArea", "dd", playerid, data[1]); return Y_HOOKS_CONTINUE_RETURN_0; diff --git a/scriptfiles/languages/English b/scriptfiles/languages/English index 44acdd27..c0998163 100644 --- a/scriptfiles/languages/English +++ b/scriptfiles/languages/English @@ -1,4 +1,4 @@ -LANGCHANGE= > {C_YELLOW}Language changed to English! +LANGCHANGE= > {C_YELLOW}Language changed to {C_BLUE}%s{C_YELLOW}! TENTBUILD=Building Tent... ARMINGBOMB=Arming... ARMEDBOMB5S=Armed for 5 seconds @@ -99,67 +99,67 @@ POTNOTGROWN=The plant has not fully grown yet. POTHARVESTE=Plant harvested STUNGUNOUTC=Out of charge STUNGUNCHAR=Stun Gun Charged -KICKMESSAGE= > Kicked, reason: {C_BLUE}%s -VEHNOTYOURS= > This {C_BLUE}%s{C_YELLOW} is not yours, you own a {C_BLUE}%s{C_YELLOW}. To save any vehicle, type: /vsave -VEHICLSAVED= > Vehicle ~y~%s~w~ saved! -VEHMODEALLV= > Vehicle save mode set to 'All vehicles'. When you enter ANY vehicle, it will be saved for you. -VEHMODEOWNV= > Vehicle save mode set to: 'Own vehicle'. Only your own vehicle will be saved when you drive it. If you enter another vehicle as a driver, it won't overwrite your current vehicle. -VEHMODEHELP= > Usage: /vsave [on / off] - Save vehicles when exited or entered. When 'off', you will only be able to save your own vehicle. -WARNCOUNTER= > You have %d/5 warnings. -MUTEDPERMAN= > You are muted permanently. -MUTEDTIMERM= > You are muted. Time remaining: %s -MUTEDFLOODM= > Muted from global chat for {C_ORANGE}30 {C_RED}seconds for chat flooding -RADIOGLOBAL= > You turn your radio on to the global frequency. -RADIOLOCAL= > You turned your radio off, chat is not broadcasted. -RADIOFREQUN= > You turned your radio on to frequency %.2f. -RADIOQUIET0= > You turn on your radio's global receiver, you will now see all global chat. -RADIOQUIET1= > You turn off your radio's global receiver, you will not see any global chat. -RADIOADMINC= > Admin chat activated. -CMDERROR0= > That is not a recognized command. Check the {C_BLUE}/help {C_ORANGE}dialog. -CMDERROR1= > You cannot use that command right now. -CMDERROR2= > You cannot use that command on that player right now. -CMDERROR3= > Invalid ID -CMDERROR4= > You have insufficient authority to use that command. -CMDERROR5= > You can only use that command while on {C_BLUE}administrator duty{C_RED}. -WHITELISTAC= > Whitelist active. -WHITELISTNO= > You are not in the whitelist. -PASSWORDREQ= > Password must be between 4 and 32 characters. -TOOLTIPSOFF= > Tooltips disabled -TOOLTIPSON= > Tooltips enabled -LOGGEDINREQ= > You must be logged in to use that command +KICKMESSAGE= > Kicked, reason: {C_BLUE}%s +VEHNOTYOURS= > This {C_BLUE}%s{C_YELLOW} is not yours, you own a {C_BLUE}%s{C_YELLOW}. To save any vehicle, type: /vsave +VEHICLSAVED= > Vehicle ~y~%s~w~ saved! +VEHMODEALLV= > Vehicle save mode set to 'All vehicles'. When you enter ANY vehicle, it will be saved for you. +VEHMODEOWNV= > Vehicle save mode set to: 'Own vehicle'. Only your own vehicle will be saved when you drive it. If you enter another vehicle as a driver, it won't overwrite your current vehicle. +VEHMODEHELP= > Usage: /vsave [on / off] - Save vehicles when exited or entered. When 'off', you will only be able to save your own vehicle. +WARNCOUNTER= > You have %d/5 warnings. +MUTEDPERMAN= > You are muted permanently. +MUTEDTIMERM= > You are muted. Time remaining: %s +MUTEDFLOODM= > Muted from global chat for {C_ORANGE}30 {C_RED}seconds for chat flooding +RADIOGLOBAL= > You turn your radio on to the global frequency. +RADIOLOCAL= > You turned your radio off, chat is not broadcasted. +RADIOFREQUN= > You turned your radio on to frequency %.2f. +RADIOQUIET0= > You turn on your radio's global receiver, you will now see all global chat. +RADIOQUIET1= > You turn off your radio's global receiver, you will not see any global chat. +RADIOADMINC= > Admin chat activated. +CMDERROR0= > That is not a recognized command. Check the {C_BLUE}/help {C_ORANGE}dialog. +CMDERROR1= > You cannot use that command right now. +CMDERROR2= > You cannot use that command on that player right now. +CMDERROR3= > Invalid ID +CMDERROR4= > You have insufficient authority to use that command. +CMDERROR5= > You can only use that command while on {C_BLUE}administrator duty{C_RED}. +WHITELISTAC= > Whitelist active. +WHITELISTNO= > You are not in the whitelist. +PASSWORDREQ= > Password must be between 4 and 32 characters. +TOOLTIPSOFF= > Tooltips disabled +TOOLTIPSON= > Tooltips enabled +LOGGEDINREQ= > You must be logged in to use that command CHANGEPASSW=Usage: /changepass [old pass] [new pass] -PASSCHANGED= > Password successfully changed to {C_BLUE}%s{C_YELLOW}! -PASSCHERROR= > An error occurred! Please contact an administrator -PASSCHNOMAT= > The entered password you typed doesn't match your current password. +PASSCHANGED= > Password successfully changed to {C_BLUE}%s{C_YELLOW}! +PASSCHERROR= > An error occurred! Please contact an administrator +PASSCHNOMAT= > The entered password you typed doesn't match your current password. REDUCEBLEED=Reduced bleedrate from %f to %f -AIMSHOUTHLP= > Usage: /aimshout [text] - Sets a custom string you can send by pressing the AIM and LOOK BEHIND keys at the same time. -AIMSHOUTSET= > AimShout set to '%s' -DEFLIMITREA= > ERROR: Defence entity limit reached, please inform an admin. -DEFCODEZERO= > Leaving the code at 0 will allow the code to be set again. -DEFSETPASSC= > Set a 4 digit passcode for this defence. -DEFENTERPAS= > Enter the 4 digit passcode to open this defence. -DEFINCORREC= > Incorrect passcode! -DEFTOOFASTE= > You are entering codes too fast, please wait %s. +AIMSHOUTHLP= > Usage: /aimshout [text] - Sets a custom string you can send by pressing the AIM and LOOK BEHIND keys at the same time. +AIMSHOUTSET= > AimShout set to '%s' +DEFLIMITREA= > ERROR: Defence entity limit reached, please inform an admin. +DEFCODEZERO= > Leaving the code at 0 will allow the code to be set again. +DEFSETPASSC= > Set a 4 digit passcode for this defence. +DEFENTERPAS= > Enter the 4 digit passcode to open this defence. +DEFINCORREC= > Incorrect passcode! +DEFTOOFASTE= > You are entering codes too fast, please wait %s. TENTITEMREM=Removed item %d from tent %d (GEID: %d) TENTITEMADD=Item %d added to tent %d (GEID: %d) -REPNOPFOUND= > No player could be found. -REPNOPF100M= > No player could be found within 100m -BANNEDMESSG= > {C_RED}You are banned! {C_YELLOW}Reason: {C_BLUE}%s -BANLIFMESSG= > Your ban from %s has been lifted. Do not break the rules again. -MUTEDANTIME= > Muted from global chat for {C_ORANGE}%d {C_YELLOW}seconds, Reason: {C_BLUE}%s -MUTEDREASON= > Muted from global chat, Reason: {C_BLUE}%s -MUTEDUNMUTE= > You are now un-muted. -WARNEDMESSG= > You been warned (%d/5) for: %s. 5 warnings = 1 day ban. -FREEZETIMER= > Frozen by admin for %d seconds -FREEZEFROZE= > Frozen by admin -FREEZEUNFRE= > You are now unfrozen. -TELEPORTEDT= > %P{C_YELLOW} Has teleported to you -TELEPORTEDY= > %P{C_YELLOW} Has teleported you -BUGREPORTSU= > Your bug report has been submitted! Thank you for your feedback! You can view a list of current issues with /issues. +REPNOPFOUND= > No player could be found. +REPNOPF100M= > No player could be found within 100m +BANNEDMESSG= > {C_RED}You are banned! {C_YELLOW}Reason: {C_BLUE}%s +BANLIFMESSG= > Your ban from %s has been lifted. Do not break the rules again. +MUTEDANTIME= > Muted from global chat for {C_ORANGE}%d {C_YELLOW}seconds, Reason: {C_BLUE}%s +MUTEDREASON= > Muted from global chat, Reason: {C_BLUE}%s +MUTEDUNMUTE= > You are now un-muted. +WARNEDMESSG= > You been warned (%d/5) for: %s. 5 warnings = 1 day ban. +FREEZETIMER= > Frozen by admin for %d seconds +FREEZEFROZE= > Frozen by admin +FREEZEUNFRE= > You are now unfrozen. +TELEPORTEDT= > %P{C_YELLOW} Has teleported to you +TELEPORTEDY= > %P{C_YELLOW} Has teleported you +BUGREPORTSU= > Your bug report has been submitted! Thank you for your feedback! You can view a list of current issues with /issues. BUGREPORTDI=Please give a good description of the bug and/or steps to reproduce (char limit: 128 feel free to submit multiple reports) -ARMEDRADIOB= > Cell phones synced, use phone to detonate. +ARMEDRADIOB= > Cell phones synced, use phone to detonate. RADIOTRIGGD=Triggered remote explosive -PROXMIARMED= > Proximity Mine Primed +PROXMIARMED= > Proximity Mine Primed LOCATORSYNC=Locator synced, you can now locate the phone. DISTANCEVAL=Distance: %.3f LOCATORDIS=Unable to trace the mobile phone @@ -170,6 +170,7 @@ FUELCANFULL=Fuel can is full FUELNOTPETR=Fuel can does not contain petrol DISARMEDBOM=Disarmed explosive TREECUTINFO=Hold {KEYTEXT_INTERACT} with a %s to harvest %s +TOOLTIPTG=Type /tooltips to toggle these messages TUTORPROMPT=~n~Want to try the game first?~n~~n~~y~Click here to play the tutorial!~n~~n~ TUTORKEYSPR=This tells you ~>~ what keys to press TUTORWATCHI=This is your watch.~n~It shows your facing angle,~n~current time of day,~n~and chat radio frequency.~n~~d~ @@ -423,94 +424,94 @@ AntiSepBa_T=Use this if you are bleeding, it won't infect the wound WoodLog_T=Find three of these, place them in a pile and use a Lighter on them to create a fire! Sledgeham_T=Works well hurtling towards someone's face RawFish_T=FOOD ITEM -Spanner_T=##ITEM TIP NOT SET## +Spanner_T=Item tip no set. Suitcase_T=CONTAINER ITEM -OilCan_T=##ITEM TIP NOT SET## -RadioBox_T=##ITEM TIP NOT SET## +OilCan_T=Item tip no set. +RadioBox_T=Item tip no set. BigSword_T=This ain't for cutting up fruit -Microphon_T=##ITEM TIP NOT SET## +Microphon_T=Item tip no set. Spatula_T=Slap someone with this today! Pan_T=Slap someone with this today! Knife2_T=Stab someone with this today! Meat2_T=FOOD ITEM FryingPan_T=The classic weapon choice of a 1940s housewife -PizzaOnly_T=##ITEM TIP NOT SET## -BreadLoaf_T=##ITEM TIP NOT SET## -Banana_T=##ITEM TIP NOT SET## -Orange_T=##ITEM TIP NOT SET## -WheelLock_T=##ITEM TIP NOT SET## -RedApple_T=##ITEM TIP NOT SET## -Lemon_T=##ITEM TIP NOT SET## -PisschBox_T=##ITEM TIP NOT SET## -PizzaBox_T=##ITEM TIP NOT SET## -MilkBottl_T=##ITEM TIP NOT SET## -MilkCarto_T=##ITEM TIP NOT SET## -IceCream_T=##ITEM TIP NOT SET## -FishyFing_T=##ITEM TIP NOT SET## -IceCreamB_T=##ITEM TIP NOT SET## -AppleJuic_T=##ITEM TIP NOT SET## -OrangeJui_T=##ITEM TIP NOT SET## -Cereal1_T=##ITEM TIP NOT SET## -Cereal2_T=##ITEM TIP NOT SET## -WrappedMe_T=##ITEM TIP NOT SET## -Beanie_T=##ITEM TIP NOT SET## -StrawHat_T=##ITEM TIP NOT SET## -WitchesHa_T=##ITEM TIP NOT SET## -WeddingCa_T=##ITEM TIP NOT SET## -CaptainsC_T=##ITEM TIP NOT SET## -SwatHelme_T=##ITEM TIP NOT SET## -PizzaHat_T=##ITEM TIP NOT SET## -PussyMask_T=##ITEM TIP NOT SET## -BoxingGlo_T=##ITEM TIP NOT SET## -Briquette_T=##ITEM TIP NOT SET## -DevilMask_T=##ITEM TIP NOT SET## -Cross_T=##ITEM TIP NOT SET## -RedPanel_T=##ITEM TIP NOT SET## -Fork_T=##ITEM TIP NOT SET## -Knife3_T=##ITEM TIP NOT SET## -Ketchup_T=##ITEM TIP NOT SET## -Mustard_T=##ITEM TIP NOT SET## -Boot_T=##ITEM TIP NOT SET## -Doormat_T=##ITEM TIP NOT SET## -CakeSlice_T=##ITEM TIP NOT SET## -Holdall_T=##ITEM TIP NOT SET## -GrnApple_T=##ITEM TIP NOT SET## -Wine1_T=##ITEM TIP NOT SET## -Wine2_T=##ITEM TIP NOT SET## -Wine3_T=##ITEM TIP NOT SET## -Whisky_T=##ITEM TIP NOT SET## -Champagne_T=##ITEM TIP NOT SET## -Ham_T=##ITEM TIP NOT SET## -Steak_T=##ITEM TIP NOT SET## -Bread_T=##ITEM TIP NOT SET## -Broom_T=##ITEM TIP NOT SET## -Keycard_T=##ITEM TIP NOT SET## -BurntLog_T=##ITEM TIP NOT SET## -Padlock_T=##ITEM TIP NOT SET## -OilDrum_T=##ITEM TIP NOT SET## -Canister_T=##ITEM TIP NOT SET## -ScrapMeta_T=##ITEM TIP NOT SET## -RefinedMe_T=##ITEM TIP NOT SET## -Locator_T=##ITEM TIP NOT SET## -PlotPole_T=##ITEM TIP NOT SET## -ScrapMach_T=##ITEM TIP NOT SET## -RefineMac_T=##ITEM TIP NOT SET## -WaterMach_T=##ITEM TIP NOT SET## -Workbench_T=##ITEM TIP NOT SET## -Radio_T=##ITEM TIP NOT SET## -Locker_T=##ITEM TIP NOT SET## -GearBox_T=##ITEM TIP NOT SET## -ToolBox_T=##ITEM TIP NOT SET## -MetalFram_T=##ITEM TIP NOT SET## -LockBreak_T=##ITEM TIP NOT SET## -PoliceHel_T=##ITEM TIP NOT SET## -ControlBo_T=##ITEM TIP NOT SET## -Computer_T=##ITEM TIP NOT SET## -TallFrame_T=##ITEM TIP NOT SET## -RemoteCon_T=##ITEM TIP NOT SET## -Desk_T=##ITEM TIP NOT SET## -Table_T=##ITEM TIP NOT SET## -GunCase_T=##ITEM TIP NOT SET## -Cupboard_T=##ITEM TIP NOT SET## -Barstool_T=##ITEM TIP NOT SET## -SmallTabl_T=##ITEM TIP NOT SET## +PizzaOnly_T=Item tip no set. +BreadLoaf_T=Item tip no set. +Banana_T=Item tip no set. +Orange_T=Item tip no set. +WheelLock_T=Item tip no set. +RedApple_T=Item tip no set. +Lemon_T=Item tip no set. +PisschBox_T=Item tip no set. +PizzaBox_T=Item tip no set. +MilkBottl_T=Item tip no set. +MilkCarto_T=Item tip no set. +IceCream_T=Item tip no set. +FishyFing_T=Item tip no set. +IceCreamB_T=Item tip no set. +AppleJuic_T=Item tip no set. +OrangeJui_T=Item tip no set. +Cereal1_T=Item tip no set. +Cereal2_T=Item tip no set. +WrappedMe_T=Item tip no set. +Beanie_T=Item tip no set. +StrawHat_T=Item tip no set. +WitchesHa_T=Item tip no set. +WeddingCa_T=Item tip no set. +CaptainsC_T=Item tip no set. +SwatHelme_T=Item tip no set. +PizzaHat_T=Item tip no set. +PussyMask_T=Item tip no set. +BoxingGlo_T=Item tip no set. +Briquette_T=Item tip no set. +DevilMask_T=Item tip no set. +Cross_T=Item tip no set. +RedPanel_T=Item tip no set. +Fork_T=Item tip no set. +Knife3_T=Item tip no set. +Ketchup_T=Item tip no set. +Mustard_T=Item tip no set. +Boot_T=Item tip no set. +Doormat_T=Item tip no set. +CakeSlice_T=Item tip no set. +Holdall_T=Item tip no set. +GrnApple_T=Item tip no set. +Wine1_T=Item tip no set. +Wine2_T=Item tip no set. +Wine3_T=Item tip no set. +Whisky_T=Item tip no set. +Champagne_T=Item tip no set. +Ham_T=Item tip no set. +Steak_T=Item tip no set. +Bread_T=Item tip no set. +Broom_T=Item tip no set. +Keycard_T=Item tip no set. +BurntLog_T=Item tip no set. +Padlock_T=Item tip no set. +OilDrum_T=Item tip no set. +Canister_T=Item tip no set. +ScrapMeta_T=Item tip no set. +RefinedMe_T=Item tip no set. +Locator_T=Item tip no set. +PlotPole_T=Item tip no set. +ScrapMach_T=Item tip no set. +RefineMac_T=Item tip no set. +WaterMach_T=Item tip no set. +Workbench_T=Item tip no set. +Radio_T=Item tip no set. +Locker_T=Item tip no set. +GearBox_T=Item tip no set. +ToolBox_T=Item tip no set. +MetalFram_T=Item tip no set. +LockBreak_T=Item tip no set. +PoliceHel_T=Item tip no set. +ControlBo_T=Item tip no set. +Computer_T=Item tip no set. +TallFrame_T=Item tip no set. +RemoteCon_T=Item tip no set. +Desk_T=Item tip no set. +Table_T=Item tip no set. +GunCase_T=Item tip no set. +Cupboard_T=Item tip no set. +Barstool_T=Item tip no set. +SmallTabl_T=Item tip no set.