Перейти к содержанию

Costumeitem в Hercules


Рекомендуемые сообщения

Ревизия 15148... Выдаёт 3 такие вот ошибочки и 1 варнинг ))) Может кто знает что с этим делать?)

post-2367-0-48508500-1416075104_thumb.jp

Изменено пользователем Fizik
Ссылка на комментарий
Поделиться на другие сайты

Может кто нибудь Знает Почему на Еа и Ра я смог всунуть команды @whosell @detach @emotion @dance @heart

А на геркулесе неполучается?

И есть ли src Коды для етих команд на Hercules?? Если есть скажите где, Или помогите Установить Имеющиеся вот те которые я пытаюсь, Даже самый елементарный (детач) выдал мне 7 ошибок при компиляции

ACMD_FUNC(whosell)

{

char item_name[100];

int item_id = 0, j, count = 0, sat_num = 0;

int s_type = 1; // search bitmask: 0-name,1-id, 2-card, 4-refine

int refine = 0,card_id = 0;

bool flag = 0; // place dot on the minimap?

struct map_session_data* pl_sd;

struct s_mapiterator* iter;

unsigned int MinPrice = battle_config.vending_max_value, MaxPrice = 0;

struct item_data *item_data;

nullpo_retr(-1, sd);

if (!message || !*message) {

clif_displaymessage(fd, "Use: @whosell (<+refine> )(<item_id>)(<[card_id]>) or @whosell <name>");

return -1;

}

if (sscanf(message, "+%d %d[%d]", &refine, &item_id, &card_id) == 3){

s_type = 1+2+4;

}

else if (sscanf(message, "+%d %d", &refine, &item_id) == 2){

s_type = 1+4;

}

else if (sscanf(message, "+%d [%d]", &refine, &card_id) == 2){

s_type = 2+4;

}

else if (sscanf(message, "%d[%d]", &item_id, &card_id) == 2){

s_type = 1+2;

}

else if (sscanf(message, "[%d]", &card_id) == 1){

s_type = 2;

}

else if (sscanf(message, "+%d", &refine) == 1){

s_type = 4;

}

else if (sscanf(message, "%d", &item_id) == 1 && item_id == atoi(message)){

//names, that start on num are not working

//so implemented minumum item_id>500

//or better make item_id == atoi(message) ?

s_type = 1;

}

else if (sscanf(message, "%99[^\n]", item_name) == 1){

s_type = 1;

if ((item_data = itemdb_searchname(item_name)) == NULL){

clif_displaymessage(fd, "Not found item with this name");

return -1;

}

item_id = item_data->nameid;

}

else {

clif_displaymessage(fd, "Use: @whosell (<+refine> )(<item_id>)(<[card_id]>) or @whosell <name>");

return -1;

}

//check card

if(s_type & 2 && ((item_data = itemdb_exists(card_id)) == NULL || item_data->type != IT_CARD)){

clif_displaymessage(fd, "Not found a card with than ID");

return -1;

}

//check item

if(s_type & 1 && (item_data = itemdb_exists(item_id)) == NULL){

clif_displaymessage(fd, "Not found an item with than ID");

return -1;

}

//check refine

if(s_type & 4){

if (refine<0 || refine>10){

clif_displaymessage(fd, "Refine out of bounds: 0 - 10");

return -1;

}

/*if(item_data->type != IT_WEAPON && item_data->type != IT_ARMOR){

clif_displaymessage(fd, "Use refine only with weapon or armor");

return -1;

}*/

}

iter = mapit_getallusers();

for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) )

