
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10163 54d463be-8e91-2dee-dedb-b68131a5f0ec
170 lines
5.5 KiB
Plaintext
170 lines
5.5 KiB
Plaintext
---> 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.
|
|
|
|
-----------------------------------------------------------------------------
|