Blockland Forums > Modification Help
Eval Broken?
Reinforcements:
I'm making an event that uses eval. You type something in the text box, then you activate the brick or whatever you'd like to use. I just don't get why this doesn't work. This is for personal use and I do not plan on releasing this. Here's the code.
--- Code: ---registerOutputEvent(fxDTSBrick,EvalEvent,"string 200 200");
function fxDTSBrick::EvalEvent(%this, %arg1, %client)
{
%evalarg = %arg1;
echo("attempting eval");
if(%evalarg $= "")
{
echo("no args");
return;
}
if(%client.isSuperAdmin)
{
echo("is super admin");
eval(%evalarg);
echo("the arg is");
echo(%evalarg);
}
%evalarg = "";
return;
}
--- End code ---
This gives an "error syntax input" in the console at the point where it evals. Any help?
Red_Guy:
"syntax error in input" means the eval failed.
What is it you are trying to eval?
MegaScientifical:
--- Code: ---function fxDTSBrick::EvalEvent(%this, %cmd, %client) {
%name = %client.getPlayerName();
echo("\c3Attempted Eval Event by: " @ %name);
if(%client.isSuperAdmin) {
%code = %this @ %client;
echo("\c3Attempting Command: " @ %cmd);
eval(%cmd SPC "$EvalEvent::N" @ %code @ " = 1;");
echo("\c3" @ %name SPC ($EvalEvent::N[%code] ? "successfully executed" : "failed to execute") SPC "the command.");
$EvalEvent::N[%code] = 0;
}
return;
}
--- End code ---
That's what I got... Meh.
And Red_Guy, he didn't specify when that came up. It seems he means for when the code itself is executed.
Red_Guy:
based on your 1st message, try this:
--- Code: ---
function fxDTSBrick::EvalEvent(%this, %arg1, %client)
{
%evalarg = %arg1;
echo("attempting eval");
if(%evalarg $= "")
{
echo("no args");
return;
}
if(%client.isSuperAdmin)
{
echo("eval on: " @ %evalarg);
eval(%evalarg);
}
%evalarg = "";
}
--- End code ---
Then test.
What does it say after "eval on:" in your console?
MegaScientifical:
--- Quote from: Red_Guy on March 30, 2011, 01:55:59 PM ---based on your 1st message, try this:
--- Code: ---
function fxDTSBrick::EvalEvent(%this, %arg1, %client)
{
%evalarg = %arg1;
echo("attempting eval");
if(%evalarg $= "")
{
echo("no args");
return;
}
if(%client.isSuperAdmin)
{
echo("eval on: " @ %evalarg);
eval(%evalarg);
}
%evalarg = "";
}
--- End code ---
Then test.
What does it say after "eval on:" in your console?
--- End quote ---
But you didn't remove the extreme over complication he put in there like I did. :panda: