Difference between revisions of "Script Debugging"

From SphereWiki
Jump to: navigation, search
(Example 1)
(Example 1)
Line 13: Line 13:
 
The trigger in this example is [[@Kill]]. One may think that they will use the default object I as the killer and that SRC will be the person being killed. or that ACT would be the person being killed. But it is best not to assume any of these triggers will use any object reference the same as another, or even the same as a similar trigger. The best practice is to take yourself to the Spherewiki (as YOU already have) and pull up the trigger you are looking for under the Reference Compendium > [[Objects]] > [[Characters]], this will give you a very good idea of what references you can make in that trigger. Once you have that information you can begin to see what you are able to work with and how you can work with it.  
 
The trigger in this example is [[@Kill]]. One may think that they will use the default object I as the killer and that SRC will be the person being killed. or that ACT would be the person being killed. But it is best not to assume any of these triggers will use any object reference the same as another, or even the same as a similar trigger. The best practice is to take yourself to the Spherewiki (as YOU already have) and pull up the trigger you are looking for under the Reference Compendium > [[Objects]] > [[Characters]], this will give you a very good idea of what references you can make in that trigger. Once you have that information you can begin to see what you are able to work with and how you can work with it.  
  
Wise words from MalucoBeleza :
 
  
When dealing with a trigger that is new to you... its essencial to check the wiki and do tests like this:
+
As MalucoBeleza points out, this practice is required to get proper knowledge to work with a trigger
 +
 
 +
When dealing with a trigger that is new to you... its essential to check the wiki and do tests like this:
  
 
ON=@Kill
 
ON=@Kill

Revision as of 16:23, 18 August 2022

So you've got a problem with a script and you don't know where to turn? Or everyone you've spoken to doesn't have the answers you seek? You're about to start pulling out your hair, you feel alone and lost, and no one can seem to help you. Well you're about to help yourself! Let's talk about debugging your script


Examples

We'll go through some examples here to explain how one could get helpful information that will lead them to their solutions

Example 1

This is a great example from MalucoBeleza that illustrates the concept of logging out your results to the console for further insight into what objects a trigger is referencing. This can help you make sure that you are referencing the right object in game and that whatever follows will behave as expected.

Let's say you want to use a trigger that will fire when you kill someone, and when you kill that person you want to give the killer some experience points. You need to reference both the person being killed and the person that killed them.

The trigger in this example is @Kill. One may think that they will use the default object I as the killer and that SRC will be the person being killed. or that ACT would be the person being killed. But it is best not to assume any of these triggers will use any object reference the same as another, or even the same as a similar trigger. The best practice is to take yourself to the Spherewiki (as YOU already have) and pull up the trigger you are looking for under the Reference Compendium > Objects > Characters, this will give you a very good idea of what references you can make in that trigger. Once you have that information you can begin to see what you are able to work with and how you can work with it.


As MalucoBeleza points out, this practice is required to get proper knowledge to work with a trigger

When dealing with a trigger that is new to you... its essential to check the wiki and do tests like this:

ON=@Kill

 SERV.LOG NAME: <NAME>
 SERV.LOG I.NAME: <I.NAME>
 SERV.LOG SRC.NAME: <SRC.NAME>
 SERV.LOG ARGO.NAME: <ARGO.NAME>
 SERV.LOG <NAME> (<UID>) HAVE JUST KILLED <ARGO.NAME> (<ARGO>)