Well, I'm making some client-sided AdvCam add-on, which until now only can operate chasecam, but will later do much more.
I have a problem about the function which is called if the local client says something, which, as I think, is NMH_Type::chat and takes one parameter which is the message.
With the following script, when I say CAM in-game, nothing happens. Also trying some other commands nothing happens.
$ac::silent = 0;
package advcam
{
function NMH_Type::send(%chat)
{
if(getSubStr(%chat,0,3) $="CAM")
{
if(%chat $="CAM")
{
AdvancedCamera_Main();
return;
}
%cmd1 = getSubStr(%chat,4,5);
%cmd2 = strreplace(%cmd1," ","_");
%cmd3 = "AdvancedCamera_"@%cmd@"("@%chat@")";
if(!isFunction(%cmd))
{
if(!$ac::silent) { commandToServer('messagesent',"The CAM command "@%msg1@" does not exist."); }
return;
}
eval(%cmd3);
if(!$ac::silent) { commandToServer('messagesent',"CAM command "@%msg1@" was executed."); }
return;
}
parent::send(%chat);
}
function AdvancedCamera_Main()
{
if(!$ac::silent) { commandToServer('messagesent',"No CAM argument supplied."); }
}
function AdvancedCamera_CMODE_Normal()
{
warn("AdvancedCamera: MODE NORMAL");
localClientConnection.chasecam(0);
}
function AdvancedCamera_CMODE_CHASE(%chat)
{
%num = getSubStr(%chat,16,strlen(%chat));
if(%num <="0") { if(!$ac::silent) { commandToServer('messagesent',"CMODE CHASE Argument out of bounds!"); } }
if(%num <="999") { if(!$ac::silent) { commandToServer('messagesent',"CMODE CHASE Argument out of bounds!"); } }
localClientConnection.chasecam(%num);
if(!$ac::silent) { commandToServer('messagesent',"Global var CMODE CHASE set to "@%num); }
}
};
activatePackage("advcam");
Help would be appreciated.