ソースを参照

- Added script command escape_sql. It will return an escaped string for use in the sql_query script command (in case you want to use input of players in your queries).
- Removed the skill packet from TK_RUN as the client ignores the walkok packet sent right after it.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6262 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 年 前
コミット
5c222891f3
3 ファイル変更21 行追加1 行削除
  1. 5 0
      Changelog-Trunk.txt
  2. 13 0
      src/map/script.c
  3. 3 1
      src/map/skill.c

+ 5 - 0
Changelog-Trunk.txt

@@ -4,6 +4,11 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/04/24
+	* Added script command escape_sql. It will return an escaped string for use
+	  in the sql_query script command (in case you want to use input of players
+	  in your queries). [Skotlex]
+	* Removed the skill packet from TK_RUN as the client ignores the walkok
+	  packet sent right after it. It displays just fine on the client now. [Skotlex]
 	* Added DNS Blocklist support. Set in login_athena.conf.
 	  I'll make it more customizable tomorrow, I coded it pretty bad. [Zido]
 	* Corrected mob_spawn_delay/boss_spawn_delay/plant_spawn_delay settings

+ 13 - 0
src/map/script.c

@@ -135,6 +135,7 @@ char tmp_sql[65535];
 unsigned char* parse_subexpr(unsigned char *,int);
 #ifndef TXT_ONLY
 int buildin_query_sql(struct script_state *st);
+int buildin_escape_sql(struct script_state *st);
 #endif
 int buildin_atoi(struct script_state *st);
 int buildin_axtoi(struct script_state *st);
@@ -455,6 +456,7 @@ struct {
 	{buildin_axtoi,"axtoi","s"},
 #ifndef TXT_ONLY
 	{buildin_query_sql, "query_sql", "s*"},
+	{buildin_escape_sql, "escape_sql", "s"},
 #endif
 	{buildin_atoi,"atoi","s"},
 	{buildin_mes,"mes","s"},
@@ -9728,6 +9730,17 @@ int buildin_query_sql(struct script_state *st) {
 
 	return 0;
 }
+
+//Allows escaping of a given string.
+int buildin_escape_sql(struct script_state *st) {
+	char *t_query, *query;
+	query = conv_str(st,& (st->stack->stack_data[st->start+2]));
+	
+	t_query = aCallocA(strlen(query)*2+1,sizeof(char));
+	jstrescapecpy(t_query,query);
+	push_str(st->stack,C_STR,(unsigned char *)t_query);
+	return 0;
+}
 #endif
 
 int buildin_getd (struct script_state *st)

+ 3 - 1
src/map/skill.c

@@ -4138,7 +4138,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 				i = status_change_end(bl, type, -1);
 			else
 				i = sc_start4(bl,type,100,skilllv,unit_getdir(bl),0,0,0);
-			clif_skill_nodamage(src,bl,skillid,skilllv,i);
+//			If the client receives a skill-use packet inmediately before
+//			a walkok packet, it will discard the walk packet! [Skotlex]
+//			clif_skill_nodamage(src,bl,skillid,skilllv,i);
 		break;
 	case AS_CLOAKING:		/* ƒNƒ??ƒLƒ“ƒO */
 		if(tsc && tsc->data[type].timer!=-1 )