Skip to content

Instantly share code, notes, and snippets.

@bato3
Created July 31, 2014 05:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bato3/bbb045517b3111e8f1dd to your computer and use it in GitHub Desktop.
Save bato3/bbb045517b3111e8f1dd to your computer and use it in GitHub Desktop.
Lineage II walker syntax
<?php
/*************************************************************************************
* l2s.php
* --------
* Author: Wojciech Bajon (wojciech.bajon g;)mail.com)
* Copyright: (c) 2010 Wojciech Bajon
* Release Version: 0.1
* Date Started: 2010/07/22
*
* L2.net script language file for GeSHi.
*
* CHANGES
* -------
* 2010/07/22 (0.1)
* - First Release
*
* TODO
* -------------------------
* INCLUDE css hack fix: GESHI_BEFORE => '<span class="includ">INCLUDE</span> ',
* variables in variables in string: "string <&MYAL2.A.<&DEF_TEST&>&> "
* INCLUDE "string"
*
*
*************************************************************************************
*
* On Apache licence
*
************************************************************************************/
$L2S_GESHI_VARIABLES_LIST = 'ZERO|ONE|TWO|FALSE|TRUE|NULL|PI|E'
.'|RANDI|RANDD'
.'|CMD|GUI|HTML|GDI|ASTERISK|ERROR|EXCLAMATION|HAND|INFORMATION'
.'|NONE|QUESTION|STOP|WARNING'
.'|TOWN|CLANHALL|CASTLE|SIEGEHQ|FORTRESS'
.'|CHAR_NAME|CHAR_ID|CHAR_KARMA|CHAR_TITLE|CHAR_SP|CHAR_XP'
.'|CHAR_LEVEL|CHAR_SEX|CHAR_RACE|CHAR_CLASS'
.'|CHAR_X|CHAR_Y|CHAR_Z|CHAR_DESTX|CHAR_DESTY|CHAR_DESTZ'
.'|CHAR_MAX_HP|CHAR_MAX_MP|CHAR_MAX_CP|CHAR_CUR_HP|CHAR_CUR_MP'
.'|CHAR_CUR_CP|CHAR_CUR_LOAD|CHAR_MAX_LOAD|CHAR_RUN|CHAR_RUN_SPEED'
.'|CHAR_WALK_SPEED|CHAR_ATTACK_SPEED|CHAR_ATTACK_SPEED_MULT'
.'|CHAR_CAST_SPEED|CHAR_EVAL|CHAR_PARTY_COUNT|CHAR_PATK|CHAR_MATK'
.'|CHAR_PDEF|CHAR_MDEF|CHAR_ACCURACY|CHAR_EVASION|CHAR_CRITICAL'
.'|CHAR_STR|CHAR_DEX|CHAR_CON|CHAR_INT|CHAR_WIT|CHAR_MEN'
.'|CHAR_CUBIC_COUNT|CHAR_PVP_COUNT|CHAR_PK_COUNT|CHAR_RUNNING'
.'|CHAR_SITTING|CHAR_LOOKS_DEAD'
.'|TARGET_NAME|TARGET_KARMA|TARGET_TITLE|TARGET_CLAN|TARGET_ALLY'
.'|TARGET_X|TARGET_Y|TARGET_Z|TARGET_DESTX|TARGET_DESTY'
.'|TARGET_DESTZ|TARGET_MAX_HP|TARGET_MAX_MP|TARGET_MAX_MP'
.'|TARGET_CUR_HP|TARGET_CUR_MP|TARGET_CUR_CP|TARGET_SPOILED'
.'|TARGET_RUN_SPEED|TARGET_WALK_SPEED|TARGET_ATTACK_SPEED'
.'|TARGET_CAST_SPEED|TARGET_ID|TARGET_TARGETID|TARGET_TYPEID'
.'|TARGET_TYPE|TARGET_RUNNING|TARGET_SITTING|TARGET_LOOKS_DEAD'
.'|WALKING|RUNNING|SITTING|STANDING'
.'|START_FAKEDEATH|STOP_FAKEDEATH'
.'|ALIVE|DEAD'
.'|NEAREST_ITEM_DISTANCE|NEAREST_NPC_DISTANCE'
.'|NEAREST_PLAYER_DISTANCE|NEAREST_ITEM_ID|NEAREST_NPC_ID'
.'|NEAREST_PLAYER_ID'
.'|COUNT_NPC_TARGETME|COUNT_PLAYER_TARGETME'
.'|CHANNEL_ALL|CHANNEL_SHOUT|CHANNEL_PRIVATE|CHANNEL_PARTY'
.'|CHANNEL_CLAN|CHANNEL_GM|CHANNEL_PETITION|CHANNEL_PETITIONREPLY'
.'|CHANNEL_TRADE|CHANNEL_ALLY|CHANNEL_ANNOUNCEMENT|CHANNEL_BOAT'
.'|CHANNEL_PARTYROOM|CHANNEL_PARTYCOMMANDER|CHANNEL_HERO'
.'|TYPE_ERROR|TYPE_NONE|TYPE_SELF|TYPE_PLAYER|TYPE_NPC'
.'|SHORTCUT_ITEM|SHORTCUT_SKILL|SHORTCUT_ACTION|SHORTCUT_MACRO'
.'|SHORTCUT_RECIPE'
.'|TICKS_PER_MS|TICKS_PER_S|TICKS_PER_M|TICKS_PER_H|TICKS_PER_D'
.'|SCRIPTEVENT_CHAT|SCRIPTEVENT_SELFDIE|SCRIPTEVENT_SELFREZ'
.'|SCRIPTEVENT_SELFENTERCOMBAT|SCRIPTEVENT_SELFLEAVECOMBAT|'
.'SCRIPTEVENT_SELFSTOPMOVE|SCRIPTEVENT_SELFTARGETED|'
.'SCRIPTEVENT_SELFUNTARGETED|SCRIPTEVENT_TARGETDIE|'
.'SCRIPTEVENT_CHATTOBOT|SCRIPTEVENT_UDPRECEIVE|'
.'SCRIPTEVENT_SKILLUSED|SCRIPTEVENT_SKILLLAUNCHED|'
.'SCRIPTEVENT_SKILLCANCELED|SCRIPTEVENT_OTHERSKILLUSED|'
.'SCRIPTEVENT_OTHERSKILLLAUNCHED|SCRIPTEVENT_OTHERSKILLCANCELED|'
.'SCRIPTEVENT_JOINPARTY|SCRIPTEVENT_LEAVEPARTY|'
.'SCRIPTEVENT_UDPRECEIVEBB|SCRIPTEVENT_SERVERPACKET|'
.'SCRIPTEVENT_SERVERPACKETEX|'
.'SYSTEM_THREADCOUNT|SYSTEM_CURRENTFILE|SYSTEM_HANDLECOUNT|'
.'SYSTEM_MEMORYUSAGE|SYSTEM_MEMORYALLOCATED|SYSTEM_STACKHEIGHT|'
.'SYSTEM_VERSION|SYSTEM_CHRONICLE|'
.'ENV_MACHINENAME|ENV_USERNAME';
$language_data = array (
'LANG_NAME' => 'L2S',
'COMMENT_SINGLE' => array(1 => '//'),
'COMMENT_MULTI' => array('/*' => '*/', '/**'=>'*/'),
'CASE_KEYWORDS' => GESHI_CAPS_UPPER,
'QUOTEMARKS' => array( '"'),
'ESCAPE_CHAR' => '\\',
'ESCAPE_REGEXP' => array(
1 => "/<&(".$L2S_GESHI_VARIABLES_LIST.")&>/",
2 => "/<&[^&]+&>/",
3 => '/#[id]\d+(\.\d+)?/',
4 => '#(/attack|/invite\s*[a-zA-Z_\-\d]*|/leave|'
.'/dismiss\s*[a-zA-Z_\-\d]*|/changepartyleader\s*[a-zA-Z_\-\d]*|'
.'/socialhello|/socialvictory|/socialcharge|/socialno|/socialyes|'
.'/socialbow|/socialunaware|/socialwaiting|/sociallaugh|'
.'/socialapplause|/socialdance|/socialsad|/charm|/nsociallevelup|'
.'/nsocialhero|/nsocialflame|/sit|/stand|/walk|/run|/buttonsit|'
.'/buttonwalk|/unstuck|/loc|/mount|/dismount|/time|/partyinfo|'
.'/attacklist|/warlist|/friendlist|/friendinvite\s*[a-zA-Z_\-\d]*|'
.'/frienddel\s*[a-zA-Z_\-\d]*|/block\s*[a-zA-Z_\-\d]*|'
.'/unblock\s*[a-zA-Z_\-\d]*|/blocklist|/evaluate|/gmlist|'
.'/skill\s*[a-zA-Z_\-\d]*|/script|/flush|/cls|/hidedead|'
.'/hideaccept|/restart|/logout|/playerloc\s*[a-zA-Z_\-\d]*|'
.'/assist|/assist\s*[a-zA-Z_\-\d]*|/spause|/sresume|/sstop|'
.'/getskills|/target\s*[a-zA-Z_\-\d]*|/generalmanufacture|'
.'/vendor|/buy|/godmode|/nick\s*[a-zA-Z_\-\d]*|/forcelogout|'
.'/instancezone|/allblock|/allunblock|/allyinfo|/siegestatus|'
.'/withdraw|/clanwarstart\s*[a-zA-Z_\-\d]*|'
.'/clanwarstop\s*[a-zA-Z_\-\d]*|/duel\s*[a-zA-Z_\-\d]*|'
.'/partyduel\s*[a-zA-Z_\-\d]*|/mybirthday)#',
),
'KEYWORDS' => array(
1 => array(
'INT', 'DOUBLE', 'STRING', 'FILEWRITER', 'FILEREADER', 'ARRAYLIST',
'SORTEDLIST', 'STACK', 'QUEUE', 'BYTEBUFFER', 'WINDOW',
),
2 => array( 'PRIVATE', 'PROTECTED', 'PUBLIC'),
3 => array(
'BREAK', 'CASE', 'CLASS', 'DEFINE', 'DO', 'ELSE', 'ENDIF', 'END_SCRIPT', 'FOR', 'FOREACH',
'FUNCTION', 'LABEL', 'LOCK', 'LOOP', 'IF',
'NEXT', 'NEXTEACH', 'PAUSE',
'RETURN', 'SCRIPT_END', 'SET', 'SWITCH', 'THREAD', 'UNLOCK',
'VAR_START', 'VAR_END', 'WEND',
'WHILE', 'END_CLASS', 'VOID'
),
// functions
4 => array(
'ADD_BORDER_PT', 'ADD_WALL', 'ATTACK_TARGET', 'BLOCK', 'BLOCKEX', 'BOTSET', 'CANCEL_TARGET','CHAR_GET_ID', 'CHAR_GET_NAME', 'CHECK_TARGETING', 'CLAN_GET_ID', 'CLAN_GET_NAME', 'CLEAR_BLOCK', 'CLEAR_BLOCKEX', 'CLEAR_BORDER', 'CLEAR_WALLS', 'CLICK_NEAREST_ITEM', 'CRYSTALIZE_ITEM', 'DELETE_ITEM', 'DELETE_SHORTCUT', 'DISTANCE', 'DROP_ITEM', 'FORCE_LOG', 'GET_ELIZA', 'GET_INVENTORY', 'GET_ITEMS', 'GET_NPCS', 'GET_PARTY', 'GET_PLAYERS', 'GET_RAND', 'GET_TIME', 'IGNORE_ITEM', 'INJECT', 'INJECT_CLIENT', 'INJECTBB', 'INJECTBB_CLIENT', 'INVEN_GET_ITEMID', 'INVEN_GET_UID', 'ITEM_COUNT', 'ITEM_GET_ID', 'ITEM_GET_NAME', 'JUMP_TO_LABEL', 'JUMP_TO_LINE', 'MESSAGE_BOX', 'MOVE_TO', 'NPC_DIALOG', 'NPC_GET_ID', 'NPC_GET_NAME', 'PLAYALARM', 'PLAYSOUND', 'PLAYWAV', 'PRINT_TEXT', 'REGISTER_SHORTCUT', 'RETURNSUB', 'SAY_TEXT', 'SAY_TO_CLIENT', 'SEND_EMAIL','SET_EVENT', 'SET_TARGETING', 'SKILL_GET_ID', 'SKILL_GET_NAME', 'SLEEP_HUMAN_READING', 'SLEEP_HUMAN_WRITING', 'SUB', 'TALK_TARGET', 'TAP_TO', 'TARGET', 'TARGET_NEAREST', 'TARGET_NEAREST_ID', 'TARGET_NEAREST_NAME', 'TARGET_SELF', 'TEST_DNS', 'TEST_ODBC', 'TEST_PING', 'TEST_WEBSITE', 'UDP_SEND', 'UDP_SENDBB', 'UNBLOCK', 'UNBLOCKEX', 'USE_ACTION', 'USE_ITEM', 'USE_SHORTCUT', 'USE_SKILL',
'CALL', 'CALL_EXTERN', 'CALLSUB', 'COMMAND', 'DELETE', 'DELETE_GLOBAL', 'NMESSAGE_BOX', 'NMESSAGE_BOX2', 'DEFAULT', 'DEFINE_GLOBAL','MATH', 'SLEEP',
'DELAY', //'INCLUDE',
),
// global variables
5 => explode('|', $L2S_GESHI_VARIABLES_LIST),
// external class names
6 => Array(
/* native scripts L2NET */ 'Parser', 'Base_Item', 'Inventory', 'Item', 'NPC', 'Object', 'Player',
'ENGINEX' /* version: 13 (08.06.2010) */, 'ENGINEX_CONVERT',
'ENGINEX_DIJKSTRA', 'ENGINEX_EVENTS', 'ENGINEX_FILES',
'ENGINEX_GEO', 'ENGINEX_LISTS', 'ENGINEX_MATH', 'ENGINEX_MATRIX', 'VECTOR2', 'VECTOR3', 'ENGINEX_OBJECTS', 'ENGINEX_STRINGS', 'ENGINEX_TIME', 'ENGINEX_TIME_COUNTER', 'ENGINEX_TIME_TIMER', 'ENGINEX_UTILS',
'LAZY' /* version 5 */, 'LAZY_CASTING', 'LAZY_CASTING_CASTLIST', 'LAZY_CASTING_CASTLIST_SKILL', 'LAZY_CASTING_CASTLIST_SKILL_BYPIECE', 'LAZY_CASTING_CASTLIST_SKILL_BYVALUE',
'LAZY_CASTING_CHARACTERSKILL', 'LAZY_RETURNING', 'LAZY_RETURNING_AND', 'LAZY_RETURNING_ANDMULTIPLE', 'LAZY_RETURNING_ARRAYLIST', 'LAZY_RETURNING_BOOLEANCOMPARISON', 'LAZY_RETURNING_DISTANCE', 'LAZY_RETURNING_DOUBLECOMPARISON', 'LAZY_RETURNING_IFTHENELSE', 'LAZY_RETURNING_INTEGERCOMPARISON', 'LAZY_RETURNING_ITEMCOUNT', 'LAZY_RETURNING_NOT', 'LAZY_RETURNING_OBJECTDATA', 'LAZY_RETURNING_OBJECTFOUND', 'LAZY_RETURNING_OR', 'LAZY_RETURNING_ORMULTIPLE', 'LAZY_RETURNING_POINT2D', 'LAZY_RETURNING_POLYCONTAINSPOINT',
'LAZY_RETURNING_STRINGCOMPARISON', 'LAZY_RETURNING_DISTANCE',
'LAZY_RETURNING_SUBSTRING', 'LAZY_SHORTCUTS', 'LAZY_SHORTCUTS_ACTION', 'LAZY_SHORTCUTS_ITEM', 'LAZY_SHORTCUTS_MACRO', 'LAZY_SHORTCUTS_RECIPE', 'LAZY_SHORTCUTS_SKILL', 'LAZY_TARGETING', 'LAZY_TARGETING_QUEUEBIT', 'LAZY_WORLD', 'LAZY_WORLD_OBJECTACTIVITY', 'LAZY_WORLD_OBJECTACTIVITY_CASTING', 'LAZY_FASTCAST',
/* do not use or edit this class */
// 'LAZY_RETURNING_BASEPIECE', 'LAZY_RETURNING_DATALIST','LAZY_RETURNING_DATAREFERENCE', 'LAZY_RETURNING_DATAVALUE', 'LAZY_RETURNING_DATAVARIABLE',
'DLIB' /* version 3.2 [06/06/10] (beta) */, 'DlibModule', 'XP_Watchdog', 'AbnormalStatusUpdate', 'Attack', 'ClanMember', 'ClanRoster', 'ZoneInfo', 'ItemList', 'MultiAttack', 'PartySpelled', 'RelationChanged', 'SkillList', 'StatusUpdate', 'SystemMessage',
),
),
'SYMBOLS' => array(
'!', '!=', '&&', '(', ')', '*', '+', '-', '/', '<', '<=',
'<>', '=', '>', '>=', '^', '|', '||', '~'
//'EXISTS', 'IN', 'JOIN', 'LIKE', 'NOT', 'NULL', 'OR', 'OUTER', 'SOME',
),
'CASE_SENSITIVE' => array(
GESHI_COMMENTS => false,
1 => false,
2 => false,
3 => false,
4 => false,
5 => false,
6 => false,
7 => false
),
'STYLES' => array(
'KEYWORDS' => array(
1 => 'color:black; font-style: italic; font-weight:bold;',
2 => 'color:black; text-decoration:underline; font-weight:bold;',
3 => 'color:black; font-weight:bold;',
4 => 'font-weight: bold; color:#009966;',
5 => 'font-weight:bold; color: #6600CC;',
6 => 'font-weight: bold; color: #66CCFF;'
),
'COMMENTS' => array(
1 => 'color: #FFAD4C; font-style: italic;',
'MULTI' => 'color: #CC0000; font-style: italic;'
),
'ESCAPE_CHAR' => array(
0 => 'color: red; font-weight: bold;',
1 => 'font-weight:bold; color: #6600CC;',
2 => 'font-weight:bold; color: #0099FF;',
3 => 'color: #FF0000;',
4 => 'color: rgb(236,180,0); font-weight:bold;'
),
'STRINGS' => array(
0 => 'color: #CC00CC'
),
'NUMBERS' => array(
0 => 'color: #000;'
),
'METHODS' => array(
1 => 'color:#A476FF; font-weight:bold',
2 => 'color:#A476FF; font-weight:bold',
),
'SYMBOLS' => array(
0 => 'font-weight:bold;'
),
'REGEXPS' => array(
1 => 'font-weight:bold; color: #0099FF;',
2 => 'font-weight:bold; color: #6600CC;',
3 => 'color: #FF0000;',
4 => 'color:darkblue; text-decoration:underline; font-weight:bold;',
5 => 'color: #CC00CC;'
),
),
'URLS' => array(
1 => '',
2 => '',
3 => '',
4 => ''
),
'OOLANG' => true,
'OBJECT_SPLITTERS' => Array( 1 => '.', 2 => '::' ),
'REGEXPS' => array(
1 => '&lt;&amp;([^&]+)&amp;&gt;',
2 => '&lt;&amp;('.$L2S_GESHI_VARIABLES_LIST.')&amp;&gt;',
3 => '#[id]\d+(\.\d+)?',
4 => array(
GESHI_SEARCH => '(INCLUDE) ([^\n]+)',
GESHI_REPLACE => '\2',
GESHI_MODIFIERS => 'i',
GESHI_BEFORE => '<span class="includ">INCLUDE</span> ',
GESHI_AFTER => ''
),
5 => '\#\$[a-zA-Z\-_\d]+',
),
'STRICT_MODE_APPLIES' => GESHI_NEVER,
'SCRIPT_DELIMITERS' => array(
),
'HIGHLIGHT_STRICT_BLOCK' => array(
),
'TAB_WIDTH' => 2
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment