1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL.
// Copyright (c) 2014 Evol developers
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../../../common/HPMi.h"
#include "../../../common/malloc.h"
#include "../../../common/mmo.h"
#include "../../../common/socket.h"
#include "../../../common/strlib.h"
#include "../../../map/pc.h"
#include "map/send.h"
void send_npccommand (struct map_session_data *sd, int npcId, int cmd)
{
if (!sd)
return;
int fd = sd->fd;
WFIFOHEAD (fd, 16);
WFIFOW (fd, 0) = 0xB00;
WFIFOL (fd, 2) = npcId;
WFIFOW (fd, 6) = cmd;
WFIFOL (fd, 8) = 0;
WFIFOW (fd, 12) = 0;
WFIFOW (fd, 14) = 0;
WFIFOSET (fd, 16);
}
// 0 - get client lang
void send_npccommand2 (struct map_session_data *sd, int npcId, int cmd, int id, int x, int y)
{
if (!sd)
return;
int fd = sd->fd;
WFIFOHEAD (fd, 16);
WFIFOW (fd, 0) = 0xB00;
WFIFOL (fd, 2) = npcId;
WFIFOW (fd, 6) = cmd;
WFIFOL (fd, 8) = id;
WFIFOW (fd, 12) = x;
WFIFOW (fd, 14) = y;
WFIFOSET (fd, 16);
}
void send_local_message(int fd, struct block_list* bl, const char* msg)
{
unsigned short msg_len = strlen(msg) + 1;
uint8 buf[256];
if (!bl)
return;
int len = sizeof(buf) - 8;
if (msg_len > len)
{
ShowWarning("clif_message: Truncating too long message '%s' (len=%u).\n", msg, msg_len);
msg_len = len;
}
WFIFOHEAD (fd, msg_len + 8);
WFIFOW (fd, 0) = 0x8d;
WFIFOW (fd, 2) = msg_len + 8;
WFIFOL (fd, 4) = bl->id;
safestrncpy((char*)WFIFOP(fd, 8), msg, msg_len);
WFIFOSET (fd, msg_len + 8);
}
void send_changelook(int fd, int id, int type, int val)
{
WFIFOHEAD (fd, 11);
WFIFOW (fd, 0) = 0x1d7;
WFIFOL (fd, 2) = id;
WFIFOB (fd, 6) = type;
WFIFOW (fd, 7) = val;
WFIFOW (fd, 9) = 0;
WFIFOSET (fd, 11);
}
|