- Small fix in pet_attack that would make pets not unlock their target in some situations.
- Fixed invisible shops. callshop scrip command now works! - Added proper documentation of script command callshop git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5195 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
6717272b97
commit
1b71a1a4da
@ -5,6 +5,7 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EV
|
|||||||
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
|
||||||
|
|
||||||
2006/02/05
|
2006/02/05
|
||||||
|
* Fixed and documented script command "callshop". [Skotlex]
|
||||||
* Updated sq;-files/mob_db.sql with current mob_db. [Skotlex]
|
* Updated sq;-files/mob_db.sql with current mob_db. [Skotlex]
|
||||||
* Updated sql-files/item_db.sql with current item_db. [Skotlex]
|
* Updated sql-files/item_db.sql with current item_db. [Skotlex]
|
||||||
2006/02/04
|
2006/02/04
|
||||||
|
@ -3384,6 +3384,29 @@ You can see the full list of available effect types you can possibly inflict in
|
|||||||
|
|
||||||
It is pretty certain that addressing the target by an ID number will not
|
It is pretty certain that addressing the target by an ID number will not
|
||||||
currently work due to a bug.
|
currently work due to a bug.
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
*callshop "<shop name>",<flag>;
|
||||||
|
|
||||||
|
This command forces an npc shop to be invoked as if the player clicked on it.
|
||||||
|
With normal shops it will not work unless the player is within clicking range,
|
||||||
|
but the real use of this script command is together with "invisible shops",
|
||||||
|
which are specified in the same way an invisible npc would be specified.
|
||||||
|
For example, a generic invisible tool shop could be:
|
||||||
|
|
||||||
|
- shop INVISIBLE_SHOP -,611:-1,1750:-1,501:-1,502:-1,503:-1,504:-1,506:-1
|
||||||
|
|
||||||
|
Which players cannot click on, but can be invoked using:
|
||||||
|
|
||||||
|
callshop "INVISIBLE_SHOP", 0;
|
||||||
|
|
||||||
|
The flag values are: 1 invokes the buying window, 2 invokes the selling
|
||||||
|
window, any other value invokes the buy/sell dialogue.
|
||||||
|
|
||||||
|
The function returns 1 on success, and the script is not automatically
|
||||||
|
closed, so be careful to not do any item trading on the same script to prevent
|
||||||
|
possible exploits (if possible, use close or close2 before invoking the shop
|
||||||
|
itself).
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
@ -1764,7 +1764,7 @@ static int npc_parse_shop (char *w1, char *w2, char *w3, char *w4)
|
|||||||
nd->flag = 0;
|
nd->flag = 0;
|
||||||
memcpy(nd->name, w3, NAME_LENGTH-1);
|
memcpy(nd->name, w3, NAME_LENGTH-1);
|
||||||
nd->name[NAME_LENGTH-1] = '\0';
|
nd->name[NAME_LENGTH-1] = '\0';
|
||||||
nd->class_ = m==-1?0:atoi(w4);
|
nd->class_ = m==-1?-1:atoi(w4);
|
||||||
nd->speed = 200;
|
nd->speed = 200;
|
||||||
|
|
||||||
nd = (struct npc_data *)aRealloc(nd,
|
nd = (struct npc_data *)aRealloc(nd,
|
||||||
|
@ -176,9 +176,6 @@ static int pet_attack(struct pet_data *pd,unsigned int tick,int data)
|
|||||||
|
|
||||||
target= map_id2bl(pd->target_id);
|
target= map_id2bl(pd->target_id);
|
||||||
|
|
||||||
if(!status_check_skilluse(&pd->bl, target, 0, 0))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if(target == NULL || pd->bl.m != target->m || target->prev == NULL ||
|
if(target == NULL || pd->bl.m != target->m || target->prev == NULL ||
|
||||||
!check_distance_bl(&pd->bl, target, pd->db->range3))
|
!check_distance_bl(&pd->bl, target, pd->db->range3))
|
||||||
{
|
{
|
||||||
@ -186,6 +183,9 @@ static int pet_attack(struct pet_data *pd,unsigned int tick,int data)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!status_check_skilluse(&pd->bl, target, 0, 0))
|
||||||
|
return 0;
|
||||||
|
|
||||||
range = pd->db->range;
|
range = pd->db->range;
|
||||||
if (battle_iswalking(&pd->bl)) range++;
|
if (battle_iswalking(&pd->bl)) range++;
|
||||||
if (battle_iswalking(target)) range++;
|
if (battle_iswalking(target)) range++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user