From 4333293820d5c7de27e9e760dfeaadbc1686f2c3 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 21 Aug 2015 23:22:55 +0300 Subject: Add script function failedrefindex and some macro. New function: failedrefindex index index - inventory item index Example: failedrefindex .@itemid; --- src/emap/scriptdefines.h | 49 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 8 deletions(-) (limited to 'src/emap/scriptdefines.h') diff --git a/src/emap/scriptdefines.h b/src/emap/scriptdefines.h index 2121763..d35f71c 100644 --- a/src/emap/scriptdefines.h +++ b/src/emap/scriptdefines.h @@ -7,49 +7,82 @@ #define getSessionDataReturn(def) \ if (!st->rid) \ { \ + ShowWarning("!st->rid\n"); \ + script->reportsrc(st); \ script_pushint(st, def); \ - return true; \ + return false; \ } \ TBL_PC *sd = script->rid2sd(st); \ if (!sd) \ { \ + ShowWarning("player not attached\n"); \ + script->reportsrc(st); \ script_pushint(st, def); \ - return true; \ + return false; \ } \ struct SessionExt *data = session_get(sd->fd) #define getSessionData(data) \ if (!st->rid) \ - return true; \ + { \ + ShowWarning("!st->rid\n"); \ + script->reportsrc(st); \ + return false; \ + } \ TBL_PC *sd = script->rid2sd(st); \ if (!sd) \ - return true; \ + { \ + ShowWarning("player not attached\n"); \ + script->reportsrc(st); \ + return false; \ + } \ struct SessionExt *data = session_get(sd->fd) #define getMapData(m) \ struct MapdExt *mapData = mapd_get(m); \ if (!mapData) \ - return true; + { \ + ShowWarning("cant get map data\n"); \ + script->reportsrc(st); \ + return false; \ + } #define getMapDataReturn(m, def) \ struct MapdExt *mapData = mapd_get(m); \ if (!mapData) \ { \ + ShowWarning("cant get map data\n"); \ + script->reportsrc(st); \ script_pushint(st, def); \ - return true; \ + return false; \ } #define getSD() \ TBL_PC *sd = script->rid2sd(st); \ if (!sd) \ - return true + { \ + ShowWarning("player not attached\n"); \ + script->reportsrc(st); \ + return false; \ + } #define getSDReturn(def) \ TBL_PC *sd = script->rid2sd(st); \ if (!sd) \ { \ + ShowWarning("player not attached\n"); \ + script->reportsrc(st); \ script_pushint(st, def); \ - return true; \ + return false; \ + } + +#define getInventoryIndex(idx) \ + const int n = script_getnum(st, idx); \ + if (n < 0 || n >= MAX_INVENTORY) \ + { \ + ShowWarning("Wrong inventory index\n"); \ + script->reportsrc(st); \ + return false; \ } #endif // EVOL_MAP_SCRIPTDEFINES -- cgit v1.2.3-60-g2f50