public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{ //Check the comments behind some lines! (scroll to the right)
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) // If the player is within 16 meters
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) // within 8 meters
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) //4 meters
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) //2 meters
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) //1 meter
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
return 1;
}
public OnPlayerText(playerid, text[]) // This callback is called when the players are chatting, we will change this from normal chat to our ProxDetector :)
{
new pname[24], str[128]; // the new for the name and string the player will say
GetPlayerName(playerid, pname, 24); // Gets the name so that it displays a name and not an ID
format(str, sizeof(str), "%s Says: %s", pname, text); // The actual text, formatted into a string
ProxDetector(10.0, playerid, str, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); // Now this is where the fun begins. 10 means the radius, playerid is, well the playerid, str is your string and the colors are the colors you would like to have. You can change it!
return 0; //IMPORTANT! always use return 0; otherwise it will display both normal chat AND the ProxDetector
}
stock nearByMessage(playerid, color, string[], Float: Distance = 12.0) {
new
Float: nbCoords[3]; // Variable to store the position of the main player
GetPlayerPos(playerid, nbCoords[0], nbCoords[1], nbCoords[2]); // Getting the main position
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerInRangeOfPoint(i, Distance, nbCoords[0], nbCoords[1], nbCoords[2]) && (GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))) { // Confirming if the player being looped is within range and is in the same virtual world and interior as the main player
SendClientMessage(i, color, string); // Sending them the message if all checks out
}
}
return 1;
}
nearByMessage(playerid, COLOR_RED, "I'm not afraid, they can read all about it");
stock SendLocalMessage(playerid,color,msg[],Float:radius)
{
new
i,
Float:x,
Float:y,
Float:z
;
GetPlayerPos(playerid,x,y,z);
for(i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerInRangeOfPoint(i,radius,x,y,z))
SendClientMessage(i,color,msg);
}
return 1;
}
C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : error 012: invalid function call, not a valid address C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : error 001: expected token: ";", but found ")" C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : error 029: invalid expression, assumed zero C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 4 Errors.
I received these errors when I tried yours G4MOv3r
Код:
C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : error 012: invalid function call, not a valid address C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : error 001: expected token: ";", but found ")" C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : error 029: invalid expression, assumed zero C:\Documents and Settings\nmader\Desktop\Folders\WWIII RP\gamemodes\WWIIIRP.pwn(1121) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 4 Errors. |
if(strcmp(cmdtext, "/sweapons", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 6, -343.3916,1542.1134,75.5625))
{
new str[128];
new ProxDetector;
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s has been seen grabbing weaponry from Soviet's weapon box!", str[4]);
ProxDetector(10.0, playerid, str, 0x808080FF, 0x808080FF, 0x808080FF, 0x808080FF, 0x808080FF);
return 0;
AC_GivePlayerWeapon(playerid, 24, 999999);
AC_GivePlayerWeapon(playerid, 30, 999999);
AC_GivePlayerWeapon(playerid, 17, 15);
AC_GivePlayerWeapon(playerid, 29, 999999);
AC_GivePlayerWeapon(playerid, 4, 999999);
AC_GivePlayerWeapon(playerid, 34, 1);
SendClientMessage(playerid, 0x00FFFFFF, "Your weapons have been refilled successfully!");
return 1;
}
else
{
SendClientMessage(playerid, 0xAFAFAFAA, "You must be at Soviet's Weapon Spawn Location to use this command.");
return 1;
}