summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml4
-rw-r--r--src/map/pc.cpp5
-rw-r--r--src/map/script-fun.cpp51
-rw-r--r--src/map/skill.cpp2
-rw-r--r--src/mmo/skill.t.hpp1
5 files changed, 60 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0368723..1cc7c15 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,9 +5,7 @@ stages:
variables: &base_vars
DEBIAN_COMMON_PACKAGES: make git gcc g++
- # Depth of clone. If no tag is made after this many commits, then
- # the git describe call and version header generation will fail.
- GIT_DEPTH: 100 # Will break again eventually.
+ GIT_DEPTH: 0 # avoid shallow clone since version is based on latest tag
GIT_SUBMODULE_STRATEGY: normal
.prerequisites: &prerequisites
diff --git a/src/map/pc.cpp b/src/map/pc.cpp
index 9ef70fe..ecfd50e 100644
--- a/src/map/pc.cpp
+++ b/src/map/pc.cpp
@@ -871,6 +871,11 @@ int pc_authok(AccountId id, int login_id2, ClientVersion client_version,
sd->quick_regeneration_sp.amount = 0;
sd->heal_xp = 0;
sd->max_weight_override = 0;
+ sd->activity.kills = 0;
+ sd->activity.casts = 0;
+ sd->activity.items_used = 0;
+ sd->activity.tiles_walked = 0;
+ sd->activity.attacks = 0;
sd->canact_tick = tick;
sd->canmove_tick = tick;
sd->attackabletime = tick;
diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp
index c471da1..64ba542 100644
--- a/src/map/script-fun.cpp
+++ b/src/map/script-fun.cpp
@@ -3881,6 +3881,7 @@ void builtin_sc_start(ScriptState *st)
case StatusChange::SC_COOLDOWN_KOY:
case StatusChange::SC_COOLDOWN_UPMARMU:
case StatusChange::SC_COOLDOWN_SG:
+ case StatusChange::SC_COOLDOWN_CG:
case StatusChange::SC_SLOWMOVE:
case StatusChange::SC_CANTMOVE:
break;
@@ -5516,6 +5517,53 @@ void builtin_getmapnamefromhash(ScriptState *st)
}
/*==========================================
+ * Look if a map exists
+ * return value:
+ * 0 = map does not exist
+ * 1 = map exists
+ *------------------------------------------
+ */
+static
+void builtin_mapexists(ScriptState *st)
+{
+ MapName mapname = stringish<MapName>(ZString(conv_str(st, &AARG(0))));
+ push_int<ScriptDataInt>(st->stack, map_mapname2mapid(mapname).is_some());
+}
+
+/*==========================================
+ * Returns number of available maps
+ *------------------------------------------
+ */
+static
+void builtin_numberofmaps(ScriptState *st)
+{
+ push_int<ScriptDataInt>(st->stack, maps_db.size());
+}
+
+/*==========================================
+ * Get the map name of a specific maps_db index
+ *------------------------------------------
+ */
+static
+void builtin_getmapnamebyindex(ScriptState *st)
+{
+ int index = conv_num(st, &AARG(0));
+ int count = 0;
+
+ for (auto& mit : maps_db)
+ {
+ if (count == index)
+ {
+ push_str<ScriptDataStr>(st->stack, mit.second->name_);
+ return;
+ }
+ ++count;
+ }
+
+ push_str<ScriptDataStr>(st->stack, ""_s);
+}
+
+/*==========================================
* Get the NPC's info
*------------------------------------------
*/
@@ -5781,6 +5829,9 @@ BuiltinFunction builtin_functions[] =
BUILTIN(getmapmaxy, "M"_s, 'i'),
BUILTIN(getmaphash, "M"_s, 'i'),
BUILTIN(getmapnamefromhash, "i"_s, 's'),
+ BUILTIN(mapexists, "M"_s, 'i'),
+ BUILTIN(numberofmaps, ""_s, 'i'),
+ BUILTIN(getmapnamebyindex, "i"_s, 's'),
BUILTIN(mapexit, ""_s, '\0'),
BUILTIN(freeloop, "i"_s, '\0'),
BUILTIN(if_then_else, "iii"_s, 'v'),
diff --git a/src/map/skill.cpp b/src/map/skill.cpp
index 7454cc3..f70a626 100644
--- a/src/map/skill.cpp
+++ b/src/map/skill.cpp
@@ -768,6 +768,7 @@ void skill_status_change_end(dumb_ptr<block_list> bl, StatusChange type, TimerDa
case StatusChange::SC_COOLDOWN_KOY:
case StatusChange::SC_COOLDOWN_UPMARMU:
case StatusChange::SC_COOLDOWN_SG:
+ case StatusChange::SC_COOLDOWN_CG:
case StatusChange::SC_CANTMOVE:
break;
@@ -1050,6 +1051,7 @@ int skill_status_effect(dumb_ptr<block_list> bl, StatusChange type,
case StatusChange::SC_COOLDOWN_KOY:
case StatusChange::SC_COOLDOWN_UPMARMU:
case StatusChange::SC_COOLDOWN_SG:
+ case StatusChange::SC_COOLDOWN_CG:
case StatusChange::SC_CANTMOVE:
break;
case StatusChange::SC_FLYING_BACKPACK:
diff --git a/src/mmo/skill.t.hpp b/src/mmo/skill.t.hpp
index b0b6b8d..bab10f4 100644
--- a/src/mmo/skill.t.hpp
+++ b/src/mmo/skill.t.hpp
@@ -61,6 +61,7 @@ enum class StatusChange : uint16_t
SC_COOLDOWN_KOY = 77, // Koyntety cooldown
SC_COOLDOWN_UPMARMU = 78, // Upmarmu cooldown
SC_COOLDOWN_SG = 79, // Stone Golem cooldown
+ SC_COOLDOWN_CG = 80, // Coal Golem cooldown
SC_POISON = 132, // bad; actually used
SC_SLOWMOVE = 133, // slows down movement