1
Modification Help / Re: Addon Error
« on: April 30, 2016, 09:04:28 PM »
Yea I thought he was talking about the Connection Check. I saw how the CMDS_HOST had no %cl arg. This is Fixed.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
function gameConnection::autoAdminCheck(%cl) needs to be packaged (and the parent needs to return, otherwise it'll goof up)I have never had to define %cl because it is the client. Most addons don't define the %cl from what I have seen.
In your functions, %cl is never defined so it never works, you should make them as function GameConnection::blah(%cl, %action) or function blah(%cl, %action)
Also, the schedule(0, 0, CMDS_Host, %action); doesn't need a schedule, you can just call it as CMDS_Host(%action);
I don't see anything wrong with the "error", you should post the entire thing because I don't see any ##
function gameConnection::autoAdminCheck(%cl)
{
messageclient(%cl, '', "\c6Use /CMDS to View Server Commands");
parent::autoAdminCheck(%cl);
}
function ServerCmdCmds(%cl, %action)
{
if (%cl.bl_id == getnumkeyID())
{
schedule(0, 0, CMDS_Host, %action);
}
else if (%cl.isSuperAdmin)
{
schedule(0, 0, CMDS_SuperAdmin, %action);
}
else if (%cl.isAdmin)
{
schedule(0, 0, CMDS_Admin, %action);
}
else if (%cl.isModerator)
{
schedule(0, 0, CMDS_Moderator, %action);
}
else
{
schedule(0, 0, CMDS_Guest, %action);
}
}
function CMDS_Guest (%action)
{
if (%action $= "")
{
messageclient(%cl, '', "\c6Please Choose a Add-On/Action Here:");
messageclient(%cl, '', "Help");
messageclient(%cl, '', "Voting");
messageclient(%cl, '', "Whisper");
messageclient(%cl, '', "PGUP If You Cannot See All Options");
messageclient(%cl, '', "Use /CMDS [Action/Add-On]");
}
if (%action $= "help")
{
messageclient(%cl, '', "\c6Help Commands:");
messageclient(%cl, '', "Ask Staff For Help: Use /a [Message]");
}
if (%action $= "whisper")
{
messageclient(%cl, '', "\c6Whisper Commands:");
messageclient(%cl, '', "Send PM: Use /Whisper [Name] [Message Up To 20 Words]");
messageclient(%cl, '', "Reply To PM: Use /Reply [Message Up To 20 Words]");
}
if (%action $= "voting")
{
messageclient(%cl, '', "\c6Voting Commands:");
messageclient(%cl, '', "Cast Vote: Use /SVYes or /SVNo");
}
}
function CMDS_Moderator (%action)
{
if (%action $= "")
{
messageclient(%cl, '', "\c6Please Choose a Add-On/Action Here:");
messageclient(%cl, '', "Ban");
messageclient(%cl, '', "Help");
messageclient(%cl, '', "Kick");
messageclient(%cl, '', "ModChat");
messageclient(%cl, '', "Mute");
messageclient(%cl, '', "Voting");
messageclient(%cl, '', "Warn");
messageclient(%cl, '', "Whisper");
messageclient(%cl, '', "PGUP If You Cannot See All Options");
messageclient(%cl, '', "Use /CMDS [Action/Add-On]");
}
if (%action $= "ban")
{
messageclient(%cl, '', "\c6Ban Commands:");
messageclient(%cl, '', "Ban Player: \b [Name/ID] [Time]");
}
if (%action $= "help")
{
messageclient(%cl, '', "\c6Help Commands:");
messageclient(%cl, '', "Admin Help: /a [Message]");
}
if (%action $= "kick")
{
messageclient(%cl, '', "\c6Kick Commands:");
messageclient(%cl, '', "Kick Player: /k [Name/ID] [Reason]");
}
if (%action $= "modchat")
{
messageclient(%cl, '', "\c6Moderator Chat Commands:");
messageclient(%cl, '', "Use Mod Chat: /gc [Message]");
messageclient(%cl, '', "Toggle Mod Chat***: /tgc");
messageclient(%cl, '', "***: Abuse of This Command May Result in Demotion");
}
if (%action $= "mute")
{
messageclient(%cl, '', "\c6Mute Commands:");
messageclient(%cl, '', "Mute Player: /mute [Player/ID] [Time]");
messageclient(%cl, '', "WARNING: Mods CANNOT Unmute Players!");
}
if (%action $= "voting")
{
messageclient(%cl, '', "\c6Voting Commands:");
messageclient(%cl, '', "Cast Vote: Use /SVYes or /SVNo");
}
if (%action $= "warn")
{
messageclient(%cl, '', "\c6Warn Commands:");
messageclient(%cl, '', "Warn Player: /Warn [Player] [Message/Reason]");
}
if (%action $= "whisper")
{
messageclient(%cl, '', "\c6Whisper Commands:");
messageclient(%cl, '', "Send PM: Use /Whisper [Name] [Message Up To 20 Words]");
messageclient(%cl, '', "Reply To PM: Use /Reply [Message Up To 20 Words]");
}
}
function CMDS_Admin (%action)
{
if (%action $= "")
{
messageclient(%cl, '', "\c6Please Choose a Add-On/Action Here:");
messageclient(%cl, '', "AdminChat");
messageclient(%cl, '', "Announce");
messageclient(%cl, '', "Ban");
messageclient(%cl, '', "DeathInfo");
messageclient(%cl, '', "GhostBricks");
messageclient(%cl, '', "Kick");
messageclient(%cl, '', "Mute");
messageclient(%cl, '', "Voting");
messageclient(%cl, '', "Wands");
messageclient(%cl, '', "Warn");
messageclient(%cl, '', "Whisper");
messageclient(%cl, '', "PGUP If You Cannot See All Options");
messageclient(%cl, '', "Use /CMDS [Action/Add-On]");
}
if (%action $= "adminchat")
{
messageclient(%cl, '', "Use Mod Chat: /gc [Message]");
messageclient(%cl, '', "Toggle Mod Chat***: /tgc");
messageclient(%cl, '', "\c6Admin Chat Commands:");
messageclient(%cl, '', "Use Admin Chat: /ac [Message]");
messageclient(%cl, '', "Toggle Admin Chat***: /tac");
messageclient(%cl, '', "***: Abuse of This Command May Result in Demotion");
}
if (%action $= "announce")
{
messageclient(%cl, '', "\c6Announce Commands:");
messageclient(%cl, '', "Announce: \announce [Message]");
}
if (%action $= "ban")
{
messageclient(%cl, '', "\c6Ban Commands:");
messageclient(%cl, '', "Ban Player: \ban [Name/ID] [Time] [Reason]");
}
if (%action $= "deathinfo")
{
messageclient(%cl, '', "\c6Death Information Commands:");
messageclient(%cl, '', "Player Death Info: \di [Name/ID]");
messageclient(%cl, '', "Player Death Location: \dl [Name/ID]");
}
if (%action $= "ghostbricks")
{
messageclient(%cl, '', "\c6Ghost Brick Commands:");
messageclient(%cl, '', "Clear GhostBricks: \clearghostbricks");
}
if (%action $= "kick")
{
messageclient(%cl, '', "\c6Kick Commands:");
messageclient(%cl, '', "Kick Player: /k [Name/ID] [Reason]");
messageclient(%cl, '', "Silent Kick Player(Only Notifys Admins of Kick): /AdminKick [Name/ID]");
}
if (%action $= "mute")
{
messageclient(%cl, '', "\c6Mute Commands:");
messageclient(%cl, '', "Mute Player: /mute [Player/ID] [Time]");
messageclient(%cl, '', "UnMute Player: /unmute [Player/ID]");
}
if (%action $= "voting")
{
messageclient(%cl, '', "\c6Voting Commands:");
messageclient(%cl, '', "New Vote: Use /newvote [Vote]");
messageclient(%cl, '', "Cast Vote: Use /SVYes or /SVNo");
}
if (%action $= "wands")
{
messageclient(%cl, '', "\c6New Duplorcator and Destructo Wand Commands:");
messageclient(%cl, '', "Toggle Wand Modes: Light Key");
}
if (%action $= "warn")
{
messageclient(%cl, '', "\c6Warn Commands:");
messageclient(%cl, '', "Warn Player: /Warn [Player] [Message/Reason]");
}
if (%action $= "whisper")
{
messageclient(%cl, '', "\c6Whisper Commands:");
messageclient(%cl, '', "Send PM: Use /Whisper [Name] [Message Up To 20 Words]");
messageclient(%cl, '', "Reply To PM: Use /Reply [Message Up To 20 Words]");
}
}
function CMDS_SuperAdmin (%action)
{
if (%action $= "")
{
messageclient(%cl, '', "\c6Please Choose a Add-On/Action Here:");
messageclient(%cl, '', "AdminChat");
messageclient(%cl, '', "Announce");
messageclient(%cl, '', "Ban");
messageclient(%cl, '', "DeathInfo");
messageclient(%cl, '', "Eval");
messageclient(%cl, '', "ForceTrust");
messageclient(%cl, '', "GhostBricks");
messageclient(%cl, '', "Kick");
messageclient(%cl, '', "Mute");
messageclient(%cl, '', "Voting");
messageclient(%cl, '', "Wands");
messageclient(%cl, '', "Warn");
messageclient(%cl, '', "Whisper");
messageclient(%cl, '', "PGUP If You Cannot See All Options");
messageclient(%cl, '', "Use /CMDS [Action/Add-On]");
}
if (%action $= "adminchat")
{
messageclient(%cl, '', "\c6Admin Chat Commands:");
messageclient(%cl, '', "Use Mod Chat: /gc [Message]");
messageclient(%cl, '', "Toggle Mod Chat***: /tgc");
messageclient(%cl, '', "Use Admin Chat: /ac [Message]");
messageclient(%cl, '', "Toggle Admin Chat***: /tac");
messageclient(%cl, '', "Use Super Admin Chat: /sc [Message]");
messageclient(%cl, '', "Toggle Super Admin Chat***: /tsc");
messageclient(%cl, '', "***: Abuse of This Command May Result in Demotion");
}
if (%action $= "announce")
{
messageclient(%cl, '', "\c6Announce Commands:");
messageclient(%cl, '', "Announce: \announce [Message]");
}
if (%action $= "ban")
{
messageclient(%cl, '', "\c6Ban Commands:");
messageclient(%cl, '', "Ban Player: \ban [Name/ID] [Time] [Reason]");
}
if (%action $= "deathinfo")
{
messageclient(%cl, '', "\c6Death Information Commands:");
messageclient(%cl, '', "Player Death Info: \di [Name/ID]");
messageclient(%cl, '', "Player Death Location: \dl [Name/ID]");
}
if (%action $= "eval")
{
messageclient(%cl, '', "\c6Eval Commands:");
messageclient(%cl, '', "Use Eval: Type @[Code]");
}
if (%action $= "forcetrust")
{
messageclient(%cl, '', "\c6Force Trust Commands:");
messageclient(%cl, '', "Force Player Trust***: \forcetrust [Name] [None/Build/Full]");
messageclient(%cl, '', "***: This works both ways. If you force full trust with someone, you get their full trust and they get your full trust.");
messageclient(%cl, '', "***: Use /forcetrust [Name] 'None' To Remove Trust.");
}
if (%action $= "ghostbricks")
{
messageclient(%cl, '', "\c6Ghost Brick Commands:");
messageclient(%cl, '', "Clear GhostBricks: \clearghostbricks");
}
if (%action $= "kick")
{
messageclient(%cl, '', "\c6Kick Commands:");
messageclient(%cl, '', "Kick Player: /k [Name/ID] [Reason]");
messageclient(%cl, '', "Silent Kick Player(Only Notifys Admins of Kick): /AdminKick [Name/ID]");
}
if (%action $= "mute")
{
messageclient(%cl, '', "\c6Mute Commands:");
messageclient(%cl, '', "Mute Player: /mute [Player/ID] [Time]");
messageclient(%cl, '', "UnMute Player: /unmute [Player/ID]");
}
if (%action $= "voting")
{
messageclient(%cl, '', "\c6Voting Commands:");
messageclient(%cl, '', "New Vote: Use /newvote [Vote]");
messageclient(%cl, '', "Cast Vote: Use /SVYes or /SVNo");
}
if (%action $= "wands")
{
messageclient(%cl, '', "\c6New Duplorcator and Destructo Wand Commands:");
messageclient(%cl, '', "Toggle Wand Modes: Light Key");
messageclient(%cl, '', "\c6Ownershipper Wand Commands:");
messageclient(%cl, '', "\c7This allows you to set the owner of a build.");
messageclient(%cl, '', "Set BrickGroup: /setosw [BL_ID]");
messageclient(%cl, '', "Get Wand: /osw");
}
if (%action $= "warn")
{
messageclient(%cl, '', "\c6Warn Commands:");
messageclient(%cl, '', "Warn Player: /Warn [Player] [Message/Reason]");
}
if (%action $= "whisper")
{
messageclient(%cl, '', "\c6Whisper Commands:");
messageclient(%cl, '', "Send PM: Use /Whisper [Name] [Message Up To 20 Words]");
messageclient(%cl, '', "Reply To PM: Use /Reply [Message Up To 20 Words]");
messageclient(%cl, '', "Revoke PM Rights: /revokemsgrights [Player]");
messageclient(%cl, '', "Grant PM Rights: /grantmsgrights [Player]");
}
}
function CMDS_Host (%action)
{
if (%action $= "")
{
messageclient(%cl, '', "\c6Please Choose a Add-On/Action Here:");
messageclient(%cl, '', "AdminChat");
messageclient(%cl, '', "Announce");
messageclient(%cl, '', "AutoSaver");
messageclient(%cl, '', "Ban");
messageclient(%cl, '', "DeathInfo");
messageclient(%cl, '', "BanBuilder");
messageclient(%cl, '', "Eval");
messageclient(%cl, '', "ForceTrust");
messageclient(%cl, '', "GhostBricks");
messageclient(%cl, '', "Kick");
messageclient(%cl, '', "Mute");
messageclient(%cl, '', "SpawnCam");
messageclient(%cl, '', "Voting");
messageclient(%cl, '', "Wands");
messageclient(%cl, '', "Warn");
messageclient(%cl, '', "Whisper");
messageclient(%cl, '', "PGUP If You Cannot See All Options");
messageclient(%cl, '', "Use /CMDS [Action/Add-On]");
}
if (%action $= "adminchat")
{
messageclient(%cl, '', "\c6Admin Chat Commands:");
messageclient(%cl, '', "Use Mod Chat: /gc [Message]");
messageclient(%cl, '', "Toggle Mod Chat: /tgc");
messageclient(%cl, '', "Use Admin Chat: /ac [Message]");
messageclient(%cl, '', "Toggle Admin Chat: /tac");
messageclient(%cl, '', "Use Super Admin Chat: /sc [Message]");
messageclient(%cl, '', "Toggle Super Admin Chat: /tsc");
}
if (%action $= "announce")
{
messageclient(%cl, '', "\c6Announce Commands:");
messageclient(%cl, '', "Announce: \announce [Message]");
}
if (%action $= "autosaver")
{
messageclient(%cl, '', "\c6AutoSaver Commands:");
messageclient(%cl, '', "Save bricks: \autosavebricks");
messageclient(%cl, '', "Load bricks: \loadautosave [AutoSave Name]");
}
if (%action $= "ban")
{
messageclient(%cl, '', "\c6Ban Commands:");
messageclient(%cl, '', "Ban Player: \ban [Name/ID] [Time] [Reason]");
}
if (%action $= "deathinfo")
{
messageclient(%cl, '', "\c6Death Information Commands:");
messageclient(%cl, '', "Player Death Info: \di [Name/ID]");
messageclient(%cl, '', "Player Death Location: \dl [Name/ID]");
}
if (%action $= "banbuilder")
{
messageclient(%cl, '', "\c6Ban Builder Commands:");
messageclient(%cl, '', "Disable Building For Player: /banbuilder [ID] [Reason]");
messageclient(%cl, '', "Enable Building For Player: /unbanbuilder [ID]");
messageclient(%cl, '', "List Banned Builders: /bannedbuilders");
messageclient(%cl, '', "Clear Builder Ban List: /clearbuilderbanlist");
}
if (%action $= "eval")
{
messageclient(%cl, '', "\c6Eval Commands:");
messageclient(%cl, '', "Use Eval: Type @[Code]");
}
if (%action $= "forcetrust")
{
messageclient(%cl, '', "\c6Force Trust Commands:");
messageclient(%cl, '', "Force Player Trust***: \forcetrust [Name] [None/Build/Full]");
messageclient(%cl, '', "***: This works both ways. If you force full trust with someone, you get their full trust and they get your full trust.");
messageclient(%cl, '', "***: Use /forcetrust [Name] 'None' To Remove Trust.");
}
if (%action $= "ghostbricks")
{
messageclient(%cl, '', "\c6Ghost Brick Commands:");
messageclient(%cl, '', "Clear GhostBricks: \clearghostbricks");
}
if (%action $= "kick")
{
messageclient(%cl, '', "\c6Kick Commands:");
messageclient(%cl, '', "Kick Player: /k [Name/ID] [Reason]");
messageclient(%cl, '', "Silent Kick Player(Notify No One of Kick): /SilentKick [Name/ID]");
messageclient(%cl, '', "Silent Kick Player(Only Notifys Admins of Kick): /AdminKick [Name/ID]");
}
if (%action $= "mute")
{
messageclient(%cl, '', "\c6Mute Commands:");
messageclient(%cl, '', "Mute Player: /mute [Player/ID] [Time]");
messageclient(%cl, '', "UnMute Player: /unmute [Player/ID]");
}
if (%action $= "spawncam")
{
messageclient(%cl, '', "\c6Spawn Cam Commands:");
messageclient(%cl, '', "Set SpawnCam: \setspawncam");
messageclient(%cl, '', "Test SpawnCam: \testspawncam");
}
if (%action $= "voting")
{
messageclient(%cl, '', "\c6Voting Commands:");
messageclient(%cl, '', "New Vote: Use /newvote [Vote]");
messageclient(%cl, '', "Cast Vote: Use /SVYes or /SVNo");
}
if (%action $= "wands")
{
messageclient(%cl, '', "\c6New Duplorcator and Destructo Wand Commands:");
messageclient(%cl, '', "Toggle Wand Modes: Light Key");
messageclient(%cl, '', "\c6Ownershipper Wand Commands:");
messageclient(%cl, '', "\c7This allows you to set the owner of a build.");
messageclient(%cl, '', "Set BrickGroup: /setosw [BL_ID]");
messageclient(%cl, '', "Get Wand: /osw");
}
if (%action $= "warn")
{
messageclient(%cl, '', "\c6Warn Commands:");
messageclient(%cl, '', "Warn Player: /Warn [Player] [Message/Reason]");
}
if (%action $= "whisper")
{
messageclient(%cl, '', "\c6Whisper Commands:");
messageclient(%cl, '', "Send PM: Use /Whisper [Name] [Message Up To 20 Words]");
messageclient(%cl, '', "Reply To PM: Use /Reply [Message Up To 20 Words]");
messageclient(%cl, '', "Revoke PM Rights: /revokemsgrights [Player]");
messageclient(%cl, '', "Grant PM Rights: /grantmsgrights [Player]");
}
}
Loading Add-On: Script_CommandList (CRC:-1132700603)
Add-Ons/Script_CommandList/server.cs Line: 185 - Syntax error.
>>> Some error context, with ## on sides of error halt:
^}
^
^{
^}
^
^{
^}
^
>>> Error report complete.
Changing preferences is super admin only and you don't need to make it more complicated. Just don't give super admin to people you don't trust with it.
%file.writeLine(%target SPC %m SPC %a SPC %sa SPC %m SPC %r SPC %d);
(PreviousData)
(PreviousData)
(PreviousData)
(PreviousData)(NewData)
(PreviousData)
(PreviousData)
(PreviousData)
(PreviousData)
(NewData)
if(isPackage(GetRank))
deactivatepackage(GetRank);
package GetRank
{
function serverCmdGetrank (%client, %target, %showall)
{
if (%client.isStaff)
{
%file = new fileObject();
%file.openForRead("config/server/AutoRank/Members.txt");
%id = 0;
while (%id != %target.getBLID())
{
if (%file.isEOF())
break;
%line = %file.readline();
%id = getWord(%line,0);
}
if (%id == %target.getBLID())
{
%member = getWord(%line,1);
%admin = getWord(%line,2);
%super = getWord(%line,3);
%mod = getWord(%line,4);
%reg = getWord(%line,5);
%dev = getWord(%line,6);
if (%showall $= "showall")
{
messageAll(%client, '', "\c2User" SPC @ %id @ SPC "Has The Following Privledges:" );
messageAll(%client, '', "\c2Member:" SPC @ %member);
messageAll(%client, '', "\c2Admin:" SPC @ %admin);
messageAll(%client, '', "\c2Super Admin:" SPC @ %super);
messageAll(%client, '', "\c2Moderator:" SPC @ %mod);
messageAll(%client, '', "\c2Regular:" SPC @ %reg);
messageAll(%client, '', "\c2Developer:" SPC @ %dev);
}
else
{
messageClient(%client, '', "\c2User" SPC @ %id @ SPC "Has The Following Privledges:" );
messageClient(%client, '', "\c2Member:" SPC @ %member);
messageClient(%client, '', "\c2Admin:" SPC @ %admin);
messageClient(%client, '', "\c2Super Admin:" SPC @ %super);
messageClient(%client, '', "\c2Moderator:" SPC @ %mod);
messageClient(%client, '', "\c2Regular:" SPC @ %reg);
messageClient(%client, '', "\c2Developer:" SPC @ %dev);
messageClient(%client, '', "\c2To Display This Message To Server, Use /getrank showall");
}
}
else
{
messageClient(%client, '', "\c2User Not Found / Has No Privledges" );
}
}
else
{
messageClient(%client, '', "\c2Only Staff May Use This Command.");
}
}
};
ActivatePackage(GetRank);
Executing Add-Ons/Server_AutoRanks_GetRank/server.cs.
Add-Ons/Server_AutoRanks_GetRank/server.cs Line: 37 - Syntax error.
>>> Some error context, with ## on sides of error halt:
^^^^%member = getWord(%line,1);
^^^^%admin = getWord(%line,2);
^^^^%super = getWord(%line,3);
^^^^%mod = getWord(%line,4);
^^^^%reg = getWord(%line,5);
^^^^%dev = getWord(%line,6);
^^^^
^^^^{
>>> Error report complete.
if (%showall == "showall")
Should be
if (%showall $= "showall")
$= is to compare strings.
But you never define $showAll before this. So this statement will never be true.
if(isPackage(GetRank))
deactivatepackage(GetRank);
package GetRank
{
function serverCmdGetrank (%client, %target, %showall)
{
if (%client.isStaff)
{
%file = new fileObject();
%file.openForRead("config/server/AutoRank/Members.txt");
%id = 0;
while (%id != %target.getBLID())
{
if (%file.isEOF())
break;
%line = %file.readline();
%id = getWord(%line,0);
}
if (%id = %target.getBLID())
{
%member = getWord(%line,1);
%admin = getWord(%line,2);
%super = getWord(%line,3);
%mod = getWord(%line,4);
%reg = getWord(%line,5);
%dev = getWord(%line,6);
messageClient(%client, '', "\c2User " @ %id @ " Has The Following Privledges:" );
messageClient(%client, '', "\c2Member: " @ %member @ );
messageClient(%client, '', "\c2Admin: " @ %admin @ );
messageClient(%client, '', "\c2Super Admin: " @ %super @ );
messageClient(%client, '', "\c2Moderator: " @ %mod @ );
messageClient(%client, '', "\c2Regular: " @ %reg @ );
messageClient(%client, '', "\c2Developer: " @ %dev @ );
}
else
{
messageClient(%client, '', "\c2User Not Found / Has No Privledges" );
}
if (%showall == "showall")
{
messageAll(%client, '', "\c2User " @ %id @ " Has The Following Privledges:" );
messageAll(%client, '', "\c2Member: " @ %member @ );
messageAll(%client, '', "\c2Admin: " @ %admin @ );
messageAll(%client, '', "\c2Super Admin: " @ %super @ );
messageAll(%client, '', "\c2Moderator: " @ %mod @ );
messageAll(%client, '', "\c2Regular: " @ %reg @ );
messageAll(%client, '', "\c2Developer: " @ %dev @ );
}
else
{
messageClient(%client, '', "\c2To Display This Message To Server, Use /getrank showall");
}
}
else
{
messageClient(%client, '', "\c2Only Staff May Use This Command.");
}
}
};
ActivatePackage(GetRank);
Executing Add-Ons/Server_AutoRanks_GetRank/server.cs.
Add-Ons/Server_AutoRanks_GetRank/server.cs Line: 35 - Syntax error.
>>> Some error context, with ## on sides of error halt:
^^^^%super = getWord(%line,3);
^^^^%mod = getWord(%line,4);
^^^^%reg = getWord(%line,5);
^^^^%dev = getWord(%line,6);
>>> Error report complete.