[HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
Young_Monaays - 10.08.2010
Can anyone help me setup the basic RP chats?
I need the following help:
--when you type in the chat box it sends it to Everyone, i need it so it sends it to people around you.
--when you type "/o" it sends it to everyone in the game
--when you type "/s" it allows your char to shout to the people around you.
--when you type "/w" it allows your char to whisper to the people around you
If anyone can help me out from the examples above, It would be greatly appreciated.
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
XtremePlanet - 10.08.2010
Here is shout from wiki:
pawn Код:
if(strcmp(cmdtext,"/shout",true)==0)
{
new tmp[256];//The variable for strtok.
new string[256];// A Variable where we store a text/number with information.
new pName[MAX_PLAYER_NAME];//You can use this variable to get the players name later on.
new idx;//Also known as Index,Part of strtok.
tmp = strtok(cmdtext,idx);//This Is where we define tmp to equal strtok.
if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_WHITE,"USAGE:/me[action]");
//this will see if the playerid filled all parameters,if not send him a message showing him how.
//now continue with the command.
if(IsPlayerConnected(playerid))//just a simple check to make it run smoother.
{
GetPlayerName(playerid,pName,sizeof(pName));//This Stores the playerid's name in a variable.
format(string,sizeof(string),"%s Shouts: %s !!",pName,cmdtext[7]);
/* In the format up,We used the stored text in the pName variable to show the player's name.
cmdtext[7] means how many letters of the command we cut off to get the text of what he said.*/
//and continue the command.
SendClientMessageToAll(COLOR_WHITE,string)//now we send the formatted string.
}// close the Connected Check.
return 1;//make sure it returns something.
}//and close the ending bracket
/* Written by iMatt */
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
[HUN]Jaki - 10.08.2010
pawn Код:
if (strcmp(cmdtext, "/o ", true, 3)==0){
new msg[128];
GetPlayerName(playerid, msg, 128);
format(msg, 128, "(( %s: %s ))", msg,cmdtext[3]);
SendClientMessageToAll(color, msg);
return 1;
}
The same with the others.
I don't know RPs, but I think they use a loop, and if target player is in range of the player, they send the message.
IsPlayerInRangeOfPoint
for()
GetPlayerPos
For the chatbox: if
OnPlayerText returns 0, the message is not sent. And you can check with IsPlayerInRangeOfPoint, if the message can be sent for the player or not.
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
Young_Monaays - 10.08.2010
Thanks a bunch for the above. But does it require to add in the script "dcmd_o" or "dcmd_shout"??
That's how my commands are in the GM...
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
[HUN]Jaki - 10.08.2010
I don't know how dcmd works, this example has to be put into OnPlayerCommandText(), and it will work.
(
http://pastebin.com/fdq8nC47)
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
Young_Monaays - 10.08.2010
Quote:
Originally Posted by [HUN]Jaki
|
Alright, and for:
Quote:
For the chatbox: if OnPlayerText returns 0, the message is not sent. And you can check with IsPlayerInRangeOfPoint, if the message can be sent for the player or not.
|
What would the script be to add "IsPlayerInRangeOfPoint" ?
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
[HUN]Jaki - 10.08.2010
A for loop, which checks every player, if it is in the range of the point. (In this case, the point is the position of the player who sends the message.)
for (i=0; while i<MAX_PLAYERS){
if (IsPlayerInRangeOfPoint(i)) SendTheMessage();
}
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
DiddyBop - 10.08.2010
Click me for tutorial
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
marharth - 10.08.2010
the link the sa-mp wiki won't help much if he was already there and didn't find anything...
Re: [HELP] How to make the basic RP talks (ooc, ic, shout etc..) -
r0b - 10.08.2010
But we already said all functions, that you need to solve this. If he want us to make this, that he copy&paste it, then go to script request.