Jump to content

C# Variable in Lua.DoString() gives lua error


Pudge

Recommended Posts

 

Hi.

Working on a project to send invitation letters and faced the problem.  I don’t understand what kind of garbage happens when I try to send an mail using the line break character "/"  in the message.

 

I just want to send a message with separated lines, I don’t understand why when using variables in Lua.DoString an error appears, and if not then everything is fine ok. I will be glad to know if someone helps.

Can i use wManager.Wow.Helpers.MailMail.SendMessage() to send letters without items? I already tried and nothing went...

 

 

Link to comment
Share on other sites

1 hour ago, Sye | SMoKie said:

Paste your code

 

var name = "qq";
var subject = 123;
var text = "1\n2\n3\n4\n5\n6";
//Lua.LuaDoString(@"SendMail('qq', '123', '1\n2\n3\n4\n5\n6')"); //without
Lua.LuaDoString(@"SendMail('"+name+"', '"+subject+"', '"+text+"')");
//Lua.LuaDoString(@"SendMail('"+name+"', '"+subject+"', '1\2\3\4\5\6')"); // with the introduction of variables

 

Link to comment
Share on other sites

Why are you using @ in a non-multi-line string?
This isn't a problem with LuaDoString.

 

//next time take a look at your ingame Lua errors and you'll see what's actually appearing in the game and why it's a problem
var name = "qq";
var subject = 123;
var text = "1\n2\n3\n4\n5\n6";
Lua.LuaDoString("SendMail(\"" + name + "\", \"" + subject + "\", \"" + text + "\")"); // don't use  @ in combination with \n otherwise at least double escape \n as \\n
// also, don't mix ' with ", you're bound to run into issues with names containing ' eventually

 

Link to comment
Share on other sites

2 minutes ago, Matenia said:

Why are you using @ in a non-multi-line string?
This isn't a problem with LuaDoString.
 

Was just typing out a message lol. One can also use Environment.NewLine in C# if that's easier.

Link to comment
Share on other sites

1 hour ago, Matenia said:

double escape \n as \\n


thanks for the help, this solved the problem

1 hour ago, Marsbar said:

One can also use Environment.NewLine in C# if that's easier.

var text = ""+System.Environment.NewLine+"1"+System.Environment.NewLine+"2"+System.Environment.NewLine+"3"+System.Environment.NewLine+"4"+ System.Environment.NewLine+"5"+System.Environment.NewLine+"6";

In dev tools:

image.png.7bf629a85f4b07429081568bd3b00b1e.png

 

in game

image.png.54cccfa0730a670fa6bf2a00c9df9439.png

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...