Tuesday, August 16, 2011

MultiLanguage (Message, GameText, TextDraw, Dialog)

Hi

I don't relase any my scripts/include there, but it can help many people.
It's simple include allows you to send a message in multiple languages



/*
Notka autora - usuniesz, tracisz prawo do wystawiania/korzystania z tego includa
MultiLanguageMessage by RPS (aka Diler)
Last update: 29.07.2011

========================================
Wyprodukowano dla GTACenter.Info
========================================

native LanguageMessage(playerid, color, ...);
native LanguageMessageToAll(color, ...);
native LanguageTextDrawMessage(playerid, Text:ID, ...);
native LanguageGameTextForPlayer(playerid, styleid, czas, ...);
native LanguageGameTextForAll(styleid, czas, ...);
native LanguageDialogForPlayer(playerid, dialogid, style, ...);
*/

#include

#define LANGUAGE_POLISH 0
#define LANGUAGE_ENGLISH 1
#define LANGUAGE_DEFAULT 2
//An example of another:
//#define LANGUAGE_NAME 3

#define LANGUAGE_SIZE 128
#define LANGUAGE_DIALOG 100 // DIALOG ID
#define LANGUAGE_INFO "Polski\nEnglish\nInny" // Next add acc. pattern "\nLanguage"

#define ChooseLanguage(%0) ShowPlayerDialog(%0, LANGUAGE_DIALOG, DIALOG_STYLE_LIST, "Choose language", LANGUAGE_INFO, "OK", "") // Function showing the language selection dialog

stock LANGUAGE_ODR(playerid, dialogid, response, listitem) // Use this in OnDialogResponse
{
if(dialogid == LANGUAGE_DIALOG && response)
SetPVarInt(playerid, "Language", listitem);
else if(dialogid == LANGUAGE_DIALOG && !response)
SetPVarInt(playerid, "Language", 0);
}

stock LanguageMessage(playerid, color, ...)
{
new msg[LANGUAGE_SIZE];
new args = numargs();
new language = GetPVarInt(playerid, "Language");

for(new i=2; i < args; i++)
{
if(language == i-2)
{
for(new chr; chr < sizeof msg; chr++)
msg[chr] = getarg((i+1+language), chr);

if(msg[0] == '\0')
SendClientMessage(playerid, color, "Error in script: LanguageMessage doesn't work, report this problem to server admin.");
else
SendClientMessage(playerid, color, msg);
}
}
return language;
}

stock LanguageMessageToAll(color, ...)
{
new msg[LANGUAGE_SIZE];
new args = numargs();
new language;

for(new i, g = GetMaxPlayers(); i < g; i++)
{
if(IsPlayerConnected(i))
{
language = GetPVarInt(i, "Language");
for(new a=1; a < args; a++)
{
if(language == a-1)
{
for(new chr; chr < sizeof msg; chr++)
msg[chr] = getarg((a+1+language), chr);

if(msg[0] == '\0')
SendClientMessage(i, color, "Error in script: LanguageMessageToAll doesn't work, report this problem to server admin.");
else
SendClientMessage(i, color, msg);
}
}
}
}
return 1;
}

stock LanguageTextDrawMessage(playerid, Text:ID, ...)
{
new msg[LANGUAGE_SIZE];
new args = numargs();
new language = GetPVarInt(playerid, "Language");

for(new i=2; i < args; i++)
{
if(language == i-2)
{
for(new chr; chr < sizeof msg; chr++)
msg[chr] = getarg((i+1+language), chr);

if(msg[0] == '\0')
TextDrawSetString(ID, "Error in script: LanguageTextDrawMessage doesn't work, report this problem to server admin.");
else
TextDrawSetString(ID, msg);
}
}
return language;
}

stock LanguageGameTextForPlayer(playerid, styleid, czas, ...)
{
new msg[LANGUAGE_SIZE];
new args = numargs();
new language = GetPVarInt(playerid, "Language");

for(new i=3; i < args; i++)
{
if(language == i-3)
{
for(new chr; chr < sizeof msg; chr++)
msg[chr] = getarg((i+1+language), chr);

if(msg[0] == '\0')
GameTextForPlayer(playerid, "Error in script: LanguageGameTextForPlayer doesn't work, report this problem to server admin.", czas, styleid);
else
GameTextForPlayer(playerid, msg, czas, styleid);
}
}
return language;
}

