Автор: mr Fox: Дата: 05.29.2009
///===Установка сорсов===//
Идем в eAthena/src/map/atcommand.c
Ищем строчку:
Displays where a character is. Corrected version by Silent. [Skotlex]
Добавляем после нее:
/*==========================================
* @ice
*------------------------------------------*/
int atcommand_ice(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
struct map_session_data *pl_sd;
nullpo_retr(-1, sd);
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
if (!message || !*message) {
clif_displaymessage(fd, "Пожалуйста введите имя игрока (usage: @ice <Имя игрока>).");
return -1;
}
if((pl_sd=map_nick2sd((char *)message)) == NULL && (pl_sd=map_charid2sd(atoi(message))) == NULL)
{
clif_displaymessage(fd, msg_txt(3)); // Если игрок в оффлайне
return -1;
}
if (pc_isGM(sd) < pc_isGM(pl_sd))
{
clif_displaymessage(fd, msg_txt(81)); // Если уровень гмства не позволяет использовать команду
return -1;
}
if(pl_sd->sc.opt1 != 2) {
pl_sd->sc.opt1 = 2;
clif_changeoption(&pl_sd->bl);
sprintf(atcmd_output, "%s был заморожен", pl_sd->status.name);
clif_displaymessage(fd, atcmd_output);
sprintf(atcmd_output, "Вы были заморожены by %s %s", player_title_txt(pc_isGM(sd)),sd->status.name);
clif_displaymessage(pl_sd->fd, atcmd_output);
return 0;
}
clif_displaymessage(fd, "Игрок уже заморожен.");
return 0;
}
/*==========================================
* @deice
*------------------------------------------*/
int atcommand_deice(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
struct map_session_data *pl_sd;
nullpo_retr(-1, sd);
memset(atcmd_player_name, '\0', sizeof(atcmd_player_name));
if (!message || !*message) {
clif_displaymessage(fd, "Пожалуйста введите имя игрока (usage: @ice <Имя игрока>).");
return -1;
}
if((pl_sd=map_nick2sd((char *)message)) == NULL && (pl_sd=map_charid2sd(atoi(message))) == NULL)
{
clif_displaymessage(fd, msg_txt(3));
return -1;
}
if (pc_isGM(sd) < pc_isGM(pl_sd))
{
clif_displaymessage(fd, msg_txt(81));
return -1;
}
if(pl_sd->sc.opt1 == 2) {
pl_sd->sc.opt1 = 0;
clif_changeoption(&pl_sd->bl);
sprintf(atcmd_output, "%s разморожен", pl_sd->status.name);
clif_displaymessage(fd, atcmd_output);
sprintf(atcmd_output, "Вы были разморожены by %s %s", player_title_txt(pc_isGM(sd)), sd->status.name);
clif_displaymessage(pl_sd->fd, atcmd_output);
return 0;
} else {
sprintf(atcmd_output, "%s is not frozen", pl_sd->status.name);
clif_displaymessage(fd, atcmd_output);
return 0;
}
}
/*==========================================
* @icemap
*------------------------------------------*/
int atcommand_icemap(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
nullpo_retr(-1, sd);
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) )
{
if (pl_sd->fd != fd && sd->bl.m == pl_sd->bl.m && pc_isGM(sd) >= pc_isGM(pl_sd) && pl_sd->sc.opt1 != 2)
{
pl_sd->sc.opt1 = 2;
clif_changeoption(&pl_sd->bl);
clif_displaymessage(pl_sd->fd, "На этой карте все заморожены");
}
}
mapit_free(iter);
clif_displaymessage(fd, "Игроки заморожены.");
return 0;
}
/*==========================================
* @deicemap
*------------------------------------------*/
int atcommand_deicemap(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
struct map_session_data* pl_sd;
struct s_mapiterator* iter;
nullpo_retr(-1, sd);
iter = mapit_getallusers();
for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) )
{
if (pl_sd->fd != fd && sd->bl.m == pl_sd->bl.m && pc_isGM(sd) >= pc_isGM(pl_sd) && pl_sd->sc.opt1 == 2)
{
pl_sd->sc.opt1 = 0;
clif_changeoption(&pl_sd->bl);
clif_displaymessage(pl_sd->fd, "Заморозка закончилась.");
}
}
mapit_free(iter);
clif_displaymessage(fd, "Игроки заморожены.");
return 0;
}
///===Добавляем команду====///
Ищем:
{ "mail", 1,1 atcommand_mail },
Добавляем:
{ "ice", 10,10 atcommand_ice },
{ "deice", 10,10 atcommand_deice },
{ "icemap", 10,10 atcommand_icemap },
{ "deicemap", 10,10 atcommand_deicemap },
{ "ice", 10, atcommand_ice },
{ "deice", 10, atcommand_deice },
{ "icemap", 10, atcommand_icemap },
{ "deicemap", 10, atcommand_deicemap },
Автор: : Дата: 01.01.1970