Post Reply 
 
Thread Rating:
  • 1 Votes - 3 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arguments on Defnames + SysMessage
Author Message
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #1
Arguments on Defnames + SysMessage
Hi, I have a custom translation system working with defnames that works fairly nice, I use, for example, i_eng_<baseid> for items/npcs to looking for their english translation with no problem, problems come when I make custom content like if I want for example put this text on a defname: You are giving <src.name> a total of <act.amount> gold, there's no way to make 'trans_eng_givegold=You are giving %s a total of %n gold', like you can in sphere_msgs, and then send that to client in this format sysmessage "<def.trans_eng_givegold>,<src.name>,<act.amount>" or I don't know how yet, it would be very usefull to be able to format sysmessages and everything else.
08-22-2013 02:37 AM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 246
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #2
RE: Arguments on Defnames + SysMessage
Well, it's better to use clilocs for translation i think.

Anyway, there are some workaround like this one :

PHP Code:
//There aren't <> for src.name and act.amount, they will be interpreted later
//Commas are used for separating the parts of string that need to be interpreted from the
// ones that doesn't.
[DEFNAME test_transaction]
test_1    You are giving,src.name,a total of,act.amount  

//This is just for testing
[FUNCTION transaction]
newitem i_gold,500
act 
= <new>
sysmessage  <transaction_test <def.test_1>>

//args Full defname
//argv[0] You are giving..
//argv[1] src.name
//argv[2] a total of
//argv[3] act.amount
[FUNCTION transaction_test]
//This just split the defname in various part
//the double <<>> it's needed for  the interpretation
//<argv[1]> = src.name
//<<argv[1]> = <src.name>
return <argv[0]> <<argv[1]>><argv[2]> <<argv[3]>> 

Even if it works, i don't think it's a good solution, it's just works for a defname that follow
a certain pattern.
08-22-2013 04:15 AM
Find all posts by this user Like Post Quote this message in a reply
XuN
Sphere Developer
*****

Posts: 852
Likes Given: 102
Likes Received: 156 in 119 posts
Joined: Jul 2013
Reputation: 30



Post: #3
RE: Arguments on Defnames + SysMessage
Hello, thanks in advance for anwser. I've tried that kind of workarounds... the problem is that I have to manually check for argv[x] in case of any, wich excludes the use of commas in my texts, I could use some character like ยท and strreplace to comma, but it would be bad idea to use those functions in a translating function that fires on npc @click, item @click and sysmessages/messages, etc from all scripts, basically I changed every server text to translated text. Thats why I ask for some formateable message system hardcoded.
08-22-2013 04:35 AM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)