|
@@ -9562,9 +9562,11 @@ void clif_parse_NpcBuyListSend(int fd, struct map_session_data* sd)
|
|
|
WFIFOSET(fd,packet_len(0xca));
|
|
|
}
|
|
|
|
|
|
-/*==========================================
|
|
|
- *
|
|
|
- *------------------------------------------*/
|
|
|
+/// Request to sell chosen items to npc shop
|
|
|
+/// R 00c9 <packet len>.W {<index>.W <amount>.W}.4B*
|
|
|
+/// S 00cb <result>.B
|
|
|
+/// result = 00 -> "The deal has successfully completed."
|
|
|
+/// result = 01 -> "The deal has failed."
|
|
|
void clif_parse_NpcSellListSend(int fd,struct map_session_data *sd)
|
|
|
{
|
|
|
int fail=0,n;
|
|
@@ -11674,7 +11676,7 @@ void clif_parse_GMReqAccountName(int fd, struct map_session_data *sd)
|
|
|
* S 0198 <x>.W <y>.W <gat>.W
|
|
|
*------------------------------------------*/
|
|
|
void clif_parse_GMChangeMapType(int fd, struct map_session_data *sd)
|
|
|
-{// FIXME: type sent by client is 0 or 1 (even if you enter 2+); that suggests, that it is walkable gat attribute
|
|
|
+{
|
|
|
int x,y,type;
|
|
|
|
|
|
if( battle_config.atc_gmonly && !pc_isGM(sd) )
|
|
@@ -13139,6 +13141,31 @@ void clif_cashshop_show(struct map_session_data *sd, struct npc_data *nd)
|
|
|
WFIFOSET(fd,WFIFOW(fd,2));
|
|
|
}
|
|
|
|
|
|
+/// Cashshop Buy Ack (ZC_PC_CASH_POINT_UPDATE)
|
|
|
+/// S 0289 <cash point>.L <kafra point>.L <error>.W
|
|
|
+///
|
|
|
+/// @param error
|
|
|
+/// 0: The deal has successfully completed. (ERROR_TYPE_NONE)
|
|
|
+/// 1: The Purchase has failed because the NPC does not exist. (ERROR_TYPE_NPC)
|
|
|
+/// 2: The Purchase has failed because the Kafra Shop System is not working correctly. (ERROR_TYPE_SYSTEM)
|
|
|
+/// 3: You are over your Weight Limit. (ERROR_TYPE_INVENTORY_WEIGHT)
|
|
|
+/// 4: You cannot purchase items while you are in a trade. (ERROR_TYPE_EXCHANGE)
|
|
|
+/// 5: The Purchase has failed because the Item Information was incorrect. (ERROR_TYPE_ITEM_ID)
|
|
|
+/// 6: You do not have enough Kafra Credit Points. (ERROR_TYPE_MONEY)
|
|
|
+/// 7: You can purchase up to 10 items.
|
|
|
+/// 8: Some items could not be purchased.
|
|
|
+void clif_cashshop_ack(struct map_session_data* sd, int error)
|
|
|
+{
|
|
|
+ int fd = sd->fd;
|
|
|
+
|
|
|
+ WFIFOHEAD(fd, packet_len(0x289));
|
|
|
+ WFIFOW(fd,0) = 0x289;
|
|
|
+ WFIFOL(fd,2) = sd->cashPoints;
|
|
|
+ WFIFOL(fd,6) = sd->kafraPoints;
|
|
|
+ WFIFOW(fd,10) = TOW(error);
|
|
|
+ WFIFOSET(fd, packet_len(0x289));
|
|
|
+}
|
|
|
+
|
|
|
void clif_parse_cashshop_buy(int fd, struct map_session_data *sd)
|
|
|
{
|
|
|
int fail = 0, amount, points;
|
|
@@ -13154,12 +13181,7 @@ void clif_parse_cashshop_buy(int fd, struct map_session_data *sd)
|
|
|
else
|
|
|
fail = npc_cashshop_buy(sd, nameid, amount, points);
|
|
|
|
|
|
- WFIFOHEAD(fd,12);
|
|
|
- WFIFOW(fd,0) = 0x289;
|
|
|
- WFIFOL(fd,2) = sd->cashPoints;
|
|
|
- WFIFOL(fd,6) = sd->kafraPoints;
|
|
|
- WFIFOW(fd,10) = fail;
|
|
|
- WFIFOSET(fd,12);
|
|
|
+ clif_cashshop_ack(sd, fail);
|
|
|
}
|
|
|
|
|
|
/*==========================================
|