Jump to content

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


Pudge
 Share

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...