The only dumb question is the one you don't ask!
Anyways, parent/child is from the packaging system. Basically, if you package an exsisting function, you can overwrite it. But in order to retain the original functionality of the function, you can call the original function using parent::functionname(%arguments, %go, %here);
So let's say you wanted to add some functionality to the kick command. Every time someone tries to use it, it will echo "Someone tried to kick!" into the console.
First you create a package (and remember to add in an activatePackage statement at the bottom)
package ourPackage
{
};
activatePackage(ourPackage);
Then we add in the function itself. But, we don't add in all the original code for the kick function, because we don't have it.
package ourPackage
{
function serverCmdKick(%client, %victim)
{
}
};
activatePackage(ourPackage);
Now we add in what we want to happen, an echo.
package ourPackage
{
function serverCmdKick(%client, %victim)
{
echo("Someone tried to kick!");
}
};
activatePackage(ourPackage);
And after that, we put in parent::serverCmdKick(%client, %victim);. This calls the original function, so that it will do what it normally does.
package ourPackage
{
function serverCmdKick(%client, %victim)
{
echo("Someone tried to kick!");
parent::serverCmdKick(%client, %victim);
}
};
activatePackage(ourPackage);
And there you go, now any time you try to kick someone, it will echo into the console and still be able to kick people.