stock LanguageGameTextForAll(styleid, czas, ...)
{
new msg[LANGUAGE_SIZE];
new args = numargs();
new language;

for(new a, g = GetMaxPlayers(); a < g; a++)
{
if(IsPlayerConnected(a))
{
language = GetPVarInt(a, "Language");
for(new i=2; i < args; i++)
{
if(language == i-2)
{
for(new chr; chr < sizeof msg; chr++)
msg[chr] = getarg((i+1+language), chr);

if(msg[0] == '\0')
GameTextForPlayer(a, "Error in script: LanguageGameTextForAll doesn't work, report this problem to server admin.", czas, styleid);
else
GameTextForPlayer(a, msg, czas, styleid);
}
}
}
}
return language;
}

stock LanguageDialogForPlayer(playerid, dialogid, style, ...)
{
new msg[4][LANGUAGE_SIZE];
new largs = ((numargs()-3) /5);
new language = GetPVarInt(playerid, "Language");
new last = 7;

if(language)
last += (language * 5);

for(new i=0; i < largs; i++)
{
if(language == i)
{
for(new chr; chr < sizeof msg[]; chr++)
{
msg[0][chr] = getarg((last - 3), chr);
msg[1][chr] = getarg((last - 2), chr);
msg[2][chr] = getarg((last - 1), chr);
msg[3][chr] = getarg((last), chr);
}

if((msg[0][0] == '\0') || (msg[1][0] == '\0') || (msg[2][0] == '\0'))
ShowPlayerDialog(playerid, dialogid, DIALOG_STYLE_MSGBOX, "Error", "Error in script: LanguageDialogForPlayer doesn't work, report this problem to server admin.", "OK", "");
else
ShowPlayerDialog(playerid, dialogid, style, msg[0], msg[1], msg[2], msg[3]);
}
}
return language;
}
Read More..

Spawn Messages

//Includes
#include
//Defines
#define FILTERSCRIPT
#if defined FILTERSCRIPT
//Colors
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_BROWN 0xA52A2AAA
//Forwards
forward Spawn(playerid);
//Filterscript Stuff
public OnFilterScriptInit()
{
print("\n----------------------------------------------");
print(" Spawn Messages");
print(" By [FF]Chrislis");
print(" � All Rights Reserved");
print("----------------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
return 1;
}


public OnPlayerConnect(playerid)
{
SetTimerEx("Spawn", 2000, 0, "i", playerid);
return 1;
}

public Spawn(playerid)
{
new PLName[24];
GetPlayerName(playerid, PLName, 24);
{
if(!strcmp(PLName, "[FF]Chrislis", true))
{
SendClientMessageToAll(COLOR_PINK, "BOO-YEAH, The Awesome Admin has Arrived FTW!");
SpawnPlayer(playerid);
return 1;
}
else
if(!strcmp(PLName, "[FF]Jamasen", true))
{
SendClientMessageToAll(COLOR_LIGHTBLUE, "***[FF]Jamasen Has Joined The Server So Watch Out***");
SpawnPlayer(playerid);
return 1;
}
else
if(!strcmp(PLName, "[FF]LabriK", true))
{
SendClientMessageToAll(COLOR_RED, "Fucking Oath! The boss has arrived");
SpawnPlayer(playerid);
return 1;
}
else
if(!strcmp(PLName, "[FF]BoReK", true))
{
SendClientMessageToAll(COLOR_DARKRED, "LabriK, GTFO Man, SRSLY!");
SpawnPlayer(playerid);
return 1;
}
else
if(!strcmp(PLName, "Thomas", true))
{
SendClientMessageToAll(COLOR_ORANGE, "Tom has arrived, RUN LIKE FUCK!");
SpawnPlayer(playerid);
return 1;
}
else
if(!strcmp(PLName, "Kiiper_selpht", true))
{
SendClientMessageToAll(COLOR_BROWN, "Give up the Emeralds or die, I don't love you");
SpawnPlayer(playerid);
return 1;
}
return 0;
}
}
#endif
Read More..