{

if( pl_sd->vender_id ) //check if player is vending

{

for (j = 0; j < pl_sd->vend_num; j++) {

if((item_data = itemdb_exists(pl_sd->status.cart[pl_sd->vending[j].index].nameid)) == NULL)

continue;

if(s_type & 1 && pl_sd->status.cart[pl_sd->vending[j].index].nameid != item_id)

continue;

if(s_type & 2 && ((item_data->type != IT_ARMOR && item_data->type != IT_WEAPON) ||

(pl_sd->status.cart[pl_sd->vending[j].index].card[0] != card_id &&

pl_sd->status.cart[pl_sd->vending[j].index].card[1] != card_id &&

pl_sd->status.cart[pl_sd->vending[j].index].card[2] != card_id &&

pl_sd->status.cart[pl_sd->vending[j].index].card[3] != card_id)))

continue;

if(s_type & 4 && ((item_data->type != IT_ARMOR && item_data->type != IT_WEAPON) || pl_sd->status.cart[pl_sd->vending[j].index].refine != refine))

continue;

if(item_data->type == IT_ARMOR)

snprintf(atcmd_output, CHAT_SIZE_MAX, "+%d %d[%d] | Price %d | Amount %d | Map %s[%d,%d] | Seller %s",pl_sd->status.cart[pl_sd->vending[j].index].refine

,pl_sd->status.cart[pl_sd->vending[j].index].nameid

,pl_sd->status.cart[pl_sd->vending[j].index].card[0]

,pl_sd->vending[j].value

,pl_sd->vending[j].amount

,mapindex_id2name(pl_sd->mapindex)

,pl_sd->bl.x,pl_sd->bl.y

,pl_sd->status.name);

else if(item_data->type == IT_WEAPON)

snprintf(atcmd_output, CHAT_SIZE_MAX, "+%d %d[%d,%d,%d,%d] | Price %d | Amount %d | Map %s[%d,%d] | Seller %s",pl_sd->status.cart[pl_sd->vending[j].index].refine

,pl_sd->status.cart[pl_sd->vending[j].index].nameid

,pl_sd->status.cart[pl_sd->vending[j].index].card[0]

,pl_sd->status.cart[pl_sd->vending[j].index].card[1]

,pl_sd->status.cart[pl_sd->vending[j].index].card[2]

,pl_sd->status.cart[pl_sd->vending[j].index].card[3]

,pl_sd->vending[j].value

,pl_sd->vending[j].amount

,mapindex_id2name(pl_sd->mapindex)

,pl_sd->bl.x,pl_sd->bl.y

,pl_sd->status.name);

else

snprintf(atcmd_output, CHAT_SIZE_MAX, "ID %d | Price %d | Amount %d | Map %s[%d,%d] | Seller %s",pl_sd->status.cart[pl_sd->vending[j].index].nameid

,pl_sd->vending[j].value

,pl_sd->vending[j].amount

,mapindex_id2name(pl_sd->mapindex)

,pl_sd->bl.x, pl_sd->bl.y

,pl_sd->status.name);

if(pl_sd->vending[j].value < MinPrice) MinPrice = pl_sd->vending[j].value;

if(pl_sd->vending[j].value > MaxPrice) MaxPrice = pl_sd->vending[j].value;

clif_displaymessage(fd, atcmd_output);

count++;

flag = 1;

}

if(flag && pl_sd->mapindex == sd->mapindex){

clif_viewpoint(sd, 1, 1, pl_sd->bl.x, pl_sd->bl.y, ++sat_num, 0xFFFFFF);

flag = 0;

}

}

}

mapit_free(iter);

if(count > 0) {

snprintf(atcmd_output,CHAT_SIZE_MAX, "Found %d ea. Prices from %dz to %dz", count, MinPrice, MaxPrice);

clif_displaymessage(fd, atcmd_output);

} else

clif_displaymessage(fd, "Nobody is selling it now.");

return 0;

}

/*==========================================

* @detach

*==========================================*/

ACMD_FUNC(detach)

{

nullpo_retr(-1, sd);

sd->state.monster_ignore = 0;

sd->state.autotrade = 1;

clif_authfail_fd(fd, 15);

return 0;

}

/*==========================================

@heart X by Anarchist

=> Displays the heart special effect

------------------------------------------

*/

ACMD_FUNC(heart)

{

nullpo_retr(-1, sd);

if(!message || !*message || atoi(message)<0 || atoi(message)>2){

clif_displaymessage(fd, "usage: @heart 1 or 2");

return -1;

}

if(atoi(message)==1){

clif_specialeffect(&sd->bl,364,0);

} else if(atoi(message)==2){

clif_specialeffect(&sd->bl,509,0);

}

return 0;

}

/*==========================================

* @emotion X by Anarchist

* => Displays the emotions without delay

*------------------------------------------*/

ACMD_FUNC(emotion)

{

if(!message || !*message || atoi(message)<0 || atoi(message)>87){

clif_displaymessage(fd, "usage: @emotion 1-87");

return -1;

}

clif_emotion(&sd->bl,atoi(message));

return 0;

}

/*==========================================

@dance X by Anarchist

=> Special effects with dance style

------------------------------------------

*/

ACMD_FUNC(dance)

{

nullpo_retr(-1, sd);

if(!message || !message || atoi(message)<0 || atoi(message)>9){

clif_displaymessage(fd, "usage: @dance 1-9");

return -1;

}

if(atoi(message)==1){

clif_specialeffect(&sd->bl,413,0);

} else if(atoi(message)==2){

clif_specialeffect(&sd->bl,414,0);

} else if(atoi(message)==3){

clif_specialeffect(&sd->bl,415,0);

} else if(atoi(message)==4){

clif_specialeffect(&sd->bl, 426, 0);

} else if(atoi(message)== 5){

clif_specialeffect(&sd->bl,458,0);

} else if(atoi(message)==6){

clif_specialeffect(&sd->bl,466,0);

} else if(atoi(message)==7){

clif_specialeffect(&sd->bl,501,0);

} else if(atoi(message)==8){

clif_specialeffect(&sd->bl,540,0);

} else if(atoi(message)==9){

clif_specialeffect(&sd->bl,550,0);

}

return 0;

}

Изменено пользователем Fizik
  • Downvote 1
Ссылка на комментарий
Поделиться на другие сайты

На их официальном форуме можно найти.

Увы На их официальном форуме про эти команды нечего не сказанно ещё... Искал И не только я
  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...


ACMD(detach) {
sd->state.autotrade = 1;
clif->chsys_quit(sd);
clif->authfail_fd(sd->fd, 15);
return true;
}

не тестил, но думаю что-то типо этого для геркулеса от 10.08.2014

Изменено пользователем Salfer
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика