本文整理汇总了C++中clif_send_homdata函数的典型用法代码示例。如果您正苦于以下问题:C++ clif_send_homdata函数的具体用法?C++ clif_send_homdata怎么用?C++ clif_send_homdata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了clif_send_homdata函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: hom_food
/**
* Feed homunculus
* @param sd
* @param hd
*/
int hom_food(struct map_session_data *sd, struct homun_data *hd)
{
int i, foodID, emotion;
nullpo_retr(1,sd);
nullpo_retr(1,hd);
if (hd->homunculus.vaporize)
return 1;
foodID = hd->homunculusDB->foodID;
i = pc_search_inventory(sd,foodID);
if (i < 0) {
clif_hom_food(sd,foodID,0);
return 1;
}
pc_delitem(sd,i,1,0,0,LOG_TYPE_CONSUME);
if ( hd->homunculus.hunger >= 91 ) {
hom_decrease_intimacy(hd, 50);
emotion = ET_KEK;
} else if ( hd->homunculus.hunger >= 76 ) {
hom_decrease_intimacy(hd, 5);
emotion = ET_PROFUSELY_SWEAT;
} else if ( hd->homunculus.hunger >= 26 ) {
hom_increase_intimacy(hd, 75);
emotion = ET_DELIGHT;
} else if ( hd->homunculus.hunger >= 11 ) {
hom_increase_intimacy(hd, 100);
emotion = ET_DELIGHT;
} else {
hom_increase_intimacy(hd, 50);
emotion = ET_DELIGHT;
}
hd->homunculus.hunger += 10; //dunno increase value for each food
if(hd->homunculus.hunger > 100)
hd->homunculus.hunger = 100;
log_feeding(sd, LOG_FEED_HOMUNCULUS, foodID);
clif_emotion(&hd->bl,emotion);
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
clif_hom_food(sd,foodID,1);
// Too much food :/
if(hd->homunculus.intimacy == 0)
return hom_delete(sd->hd, ET_HUK);
return 0;
}
开发者ID:anacondaqq,项目名称:rathena,代码行数:57,代码来源:homunculus.cpp
示例2: merc_hom_food
int merc_hom_food(struct map_session_data *sd, struct homun_data *hd)
{
int i, foodID, emotion;
char mes[255];
if(hd->homunculus.vaporize)
return 1 ;
foodID = hd->homunculusDB->foodID;
i = pc_search_inventory(sd,foodID);
if(i < 0) {
clif_hom_food(sd,foodID,0);
return 1;
}
pc_delitem(sd,i,1,0,0);
if ( hd->homunculus.hunger >= 91 ) {
merc_hom_decrease_intimacy(hd, 50);
emotion = E_WAH;
} else if ( hd->homunculus.hunger >= 76 ) {
merc_hom_decrease_intimacy(hd, 5);
emotion = E_SWT2;
} else if ( hd->homunculus.hunger >= 26 ) {
merc_hom_increase_intimacy(hd, 75);
emotion = E_HO;
} else if ( hd->homunculus.hunger >= 11 ) {
merc_hom_increase_intimacy(hd, 100);
emotion = E_HO;
} else {
merc_hom_increase_intimacy(hd, 50);
emotion = E_HO;
}
hd->homunculus.hunger += 10; //dunno increase value for each food
if(hd->homunculus.hunger > 100)
hd->homunculus.hunger = 100;
clif_emotion(&hd->bl,emotion);
snprintf(mes, sizeof mes,msg_txt(908),hd->homunculus.name);
clif_message(&hd->bl,mes);
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
clif_hom_food(sd,foodID,1);
// Too much food :/
if(hd->homunculus.intimacy == 0)
return merc_hom_delete(sd->hd, E_OMG);
return 0;
}
开发者ID:ranfs,项目名称:fa6d4ae1781f9a68f1a4d5,代码行数:51,代码来源:homunculus.c
示例3: merc_hom_hungry
static int merc_hom_hungry(int tid, unsigned int tick, int id, intptr_t data)
{
struct map_session_data *sd;
struct homun_data *hd;
char mes[255];
bool talk = true;
sd=map_id2sd(id);
if(!sd)
return 1;
if(!sd->status.hom_id || !(hd=sd->hd))
return 1;
if(hd->hungry_timer != tid){
ShowError("merc_hom_hungry_timer %d != %d\n",hd->hungry_timer,tid);
return 0;
}
hd->hungry_timer = INVALID_TIMER;
hd->homunculus.hunger-- ;
if(hd->homunculus.hunger <= 10) {
clif_emotion(&hd->bl, E_AN);
snprintf(mes, sizeof mes,msg_txt(905),hd->homunculus.name);
} else if(hd->homunculus.hunger == 25) {
clif_emotion(&hd->bl, E_HMM);
snprintf(mes, sizeof mes,msg_txt(906),hd->homunculus.name);
} else if(hd->homunculus.hunger == 75) {
clif_emotion(&hd->bl, E_OK);
snprintf(mes, sizeof mes,msg_txt(907),hd->homunculus.name);
} else
talk = false;
if( talk ) clif_message(&hd->bl, mes);
if(hd->homunculus.hunger < 0) {
hd->homunculus.hunger = 0;
// Delete the homunculus if intimacy <= 100
if ( !merc_hom_decrease_intimacy(hd, 100) )
return merc_hom_delete(hd, E_OMG);
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
}
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
hd->hungry_timer = add_timer(tick+hd->homunculusDB->hungryDelay,merc_hom_hungry,sd->bl.id,0); //simple Fix albator
return 0;
}
开发者ID:ranfs,项目名称:fa6d4ae1781f9a68f1a4d5,代码行数:48,代码来源:homunculus.c
示例4: merc_hom_food
int merc_hom_food(struct map_session_data *sd, struct homun_data *hd)
{
int i, foodID, emotion;
if(hd->homunculus.vaporize)
return 1 ;
foodID = hd->homunculusDB->foodID;
i = pc_search_inventory(sd,foodID);
if(i < 0) {
clif_hom_food(sd,foodID,0);
return 1;
}
pc_delitem(sd,i,1,0);
if ( hd->homunculus.hunger >= 91 ) {
merc_hom_decrease_intimacy(hd, 50);
emotion = 16;
} else if ( hd->homunculus.hunger >= 76 ) {
merc_hom_decrease_intimacy(hd, 5);
emotion = 19;
} else if ( hd->homunculus.hunger >= 26 ) {
merc_hom_increase_intimacy(hd, 75);
emotion = 2;
} else if ( hd->homunculus.hunger >= 11 ) {
merc_hom_increase_intimacy(hd, 100);
emotion = 2;
} else {
merc_hom_increase_intimacy(hd, 50);
emotion = 2;
}
hd->homunculus.hunger += 10; //dunno increase value for each food
if(hd->homunculus.hunger > 100)
hd->homunculus.hunger = 100;
clif_emotion(&hd->bl,emotion) ;
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
clif_hom_food(sd,foodID,1);
// Too much food :/
if(hd->homunculus.intimacy == 0)
return merc_hom_delete(sd->hd, 23); //omg
return 0;
}
开发者ID:AxlSckay,项目名称:Ragnarok-OldTimes,代码行数:47,代码来源:mercenary.c
示例5: merc_hom_hungry
static int merc_hom_hungry(int tid, unsigned int tick, int id, intptr_t data)
{
struct map_session_data *sd;
struct homun_data *hd;
int var;
var = 0;
sd=map_id2sd(id);
if(!sd)
return 1;
if(!sd->status.hom_id || !(hd=sd->hd))
return 1;
if(hd->hungry_timer != tid){
ShowError("merc_hom_hungry_timer %d != %d\n",hd->hungry_timer,tid);
return 0;
}
hd->hungry_timer = INVALID_TIMER;
hd->homunculus.hunger-- ;
if(hd->homunculus.hunger <= 10) {
clif_emotion(&hd->bl, E_AN);
} else if(hd->homunculus.hunger == 25) {
clif_emotion(&hd->bl, E_HMM);
} else if(hd->homunculus.hunger == 75) {
clif_emotion(&hd->bl, E_OK);
}
if(hd->homunculus.hunger < 0) {
hd->homunculus.hunger = 0;
// Delete the homunculus if intimacy <= 100
//if ( !merc_hom_decrease_intimacy(hd, 100) )
//merc_hom_vaporize(sd,1); //return merc_hom_delete(hd, E_OMG);
var = 1;
hd->homunculus.intimacy = 100;
clif_send_homdata(sd,SP_INTIMATE,0); //hd->homunculus.intimacy / 100
}
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
hd->hungry_timer = add_timer(tick+hd->homunculusDB->hungryDelay,merc_hom_hungry,sd->bl.id,0); //simple Fix albator
if(var == 1)
merc_hom_dead(hd,1);
return 0;
}
开发者ID:Aeromesi,项目名称:PkRO_Translation,代码行数:47,代码来源:homunculus.c
示例6: merc_hom_food
int merc_hom_food(struct map_session_data *sd, struct homun_data *hd, int value)
{
int emotion, addint;
if(hd->homunculus.vaporize)
return 1 ;
// foodID = hd->homunculusDB->foodID;
// i = pc_search_inventory(sd,foodID);
// if(i < 0) {
// clif_hom_food(sd,foodID,0);
// return 1;
// }
// pc_delitem(sd,i,1,0,0);
// if ( hd->homunculus.hunger >= 91 ) {
addint = 100 - hd->homunculus.hunger;
if(addint > value)
addint = value;
merc_hom_increase_intimacy(hd, addint);
emotion = E_HO;
// } else if ( hd->homunculus.hunger >= 76 ) {
// merc_hom_increase_intimacy(hd, 5);
// emotion = E_HO;
// } else if ( hd->homunculus.hunger >= 26 ) {
// merc_hom_increase_intimacy(hd, 5);
// emotion = E_HO;
// } else if ( hd->homunculus.hunger >= 11 ) {
// merc_hom_increase_intimacy(hd, 5);
// emotion = E_HO;
// } else {
// merc_hom_increase_intimacy(hd, 5);
// emotion = E_HO;
// }
hd->homunculus.hunger += value; //dunno increase value for each food
if(hd->homunculus.hunger > 100)
hd->homunculus.hunger = 100;
clif_emotion(&hd->bl,emotion);
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
// clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
// clif_hom_food(sd,foodID,1);
// Too much food :/
// if(hd->homunculus.intimacy == 0)
// return merc_hom_delete(sd->hd, E_OMG);
return 0;
}
开发者ID:Aeromesi,项目名称:PkRO_Translation,代码行数:56,代码来源:homunculus.c
示例7: merc_hom_revive
void merc_hom_revive(struct homun_data *hd, unsigned int hp, unsigned int sp)
{
struct map_session_data *sd = hd->master;
hd->homunculus.hp = hd->battle_status.hp;
if (!sd)
return;
clif_send_homdata(sd,SP_ACK,0);
clif_hominfo(sd,hd,1);
clif_hominfo(sd,hd,0);
clif_homskillinfoblock(sd);
}
开发者ID:JulioCF,项目名称:cronus-txt,代码行数:11,代码来源:homunculus.c
示例8: merc_hom_hungry
static int merc_hom_hungry(int tid,unsigned int tick,int id,int data)
{
struct map_session_data *sd;
struct homun_data *hd;
sd=map_id2sd(id);
if(!sd)
return 1;
if(!sd->status.hom_id || !(hd=sd->hd))
return 1;
if(hd->hungry_timer != tid){
ShowError("merc_hom_hungry_timer %d != %d\n",hd->hungry_timer,tid);
return 0;
}
hd->hungry_timer = -1;
hd->homunculus.hunger-- ;
if(hd->homunculus.hunger <= 10) {
clif_emotion(&hd->bl, 6) ; //an
} else if(hd->homunculus.hunger == 25) {
clif_emotion(&hd->bl, 20) ; //hmm
} else if(hd->homunculus.hunger == 75) {
clif_emotion(&hd->bl, 33) ; //ok
}
if(hd->homunculus.hunger < 0) {
hd->homunculus.hunger = 0;
// Delete the homunculus if intimacy <= 100
if ( !merc_hom_decrease_intimacy(hd, 100) )
return merc_hom_delete(hd, 23); //omg
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
}
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
hd->hungry_timer = add_timer(tick+hd->homunculusDB->hungryDelay,merc_hom_hungry,sd->bl.id,0); //simple Fix albator
return 0;
}
开发者ID:AxlSckay,项目名称:Ragnarok-OldTimes,代码行数:40,代码来源:mercenary.c
示例9: hom_hungry
/**
* Timer to reduce hunger level
*/
static int hom_hungry(int tid, unsigned int tick, int id, intptr_t data)
{
struct map_session_data *sd;
struct homun_data *hd;
sd = map_id2sd(id);
if (!sd)
return 1;
if (!sd->status.hom_id || !(hd=sd->hd))
return 1;
if (hd->hungry_timer != tid) {
ShowError("hom_hungry_timer %d != %d\n",hd->hungry_timer,tid);
return 0;
}
hd->hungry_timer = INVALID_TIMER;
hd->homunculus.hunger--;
if(hd->homunculus.hunger <= 10) {
clif_emotion(&hd->bl, ET_FRET);
} else if(hd->homunculus.hunger == 25) {
clif_emotion(&hd->bl, ET_SCRATCH);
} else if(hd->homunculus.hunger == 75) {
clif_emotion(&hd->bl, ET_OK);
}
if (hd->homunculus.hunger < 0) {
hd->homunculus.hunger = 0;
// Delete the homunculus if intimacy <= 100
if (!hom_decrease_intimacy(hd, 100))
return hom_delete(hd, ET_HUK);
clif_send_homdata(sd,SP_INTIMATE,hd->homunculus.intimacy / 100);
}
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
hd->hungry_timer = add_timer(tick+hd->homunculusDB->hungryDelay,hom_hungry,sd->bl.id,0); //simple Fix albator
return 0;
}
开发者ID:anacondaqq,项目名称:rathena,代码行数:43,代码来源:homunculus.cpp
示例10: hom_revive
/**
* Revive homunculus
* @param hd
* @param hp
* @param sp
*/
void hom_revive(struct homun_data *hd, unsigned int hp, unsigned int sp)
{
struct map_session_data *sd = hd->master;
hd->homunculus.hp = hd->battle_status.hp;
if (!sd)
return;
clif_send_homdata(sd,SP_ACK,0);
clif_hominfo(sd,hd,1);
clif_hominfo(sd,hd,0);
clif_homskillinfoblock(sd);
if (hd->homunculus.class_ == 6052) //eleanor
sc_start(&hd->bl,&hd->bl, SC_STYLE_CHANGE, 100, MH_MD_FIGHTING, -1);
}
开发者ID:Lucciola541,项目名称:rathena,代码行数:19,代码来源:homunculus.c
示例11: hom_recv_data
/**
* Receive homunculus data from char server
* @param account_id : owner account_id of the homon
* @param sh : homonculus data from char-serv
* @param flag : does the creation in inter-serv was a success (0:no,1:yes)
* @return 0:failure, 1:sucess
*/
int hom_recv_data(uint32 account_id, struct s_homunculus *sh, int flag)
{
struct map_session_data *sd;
struct homun_data *hd;
bool created = false;
sd = map_id2sd(account_id);
if(!sd)
return 0;
if (sd->status.char_id != sh->char_id)
{
if (sd->status.hom_id == sh->hom_id)
sh->char_id = sd->status.char_id; //Correct char id.
else
return 0;
}
if(!flag) { // Failed to load
sd->status.hom_id = 0;
return 0;
}
if (!sd->status.hom_id) { //Hom just created.
sd->status.hom_id = sh->hom_id;
created = true;
}
if (sd->hd) //uh? Overwrite the data.
memcpy(&sd->hd->homunculus, sh, sizeof(struct s_homunculus));
else
hom_alloc(sd, sh);
hd = sd->hd;
if (created)
status_percent_heal(&hd->bl, 100, 100);
if(hd && hd->homunculus.hp && !hd->homunculus.vaporize && hd->bl.prev == NULL && sd->bl.prev != NULL)
{
if(map_addblock(&hd->bl))
return 0;
clif_spawn(&hd->bl);
clif_send_homdata(sd,SP_ACK,0);
clif_hominfo(sd,hd,1);
clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
clif_homskillinfoblock(sd);
hom_init_timers(hd);
}
return 1;
}
开发者ID:anacondaqq,项目名称:rathena,代码行数:54,代码来源:homunculus.cpp
示例12: merc_call_homunculus
int merc_call_homunculus(struct map_session_data *sd)
{
struct homun_data *hd;
if( sd->sc.data[SC__GROOMY] )
return 0;
if( map[sd->bl.m].flag.ancient )
return 0; // Cannot call homunculus on Ancient WoE
if (!sd->status.hom_id) //Create a new homun.
return merc_create_homunculus_request(sd, HM_CLASS_BASE + rand(0, 7)) ;
// If homunc not yet loaded, load it
if (!sd->hd)
return intif_homunculus_requestload(sd->status.account_id, sd->status.hom_id);
hd = sd->hd;
if (!hd->homunculus.vaporize)
return 0; //Can't use this if homun wasn't vaporized.
merc_hom_init_timers(hd);
hd->homunculus.vaporize = 0;
if (hd->bl.prev == NULL)
{ //Spawn him
hd->bl.x = sd->bl.x;
hd->bl.y = sd->bl.y;
hd->bl.m = sd->bl.m;
map_addblock(&hd->bl);
clif_spawn(&hd->bl);
clif_send_homdata(sd,SP_ACK,0);
clif_hominfo(sd,hd,1);
clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
clif_homskillinfoblock(sd);
if (battle_config.slaves_inherit_speed&1)
status_calc_bl(&hd->bl, SCB_SPEED);
merc_save(hd);
} else
//Warp him to master.
unit_warp(&hd->bl,sd->bl.m, sd->bl.x, sd->bl.y,CLR_OUTSIGHT);
return 1;
}
开发者ID:ranfs,项目名称:fa6d4ae1781f9a68f1a4d5,代码行数:43,代码来源:homunculus.c
示例13: hom_call
/**
* Make a player spawn a homonculus (call)
* @param sd
* @return False:failure, True:sucess
*/
bool hom_call(struct map_session_data *sd)
{
struct homun_data *hd;
if (!sd->status.hom_id) //Create a new homun.
return hom_create_request(sd, HM_CLASS_BASE + rnd_value(0, 7)) ;
// If homunc not yet loaded, load it
if (!sd->hd)
return intif_homunculus_requestload(sd->status.account_id, sd->status.hom_id);
hd = sd->hd;
if (!hd->homunculus.vaporize)
return false; //Can't use this if homun wasn't vaporized.
if (hd->homunculus.vaporize == HOM_ST_MORPH)
return false; // Can't call homunculus (morph state).
hom_init_timers(hd);
hd->homunculus.vaporize = HOM_ST_ACTIVE;
if (hd->bl.prev == NULL)
{ //Spawn him
hd->bl.x = sd->bl.x;
hd->bl.y = sd->bl.y;
hd->bl.m = sd->bl.m;
if(map_addblock(&hd->bl))
return false;
clif_spawn(&hd->bl);
clif_send_homdata(sd,SP_ACK,0);
clif_hominfo(sd,hd,1);
clif_hominfo(sd,hd,0); // send this x2. dunno why, but kRO does that [blackhole89]
clif_homskillinfoblock(sd);
if (battle_config.slaves_inherit_speed&1)
status_calc_bl(&hd->bl, SCB_SPEED);
hom_save(hd);
} else
//Warp him to master.
unit_warp(&hd->bl,sd->bl.m, sd->bl.x, sd->bl.y,CLR_OUTSIGHT);
return true;
}
开发者ID:Lucciola541,项目名称:rathena,代码行数:46,代码来源:homunculus.c
注:本文中的clif_send_homdata函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论