With all due respect (so don't get me wrong), but I'm not certain if such scripts should be accepted in the database.
Reason: poorly written. So why not including it:
1) People who know how to script will also know how to do this simple function for themselfs.
2) People who do not know how to script (and want to learn scripting by looking at such simple scripts) will not learn proper formatting their scripts or why something is done, etc...
code:
function OnEvent_ChatWndSendMessage(ChatWnd,Message)
{
var Val=Interop.Call("User32.dll", "MessageBoxW", 0,"Are you sure, you want to send:" + Message,"Sure?", 4|32);
if (Val==6) { // Yes
// ....
}
else if (Val==7) { // No
return "";
}
}
Instead of submitting something like the above, submit something like:
code:
function OnEvent_ChatWndSendMessage(ChatWnd, Message)
{
If (Interop.Call("User32.dll", "MessageBoxW", ChatWnd.Handle, "Are you sure you want to send:\n" + Message, "Confirm", 36) === 7) return "";
}
Look at the above 1-line script and understand why this can be on one simple line. If you knew this you would have done something like this already and submitted that. If not, this proofs my point that scripts written like yours shouldn't be accepted as they don't teach much (if not teaching bad habits and what not).
---
Or, if you want to submit such a script and teach/help out other people who might want to learn something:
code:
function OnEvent_ChatWndSendMessage(ChatWnd, Message)
{
// Define constants to make up the message box
var MB_ICONQUESTION = 32;
var MB_YESNO = 4;
// Define constants which can be returned
var IDYES = 6;
var IDNO = 7;
// Show confirmation box
// Note: We attached the chat window handle (ChatWnd.Handle) to make this message box a child of the chat window.
// In that way, you can't use the chat window any further until the message box is answered.
// Note: We define a YES/NO message box (MB_YESNO) and show a question icon (MB_ICONQUESTION) by binary adding the constants with the OR function.
var Result = Interop.Call("User32.dll", "MessageBoxW", ChatWnd.Handle, "Are you sure you want to send:\n" + Message, "Confirm", MB_YESNO | MB_ICONQUESTION);
// Check the returned result
switch(Result) {
// User pressed 'yes', so simply return without doing anything
case IDYES: return;
// User pressed 'no', so return the new message being an empty string; nothing will be send
case IDNO: return "";
}
}
// More info in the MSDN Library:
//http://search.msdn.microsoft.com/search/Redirect.aspx?title=MessageBox+Function&url=http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/messagebox.asp
---
So, I hope you don't take anything of this post offensive. It is just that I sometimes question the stuff in the database (yours was just an example). Although I have no doubt what-so-ever about the good intentions of the creators, the quality is important too.