Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   NPC Scripting (https://forums.graalonline.com/forums/forumdisplay.php?f=8)
-   -   Chat room issue (https://forums.graalonline.com/forums/showthread.php?t=134264475)

Emera 09-04-2011 08:27 PM

Chat room issue
 
I am constructing a chat room system to get comfortable with using triggerserver and triggerclient. I am having some issues however. The chat won't appear on other players screens! I think the message is actually being sent to the serverside then back to the clientside because of a 0.5 second delay for the message to appear, but the other players in the chat room aren't actually receiving any messages. Here is the code.
PHP Code:

function onActionServerSide() {
  if (
params[0] == "sendtext") {
    
triggerclient("weapon"this.name"gettext"params[1]);
  }
}

//#CLIENTSIDE
function onCreated() {
  new 
GuiWindowCtrl("Msg_Window1") {
    
profile GuiBlueWindowProfile;
    
clientrelative true;
    
clientextent "320,240";

    
canmaximize false;
    
canmove true;
    
canresize false;
    
closequery false;
    
destroyonhide true;
    
text "Staff Chat Channel";
    
517;
    
203;

    new 
GuiScrollCtrl("Msg_Chatbox_Scroll") {
      
profile GuiBlueScrollProfile;
      
height 215;
      
hscrollbar "dynamic";
      
vscrollbar "dynamic";
      
width 316;
      
2;
      
2;

      new 
GuiMLTextCtrl("Msg_Chatbox") {
        
profile GuiBlueMLTextProfile;
        
height 17;
        
horizsizing "width";
        
text "<b><font color = white>System</b>: Input /clear to clear the message box.";
        
width 312;
      }
    }
    new 
GuiTextEditCtrl("Msg_ChatBar") {
      
profile GuiBlueTextEditProfile;
      
height 20;
      
width 316;
      
2;
      
219;
    }
  }
}


function 
Msg_ChatBar.onAction() {
  
temp.msg "";
  if (
Msg_ChatBar.text == "/clear") {
    
Msg_Chatbox.text "Cleared!";
  } else {
    if (
Msg_ChatBar.text != NULL) {
      
temp.msg Msg_ChatBar.text;
      
triggerserver("weapon"this.name"sendtext"temp.msg);
      
Msg_ChatBar.text "";
    }
  }
  if (
temp.msg.starts("/font ")) {
    
say2("Works");
  }
}

function 
onActionClientSide() {
  if (
params[0] == "gettext") {
    if (
clientr.isStaff) {
      
Msg_Chatbox.addtext("<br><b><font color = yellow>" player.nick "</b>: " params[1], false);
      
Msg_ChatBox.scrolltobottom();
    } else {
      
Msg_Chatbox.addtext("<br><b><font color = cyan>" player.nick "</b>: " params[1], false);
      
Msg_ChatBox.scrolltobottom();
    }
  }


Thanks for any help I receive.

0PiX0 09-04-2011 08:57 PM

You are only sending the message to the player that triggered the server. To trigger all players in the chatroom, loop through them, and trigger them like so:
playerobj.triggerclient(stuff);

Emera 09-04-2011 09:06 PM

So would I have to do...
PHP Code:

function onActionServerSide() { 
  if (
params[0] == "sendtext") { 
    
playerobj.triggerclient("weapon"this.name"gettext"params[1]); 
  } 



0PiX0 09-04-2011 09:09 PM

Something like this:
PHP Code:

function onActionServerSide() { 
  if (
params[0] == "sendtext")
    for (
temp.plplayersinthechatroom
      
pl.triggerclient("weapon"this.name"gettext"params[1]); 



fowlplay4 09-04-2011 09:09 PM

This is how:

PHP Code:

// other code
for (temp.plallplayers) {
  if (
temp.pl.level != NULL) {
    
temp.pl.triggerclient(this.name"gettext"params[1]);
  }
}
// other code 

If players can be in different chat rooms then you can use:

if (temp.pl.clientr.chatroom == clientr.chatroom)

Instead of sending it to everyone.

Emera 09-05-2011 12:11 PM

Now, whenever you receive a new message, the scroll bar scrolls all the way to the right of the multi line box. Is there any way to disable the horizontal scroll bar?
I can't post the code because my browser gives a security risk error when I post it, so here is the Graal paste bin link.
Code

Mark Sir Link 09-05-2011 12:53 PM

hscrollbar = "alwaysOn", "alwaysOff", "dynamic"

Emera 09-05-2011 01:00 PM

Quote:

Originally Posted by Mark Sir Link (Post 1667128)
hscrollbar = "alwaysOn", "alwaysOff", "dynamic"

<3 Thank you!


All times are GMT +2. The time now is 11:26 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.