You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
169 lines
5.5 KiB
169 lines
5.5 KiB
---> PC Command List |
|
------> Here's a list of scripts that can be triggered by PC actions and what they do. |
|
------> Configuration is found at conf/script_athena.conf |
|
------> There are two methods to define the script to be use (event_script_type) |
|
------> 0 - By NPC. There has to be an NPC named in the same manner as the event |
|
------> 1 - By Label. Every label from every NPC with the event name will be |
|
executed (note that in this case the event HAS to start with the |
|
word 'On', eg: 'OnPCBaseLvUpEvent:') |
|
|
|
+ PCCommand: OnPCLoginEvent |
|
+ Code by: (davidsiaw) |
|
+ How it works: |
|
When a player logs in, the NPC will run as if he just clicked it. Which means |
|
if the script is like this: |
|
|
|
+ Sample: |
|
prontera,0,0,0 script OnPCLoginEvent -1,{ |
|
mes "lmao"; |
|
close; |
|
} |
|
|
|
+ Explaination: |
|
every player who logs in will receive a message 'lmao' in their face as soon |
|
as they can see the map. |
|
|
|
+ Note: |
|
1) The name of the NPC has to match the one specified in scripts_athena.conf |
|
2) I made it invisible because you don't need to see it. Its an abstract NPC |
|
3) If you don't want it, simply delete it |
|
4) If you have more than one only the first found will be execute (when using |
|
event_script_type 0) |
|
5) You can put this script in ANY file. |
|
6) I put an end; there because that just makes it do nothing. |
|
7) Modify this script to your liking and give your players a surprise |
|
8) Remember: IT RUNS LIKE A NORMAL NPC. BUT THE ONLY WAY TO 'CLICK' IT IS BY |
|
LOGGING ON |
|
9) There are 2 ways to use this - check the examples below! |
|
|
|
----------------------------------------------------------------------------- |
|
|
|
+ PCCommand: OnPcBaseLvUpEvent |
|
+ Code by: lordalfa |
|
+ How it works: |
|
When a player Base level increases, the NPC will run as if he just clicked it. Which means |
|
if the script is like this: |
|
|
|
+ Sample: |
|
- Script OnPCBaseLvUpEvent -1,{ |
|
mes "zomfg...."; |
|
close; |
|
} |
|
|
|
+ Explanation: |
|
whenever a player level ups his/her base level, the words zomfg will pop up |
|
in his face. |
|
|
|
+ Note: |
|
1) This script runs every moment the player gains a level. It is adviced if |
|
you want to repeatedly use this script, to use a sort of filter. |
|
2) If a player gains multiple levels from a single kill, the script will be |
|
only called once at the end. |
|
|
|
----------------------------------------------------------------------------- |
|
|
|
+ PCCommand: OnPcJobLvUpEvent |
|
+ Code by: lordalfa |
|
+ How it works: |
|
It's exactly the same as OnPcBaseLvUpEvent, except it triggers when leveling job. |
|
|
|
----------------------------------------------------------------------------- |
|
|
|
+ PCCommand: OnOnNPCKillEvent |
|
+ Code by: lordalfa |
|
+ How it works: |
|
When a player kills a monster, the NPC will run as if he just clicked it. Which means |
|
if the script is like this: |
|
|
|
+ Sample: |
|
- script OnNPCKillEvent -1,{ |
|
mes "Holy shit"; |
|
close; |
|
} |
|
|
|
+ Explaination: |
|
whenever a player kills a monster on the map, the words "Holy Shit" will appear |
|
on the guy's face. |
|
|
|
+ Note: |
|
1) This script runs everytime a player kills a monster It is adviced if |
|
you want to repeatedly use this script, to use a sort of filter. |
|
2) The var "KilledRid" is set on the killer, this can be used in |
|
strmobinfo to find out info about the Monster that was killed |
|
----------------------------------------------------------------------------- |
|
|
|
+ PCCommand: OnPCKillEvent |
|
+ Code by: zbuffer aka Lance |
|
+ How it works: |
|
It is exactly the same as OnNPCKillEvent, except it triggers when a player kills another player. |
|
|
|
----------------------------------------------------------------------------- |
|
|
|
+ PCCommand: OnPCLoadMapEvent |
|
+ Code by: zbuffer aka Lance |
|
+ How it works: |
|
When a player logs in on the map, the NPC will run as if he just clicked it. Which means |
|
if the script is like this: |
|
|
|
+ Sample: |
|
prontera,159,192,2 script OnPCLoadMapEvent 101,{ |
|
mes "Holy shit"; |
|
close; |
|
} |
|
|
|
----or---> |
|
|
|
OnPCLoadMapEvent: |
|
announce " " strcharinfo(0) + " has changed map!", 16; |
|
end; |
|
|
|
+ Note: |
|
1) Both types will execute regardless of map. |
|
2) The event will only trigger on maps where you enable the 'loadevent' mapflag. |
|
|
|
----------------------------------------------------------------------------- |
|
|
|
+ PCCommand: OnPCDieEvent |
|
+ Code by: Unknown |
|
+ How it works: |
|
When a player dies, the event will be run as if a npc were clicked. The RID of the person killed |
|
will be attached. Simple. It can to be used as a floating npc or as a npc placed on a map. |
|
Notice that this event is server-wide if used as a floating npc, so if you try running it for |
|
more than one map, and want to make a single npc, you'll have to use some sort of filter, which |
|
can be getmapxy, something like this: |
|
|
|
- script PCDieEvent -1,{ |
|
if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish; |
|
if (@mapname$ == "valkyrie") || (@mapname$ == "amatsu") { |
|
killmonster "valkyrie","All"; |
|
announce "Deep Voice: You have failed.... you have another opportunity though...",bc_self,0x660033; |
|
if (killtest != 0) enablenpc "Outern Voices"; |
|
if (killedonce == 1) end; |
|
set killedonce,1; |
|
} else |
|
end; |
|
|
|
L_Finish: |
|
end; |
|
} |
|
|
|
----or----> |
|
|
|
OnPCDieEvent: |
|
if (getmapxy(@mapname$,@mapx,@mapy,0) == -1) goto L_Finish; |
|
if (@mapname$ == "valkyrie") || (@mapname$ == "amatsu") { |
|
killmonster "valkyrie","All"; |
|
announce "Deep Voice: You have failed.... you have another opportunity though...",bc_self,0x660033; |
|
if (killtest != 0) enablenpc "Outern Voices"; |
|
if (killedonce == 1) end; |
|
set killedonce,1; |
|
} else |
|
end; |
|
|
|
L_Finish: |
|
end; |
|
|
|
We're using getmapxy to obtain the mapname, then adjust our commands and actions depending on the |
|
map. We could also use the command to find if the player died inside a wished area. |
|
|
|
-----------------------------------------------------------------------------
|
|
|