Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   NPC Scripting (https://forums.graalonline.com/forums/forumdisplay.php?f=8)
-   -   Sending PMs by script? Editing player chat bar? (https://forums.graalonline.com/forums/showthread.php?t=64195)

jake13jake 02-18-2006 11:43 PM

Sending PMs by script? Editing player chat bar?
 
Okay, I have a few ideas to improve how players communicate to each other that I'd like to let the players on Classic have access to.

My questions are:
1. How do you send a pm/guild/mass message by script?
2. Are there any event handlers in the chat bar that would allow direct editing to the chat bar? (if there aren't this is going straight to future improvements)

xXziroXx 02-18-2006 11:47 PM

PM: sendpm("text");


You can edit the GFX of the chatbar.

jake13jake 02-19-2006 12:48 AM

Quote:

Originally Posted by xXziroXx
PM: sendpm("text");


You can edit the GFX of the chatbar.

1. wouldn't sendpm have a param for something like object, id or account?
2. I mean... editing the chat text as it's being typed... like if the player types << change it to <addhere< as the player types it.

Chicken_l33t 02-19-2006 02:43 AM

Quote:

1. wouldn't sendpm have a param for something like object, id or account?
When you use sendpm("message"); it comes from the NPC server to the client that initiated it.

So, just use with (findplayer(params[0])){
sendpm("Hello" SPC params[0] SPC "i love you!");
}

Ajira 02-19-2006 03:26 AM

Quote:

Originally Posted by Chicken_l33t
When you use sendpm("message"); it comes from the NPC server to the client that initiated it.

So, just use with (findplayer(params[0])){
sendpm("Hello" SPC params[0] SPC "i love you!");
}

zzz
When done from the clientside, it's like you're sending the PM.
I'm going to experiment using this.

jake13jake 02-19-2006 03:31 AM

You're not understanding.
One player PMs another player.
The PM comes from the other player
Script function to send PM from one player to the other player is what I'm asking about.

ZeLpH_MyStiK 02-19-2006 09:18 AM

Quote:

Originally Posted by jake13jake
You're not understanding.
One player PMs another player.
The PM comes from the other player
Script function to send PM from one player to the other player is what I'm asking about.

nonexistent.

Maniaman 02-19-2006 03:51 PM

When sendpm is used on the clientside, it is sending a pm from the current player.

The Chatbar is a GuiTextEditCtrl. It's name is ChatBar. So for example, you can change its x by doing ChatBar.x = 8675309;
Changing profile:
ChatBar.profile = "GuiBlueTextEditProfile";

Inverness 02-19-2006 05:52 PM

What functions did the V3 PlayerList use for PMs?

Ajira 02-19-2006 06:42 PM

Quote:

Originally Posted by Inverness
What functions did the V3 PlayerList use for PMs?

PHP Code:

function onPMSend(obj) {
  
obj.textedit.sendpm(obj.person)



hotrian 02-19-2006 09:03 PM

http://wiki.graal.us/Script_Functions:_Client
GuiPMEditCtrl (GuiMLTextEditCtrl):
sendmasspm(obj)
sendpm(obj)
GuiPMCtrl (GuiMLTextCtrl):
showpm(obj)
GuiPMHistoryCtrl (GuiMLTextCtrl):
showhistory(obj)

isguildpm() - returns boolean
ismasspm() - returns boolean
pmswaiting() - returns boolean

Hmm?

jake13jake 02-19-2006 11:34 PM

Quote:

Originally Posted by hotrian
http://wiki.graal.us/Script_Functions:_Client
GuiPMEditCtrl (GuiMLTextEditCtrl):
sendmasspm(obj)
sendpm(obj)
GuiPMCtrl (GuiMLTextCtrl):
showpm(obj)
GuiPMHistoryCtrl (GuiMLTextCtrl):
showhistory(obj)

isguildpm() - returns boolean
ismasspm() - returns boolean
pmswaiting() - returns boolean

Hmm?

hmm... so would I have to acquaint myself with the GUI bs to do this?

Ajira 02-20-2006 12:03 AM

Quote:

Originally Posted by jake13jake
hmm... so would I have to acquaint myself with the GUI bs to do this?

Basically, a new GuiPMEditCtrl would need to be created. Then you'd do CtrlName.sendpm("account") methinks.

Edit:
Okay so this interested me as well. You must create a new GuiPMEditCtrl() with the profile of GuiMLTextEditProfile or something like that. Then the contents of the Ctrl will be sent by using the CtrlName.sendpm(findplayer("account")) function. The F2 window will then show the "PM Sent" text.

Warcaptain 03-06-2006 01:44 AM

Quote:

Originally Posted by Ajira
zzz
When done from the clientside, it's like you're sending the PM.
I'm going to experiment using this.


this is a false statement :-x

Admins 03-06-2006 01:51 AM

If you want to send a pm directly to another client then you will need to use a GuiPMEditCtrl. This is to make sure the player is editing the text, scripts don't have access to the text of that Gui control.
If it's possible to manipulate the default chatbar then we will need to add a protection against that.
It wouldn't be good if scripts could send PMs in the name of the player, or send chat messages in the name of the player. Sometimes security is better than functionality. There are also reasons why the scripted RC doesn't have the same functionality like external RC yet.


All times are GMT +2. The time now is 01:40 AM.

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