|
@@ -1,151 +1,151 @@
|
|
|
-//===== eAthena Script =======================================
|
|
|
-//= Sample localized NPC
|
|
|
-//===== By: ==================================================
|
|
|
-//= eAthena Dev Team
|
|
|
-//===== Current Version: =====================================
|
|
|
-//= v1.0
|
|
|
-//===== Compatible With: =====================================
|
|
|
-//= eAthena with setd, getd and npc variables '.'
|
|
|
-//===== Description: =========================================
|
|
|
-//= Example of a localized NPC.
|
|
|
-//=
|
|
|
-//= There are many ways to do it, this is just one option.
|
|
|
-//= The player has a global account variable ##_langid_ that
|
|
|
-//= identifies the it's language.
|
|
|
-//=
|
|
|
-//= The default language should always have langid 0.
|
|
|
-//= When a message isn't found for the player's langid
|
|
|
-//= (strlen = 0), the message from langid 0 is used instead.
|
|
|
-//=
|
|
|
-//= Each message is identified by a string that must only
|
|
|
-//= contain valid variable name characters.
|
|
|
-//=
|
|
|
-//= void setlang(int langid)
|
|
|
-//= - sets the player's language
|
|
|
-//= int getlang(void)
|
|
|
-//= - returns the player's language
|
|
|
-//= void setmes2(string name,int langid,string text)
|
|
|
-//= - sets the localized text for name
|
|
|
-//= string getmes2(string name,int langid)
|
|
|
-//= - returns the localized text of name
|
|
|
-//= void mes2(string name)
|
|
|
-//= - displays the localized text of name
|
|
|
-//=
|
|
|
-//===== Additional Comments: =================================
|
|
|
-//= To use this globally, just put the functions in Global_Functions.txt
|
|
|
-//============================================================
|
|
|
-
|
|
|
-//////////////////////////////////////////////////////////////
|
|
|
-/// Sets the language of the player account.
|
|
|
-/// @param langid Languange identifier (0 for default)
|
|
|
-function script setlang {
|
|
|
- set ##_langid_, getarg(0);
|
|
|
- return;
|
|
|
-}
|
|
|
-
|
|
|
-//////////////////////////////////////////////////////////////
|
|
|
-/// Returns the language identifier of the player
|
|
|
-function script getlang {
|
|
|
- return ##_langid_;
|
|
|
-}
|
|
|
-
|
|
|
-//////////////////////////////////////////////////////////////
|
|
|
-/// Sets a localized text entry.
|
|
|
-/// Does not need a RID attached.
|
|
|
-/// @param name Message identifier
|
|
|
-/// @param langid Language identifier (0 for default)
|
|
|
-/// @param text Text message
|
|
|
-function script setmes2 {
|
|
|
- set $@mes2_name$, getarg(0);
|
|
|
- set $@mes2_langid, getarg(1);
|
|
|
- set $@mes2_text$, getarg(2);
|
|
|
- set $@mes2_var$, "$@__"+ $@mes2_name$ +"_"+ $@mes2_langid +"$";
|
|
|
-
|
|
|
- //debugmes "setmes2 \""+ $@mes2_var$ +"\", \""+ $@mes2_text$ +"\";";
|
|
|
-
|
|
|
- // set the localized text
|
|
|
- setd $@mes2_var$, $@mes2_text$;
|
|
|
- return;
|
|
|
-}
|
|
|
-
|
|
|
-//////////////////////////////////////////////////////////////
|
|
|
-/// Sets a localized text entry.
|
|
|
-/// Does not need a RID attached.
|
|
|
-/// @param name Message identifier
|
|
|
-/// @param langid Language identifier (0 for default)
|
|
|
-/// @return Text message
|
|
|
-function script getmes2 {
|
|
|
- set $@mes2_name$, getarg(0);
|
|
|
- set $@mes2_langid, getarg(1);
|
|
|
- set $@mes2_var$, "$@__"+ $@mes2_name$ +"_"+ $@mes2_langid +"$";
|
|
|
- set $@mes2_text$, getd($@mes2_var$);
|
|
|
-
|
|
|
- //debugmes "getmes2(\""+ $@mes2_var$ +"\")=\""+ $@mes2_text$ +"\"";
|
|
|
-
|
|
|
- return $@mes2_text$;
|
|
|
-}
|
|
|
-
|
|
|
-//////////////////////////////////////////////////////////////
|
|
|
-/// mes for localized text.
|
|
|
-/// index should be a unique string, made up only of characters
|
|
|
-/// that are valis as a variable name
|
|
|
-/// @param index Message identifier
|
|
|
-function script mes2 {
|
|
|
- set .@mes2_index$, getarg(0);
|
|
|
-
|
|
|
- if( getstrlen(.@mes2_index$) == 0 )
|
|
|
- return; // invalid index
|
|
|
-
|
|
|
- // print localized text
|
|
|
- set .@mes2_text$, callfunc("getmes2",.@mes2_index$,##_langid_);
|
|
|
- if( getstrlen(.@mes2_text$) == 0 )
|
|
|
- {
|
|
|
- if( ##_langid_ != 0 )
|
|
|
- {// revert to default language
|
|
|
- set .@mes2_text$, callfunc("getmes2",.@mes2_index$,0);
|
|
|
- if( getstrlen(.@mes2_text$) != 0 )
|
|
|
- mes .@mes2_text$; // default text
|
|
|
- }
|
|
|
- } else
|
|
|
- mes .@mes2_text$; // localized text
|
|
|
- return;
|
|
|
-}
|
|
|
-
|
|
|
-//////////////////////////////////////////////////////////////
|
|
|
-/// Sample localized NPC
|
|
|
-prontera.gat,155,183,4 script LocalizedNPC 705,{
|
|
|
- // Get text for specific languages
|
|
|
- set .@menu1$, callfunc("getmes2","LNPC_lang",0);
|
|
|
- set .@menu2$, callfunc("getmes2","LNPC_lang",1);
|
|
|
- do {
|
|
|
- // get text that fallbacks to language 0
|
|
|
- callfunc "mes2", "LNPC_name";
|
|
|
- // localized mes
|
|
|
- callfunc "mes2", "LNPC_lang";
|
|
|
- callfunc "mes2", "LNPC_text";
|
|
|
- next;
|
|
|
-
|
|
|
- switch(select(.@menu1$,.@menu2$,"Cancel"))
|
|
|
- {
|
|
|
- case 1:
|
|
|
- case 2:
|
|
|
- // Set player language
|
|
|
- callfunc "setlang",@menu-1;
|
|
|
- break;
|
|
|
- }
|
|
|
- } while( @menu != 3 );
|
|
|
- close;
|
|
|
- end;
|
|
|
-
|
|
|
-OnInterIfInitOnce:
|
|
|
- // Load the localized text.
|
|
|
- // This can be anywhere, as long as it's executed before the coresponding getmes2/mes2 calls
|
|
|
- // 0 - English (default)
|
|
|
- // 1 - Portuguese
|
|
|
- callfunc "setmes2", "LNPC_name", 0, "[LocalizedNPC]";
|
|
|
- callfunc "setmes2", "LNPC_lang", 0, "EN";
|
|
|
- callfunc "setmes2", "LNPC_lang", 1, "PT";
|
|
|
- callfunc "setmes2", "LNPC_text", 0, "Something in english";
|
|
|
- callfunc "setmes2", "LNPC_text", 1, "Algo em português";
|
|
|
- end;
|
|
|
-}
|
|
|
+//===== eAthena Script =======================================
|
|
|
+//= Sample localized NPC
|
|
|
+//===== By: ==================================================
|
|
|
+//= eAthena Dev Team
|
|
|
+//===== Current Version: =====================================
|
|
|
+//= v1.0
|
|
|
+//===== Compatible With: =====================================
|
|
|
+//= eAthena with setd, getd
|
|
|
+//===== Description: =========================================
|
|
|
+//= Example of a localized NPC.
|
|
|
+//=
|
|
|
+//= There are many ways to do it, this is just one option.
|
|
|
+//= The player has a global account variable ##_langid_ that
|
|
|
+//= identifies the it's language.
|
|
|
+//=
|
|
|
+//= The default language should always have langid 0.
|
|
|
+//= When a message isn't found for the player's langid
|
|
|
+//= (strlen = 0), the message from langid 0 is used instead.
|
|
|
+//=
|
|
|
+//= Each message is identified by a string that must only
|
|
|
+//= contain valid variable name characters.
|
|
|
+//=
|
|
|
+//= void setlang(int langid)
|
|
|
+//= - sets the player's language
|
|
|
+//= int getlang(void)
|
|
|
+//= - returns the player's language
|
|
|
+//= void setmes2(string name,int langid,string text)
|
|
|
+//= - sets the localized text for name
|
|
|
+//= string getmes2(string name,int langid)
|
|
|
+//= - returns the localized text of name
|
|
|
+//= void mes2(string name)
|
|
|
+//= - displays the localized text of name
|
|
|
+//=
|
|
|
+//===== Additional Comments: =================================
|
|
|
+//= To use this globally, just put the functions in Global_Functions.txt
|
|
|
+//============================================================
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////
|
|
|
+/// Sets the language of the player account.
|
|
|
+/// @param langid Languange identifier (0 for default)
|
|
|
+function script setlang {
|
|
|
+ set ##_langid_, getarg(0);
|
|
|
+ return;
|
|
|
+}
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////
|
|
|
+/// Returns the language identifier of the player
|
|
|
+function script getlang {
|
|
|
+ return ##_langid_;
|
|
|
+}
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////
|
|
|
+/// Sets a localized text entry.
|
|
|
+/// Does not need a RID attached.
|
|
|
+/// @param name Message identifier
|
|
|
+/// @param langid Language identifier (0 for default)
|
|
|
+/// @param text Text message
|
|
|
+function script setmes2 {
|
|
|
+ set $@mes2_name$, getarg(0);
|
|
|
+ set $@mes2_langid, getarg(1);
|
|
|
+ set $@mes2_text$, getarg(2);
|
|
|
+ set $@mes2_var$, "$@__"+ $@mes2_name$ +"_"+ $@mes2_langid +"$";
|
|
|
+
|
|
|
+ //debugmes "setmes2 \""+ $@mes2_var$ +"\", \""+ $@mes2_text$ +"\";";
|
|
|
+
|
|
|
+ // set the localized text
|
|
|
+ setd $@mes2_var$, $@mes2_text$;
|
|
|
+ return;
|
|
|
+}
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////
|
|
|
+/// Sets a localized text entry.
|
|
|
+/// Does not need a RID attached.
|
|
|
+/// @param name Message identifier
|
|
|
+/// @param langid Language identifier (0 for default)
|
|
|
+/// @return Text message
|
|
|
+function script getmes2 {
|
|
|
+ set $@mes2_name$, getarg(0);
|
|
|
+ set $@mes2_langid, getarg(1);
|
|
|
+ set $@mes2_var$, "$@__"+ $@mes2_name$ +"_"+ $@mes2_langid +"$";
|
|
|
+ set $@mes2_text$, getd($@mes2_var$);
|
|
|
+
|
|
|
+ //debugmes "getmes2(\""+ $@mes2_var$ +"\")=\""+ $@mes2_text$ +"\"";
|
|
|
+
|
|
|
+ return $@mes2_text$;
|
|
|
+}
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////
|
|
|
+/// mes for localized text.
|
|
|
+/// index should be a unique string, made up only of characters
|
|
|
+/// that are valis as a variable name
|
|
|
+/// @param index Message identifier
|
|
|
+function script mes2 {
|
|
|
+ set @mes2_index$, getarg(0);
|
|
|
+
|
|
|
+ if( getstrlen(@mes2_index$) == 0 )
|
|
|
+ return; // invalid index
|
|
|
+
|
|
|
+ // print localized text
|
|
|
+ set @mes2_text$, callfunc("getmes2",@mes2_index$,##_langid_);
|
|
|
+ if( getstrlen(@mes2_text$) == 0 )
|
|
|
+ {
|
|
|
+ if( ##_langid_ != 0 )
|
|
|
+ {// revert to default language
|
|
|
+ set @mes2_text$, callfunc("getmes2",@mes2_index$,0);
|
|
|
+ if( getstrlen(@mes2_text$) != 0 )
|
|
|
+ mes @mes2_text$; // default text
|
|
|
+ }
|
|
|
+ } else
|
|
|
+ mes @mes2_text$; // localized text
|
|
|
+ return;
|
|
|
+}
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////
|
|
|
+/// Sample localized NPC
|
|
|
+prontera.gat,155,183,4 script LocalizedNPC 705,{
|
|
|
+ // Get text for specific languages
|
|
|
+ set @menu1$, callfunc("getmes2","LNPC_lang",0);
|
|
|
+ set @menu2$, callfunc("getmes2","LNPC_lang",1);
|
|
|
+ do {
|
|
|
+ // get text that fallbacks to language 0
|
|
|
+ callfunc "mes2", "LNPC_name";
|
|
|
+ // localized mes
|
|
|
+ callfunc "mes2", "LNPC_lang";
|
|
|
+ callfunc "mes2", "LNPC_text";
|
|
|
+ next;
|
|
|
+
|
|
|
+ switch(select(@menu1$,@menu2$,"Cancel"))
|
|
|
+ {
|
|
|
+ case 1:
|
|
|
+ case 2:
|
|
|
+ // Set player language
|
|
|
+ callfunc "setlang",@menu-1;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ } while( @menu != 3 );
|
|
|
+ close;
|
|
|
+ end;
|
|
|
+
|
|
|
+OnInterIfInitOnce:
|
|
|
+ // Load the localized text.
|
|
|
+ // This can be anywhere, as long as it's executed before the coresponding getmes2/mes2 calls
|
|
|
+ // 0 - English (default)
|
|
|
+ // 1 - Portuguese
|
|
|
+ callfunc "setmes2", "LNPC_name", 0, "[LocalizedNPC]";
|
|
|
+ callfunc "setmes2", "LNPC_lang", 0, "EN";
|
|
|
+ callfunc "setmes2", "LNPC_lang", 1, "PT";
|
|
|
+ callfunc "setmes2", "LNPC_text", 0, "Something in english";
|
|
|
+ callfunc "setmes2", "LNPC_text", 1, "Algo em português";
|
|
|
+ end;
|
|
|
+}
|