summaryrefslogtreecommitdiff
path: root/src/map/script.c
diff options
context:
space:
mode:
authorStefan Beller <stefanbeller@googlemail.com>2011-01-02 22:31:04 +0100
committerStefan Beller <stefanbeller@googlemail.com>2011-01-03 17:42:14 +0100
commit705f81523f8b6e0c91eff0317f13547fbd1ea669 (patch)
treec7c783985f01be162c846831ad0e28f1528dd662 /src/map/script.c
parent410efc24064397484559b1763789ecbb44d4d045 (diff)
downloadtmwa-705f81523f8b6e0c91eff0317f13547fbd1ea669.tar.gz
tmwa-705f81523f8b6e0c91eff0317f13547fbd1ea669.tar.bz2
tmwa-705f81523f8b6e0c91eff0317f13547fbd1ea669.tar.xz
tmwa-705f81523f8b6e0c91eff0317f13547fbd1ea669.zip
adding the *getunactivatedpoolskilllist function to the server
This function is a simple copy of getskillpoollist. It was extended, so it checks if that skill is activated. If so, it wont be returned. reviewed by: fate
Diffstat (limited to 'src/map/script.c')
-rw-r--r--src/map/script.c51
1 files changed, 42 insertions, 9 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 58c4b33..ad175c3 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -278,6 +278,7 @@ int buildin_getinventorylist (struct script_state *st);
int buildin_getskilllist (struct script_state *st);
int buildin_get_pool_skills (struct script_state *st); // [fate]
int buildin_get_activated_pool_skills (struct script_state *st); // [fate]
+int buildin_get_unactivated_pool_skills (struct script_state *st); // [PO]
int buildin_activate_pool_skill (struct script_state *st); // [fate]
int buildin_deactivate_pool_skill (struct script_state *st); // [fate]
int buildin_check_pool_skill (struct script_state *st); // [fate]
@@ -670,6 +671,8 @@ struct
{
buildin_get_activated_pool_skills, "getactivatedpoolskilllist", ""},
{
+ buildin_get_unactivated_pool_skills, "getunactivatedpoolskilllist", ""},
+ {
buildin_activate_pool_skill, "poolskill", "i"},
{
buildin_deactivate_pool_skill, "unpoolskill", "i"},
@@ -3835,12 +3838,12 @@ int buildin_getskilllv (struct script_state *st)
}
/*==========================================
- * getgdskilllv(Guild_ID, Skill_ID);
- * skill_id = 10000 : GD_APPROVAL
- * 10001 : GD_KAFRACONTACT
- * 10002 : GD_GUARDIANRESEARCH
- * 10003 : GD_CHARISMA
- * 10004 : GD_EXTENSION
+ * getgdskilllv(Guild_ID, Skill_ID);
+ * skill_id = 10000 : GD_APPROVAL
+ * 10001 : GD_KAFRACONTACT
+ * 10002 : GD_GUARDIANRESEARCH
+ * 10003 : GD_CHARISMA
+ * 10004 : GD_EXTENSION
*------------------------------------------
*/
int buildin_getgdskilllv (struct script_state *st)
@@ -4103,7 +4106,7 @@ int buildin_savepoint (struct script_state *st)
/*==========================================
* gettimetick(type)
- *
+ *
* type The type of time measurement.
* Specify 0 for the system tick, 1 for
* seconds elapsed today, or 2 for seconds
@@ -4134,7 +4137,7 @@ int buildin_gettimetick (struct script_state *st) /* Asgard Version */
case 2:
push_val (st->stack, C_INT, (int) time (NULL));
break;
- /* System tick (unsigned int, and yes, it will wrap). */
+ /* System tick (unsigned int, and yes, it will wrap). */
case 0:
default:
push_val (st->stack, C_INT, gettick ());
@@ -6575,6 +6578,36 @@ int buildin_get_activated_pool_skills (struct script_state *st)
extern int skill_pool_skills[];
extern int skill_pool_skills_size;
+int buildin_get_unactivated_pool_skills (struct script_state *st)
+{
+ struct map_session_data *sd = script_rid2sd (st);
+ int i, count = 0;
+
+ if (!sd)
+ return 0;
+
+ for (i = 0; i < skill_pool_skills_size; i++)
+ {
+ int skill_id = skill_pool_skills[i];
+
+ if (sd->status.skill[skill_id].id == skill_id && !(sd->status.skill[skill_id].flags & SKILL_POOL_ACTIVATED))
+ {
+ pc_setreg (sd, add_str ("@skilllist_id") + (count << 24),
+ sd->status.skill[skill_id].id);
+ pc_setreg (sd, add_str ("@skilllist_lv") + (count << 24),
+ sd->status.skill[skill_id].lv);
+ pc_setreg (sd, add_str ("@skilllist_flag") + (count << 24),
+ sd->status.skill[skill_id].flags);
+ pc_setregstr (sd, add_str ("@skilllist_name$") + (count << 24),
+ skill_name (skill_id));
+ ++count;
+ }
+ }
+ pc_setreg (sd, add_str ("@skilllist_count"), count);
+
+ return 0;
+}
+
int buildin_get_pool_skills (struct script_state *st)
{
struct map_session_data *sd = script_rid2sd (st);
@@ -7935,7 +7968,7 @@ static int script_autosave_mapreg (int tid, unsigned int tick, int id,
}
/*==========================================
- *
+ *
*------------------------------------------
*/
static int set_posword (char *p)