#include "version.h"
#include <string.h>
#include <math.h>
#include "char.h"
#include "char_event.h"
#include "battle.h"
#include "battle_event.h"
#include "configfile.h"
#include "pet.h"
#include "log.h"
#include "lssproto_serv.h"
#include "anim_tbl.h"
#include "battle_magic.h"
#include "util.h"
#include "enemy.h"
#include "pet_skill.h"
#include "char_base.h"
#include "item_event.h"
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
#include "profession_skill.h"
#include "item.h"
#include "skill.h"
#endif
#ifdef _PETSKILL_LER
#include "magic_base.h"
#endif
#define DEFENSE_RATE (0.5)
#define DAMAGE_RATE (2.0)
#define CRITICAL_RATE (1.0)
#define KAWASHI_MAX_RATE (75)
#define AJ_SAME (1.0)
#define AJ_UP (1.5)
#define AJ_DOWN (0.6)
#define ATTR_MAX 100
#define D_ATTR (1.0/(ATTR_MAX*ATTR_MAX))
#define D_16 (1.0/16)
#define D_8 (1.0/8)
float gKawashiPara = 0.02;
float gCounterPara = 0.08;
float gCriticalPara = 0.09;
float gBattleDamageModyfy;
int gBattleDuckModyfy;
int gBattleStausChange;
int gBattleStausTurn;
float gDuckPer;
int gCriper;
int gBattleBadStatusTbl[BATTLE_ENTRY_MAX*2];
#ifdef _OTHER_MAGICSTAUTS
#ifdef _MAGICSTAUTS_RESIST
char MagicStatus[MAXSTATUSTYPE][36] = { "NULL","魔抗","鐵壁","火抗","電抗","冰抗"};
int MagicTbl[] = { -1, CHAR_DEFMAGICSTATUS, CHAR_MAGICSUPERWALL, CHAR_MAGICFIRE, CHAR_MAGICTHUNDER, CHAR_MAGICICE };
#else
char MagicStatus[MAXSTATUSTYPE][36] = { "NULL","魔抗","鐵壁"};
int MagicTbl[] = { -1, CHAR_DEFMAGICSTATUS, CHAR_MAGICSUPERWALL };
#endif //_MAGICSTAUTS_RESIST
#endif
char *aszStatus[] = { "全", "毒", "麻", "眠", "石", "醉", "亂", "虛", "劇", "障", "默"
#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延
,"煞"
#endif
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
,"暈","纏","羅","爆","忘","箭","蠱","針","挑","燒","霜","電","專","火","冰","雷","炎","凍","擊"
#endif
#ifdef _PROFESSION_ADDSKILL
,"抗"
#endif
};
char *aszStatusFull[] = { "全快", "毒", "麻痺", "睡眠", "石化", "酒醉", "混亂", "虛弱", "劇毒", "魔障", "沉默"
#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延
,"毒煞"
#endif
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
,"暈眩","纏繞","天羅","冰爆","遺忘","冰箭","嗜血蠱","一針見血","挑撥","火附體",
"冰附體","雷附體","專注戰鬥","火抗","冰抗","雷抗","火附","冰附","雷附"
#endif
};
int StatusTbl[] = { -1, CHAR_WORKPOISON, CHAR_WORKPARALYSIS,
CHAR_WORKSLEEP, CHAR_WORKSTONE,
CHAR_WORKDRUNK, CHAR_WORKCONFUSION,
CHAR_WORKWEAKEN, CHAR_WORKDEEPPOISON,
CHAR_WORKBARRIER, CHAR_WORKNOCAST
#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延
,CHAR_WORKSARS
#endif
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
,CHAR_WORKDIZZY, CHAR_WORKENTWINE
,CHAR_WORKDRAGNET, CHAR_WORKICECRACK
,CHAR_WORKOBLIVION, CHAR_WORKICEARROW
,CHAR_WORKBLOODWORMS, CHAR_WORKSIGN
,CHAR_WORKINSTIGATE, CHAR_WORK_F_ENCLOSE
,CHAR_WORK_I_ENCLOSE, CHAR_WORK_T_ENCLOSE
,CHAR_WORK_FOCUS, CHAR_WORKRESIST_F
,CHAR_WORKRESIST_I, CHAR_WORKRESIST_T
,CHAR_WORK_F_ENCLOSE_2, CHAR_WORK_I_ENCLOSE_2
,CHAR_WORK_T_ENCLOSE_2
#endif
#ifdef _PROFESSION_ADDSKILL
,CHAR_WORKERSIST_F_I_T, CHAR_WORKWATER//水附體
,CHAR_WORKANNEX//附身
,CHAR_WORKFEAR//恐懼
,CHAR_WORKICECRACK2
,CHAR_WORKICECRACK3
,CHAR_WORKICECRACK4
,CHAR_WORKICECRACK5
,CHAR_WORKICECRACK6
,CHAR_WORKICECRACK7
,CHAR_WORKICECRACK8
,CHAR_WORKICECRACK9
,CHAR_WORKICECRACK10
#endif
};
int RegTbl[] = { -1, CHAR_WORKMODPOISON, CHAR_WORKMODPARALYSIS,
CHAR_WORKMODSLEEP, CHAR_WORKMODSTONE,
CHAR_WORKMODDRUNK, CHAR_WORKMODCONFUSION,
CHAR_WORKMODWEAKEN, CHAR_WORKMODDEEPPOISON,
CHAR_WORKMODBARRIER, CHAR_WORKMODNOCAST
#ifdef _PET_SKILL_SARS // WON ADD 毒煞蔓延
,CHAR_WORKMODSARS
#endif
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
,CHAR_WORKMODDIZZY, CHAR_WORKMODENTWINE
,CHAR_WORKMODDRAGNET, CHAR_WORKMODICECRACK
,CHAR_WORKMODOBLIVION, CHAR_WORKMODICEARROW
,CHAR_WORKMODBLOODWORMS, CHAR_WORKMODSIGN
,CHAR_WORKMODINSTIGATE, CHAR_WORKMOD_F_ENCLOSE
,CHAR_WORKMOD_I_ENCLOSE, CHAR_WORKMOD_T_ENCLOSE
,CHAR_WORKMOD_FOCUS, CHAR_WORKMODRESIST_F
,CHAR_WORKMODRESIST_I, CHAR_WORKMODRESIST_T
,CHAR_WORKMOD_F_ENCLOSE_2, CHAR_WORKMOD_I_ENCLOSE_2
,CHAR_WORKMOD_T_ENCLOSE_2
#endif
};
char *aszMagicDef[] = { "常", "吸", "反", "無"
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
,"陷"
#endif
#ifdef _PETSKILL_ACUPUNCTURE
,"刺"
#endif
};
char *aszMagicDefFull[] = { "通常", "吸收", "反射", "無效化"
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
,"陷阱"
#endif
#ifdef _PETSKILL_ACUPUNCTURE
,"針刺"
#endif
};
int MagicDefTbl[] = { -1, CHAR_WORKDAMAGEABSROB, CHAR_WORKDAMAGEREFLEC, CHAR_WORKDAMAGEVANISH
#ifdef _PROFESSION_SKILL // WON ADD 人物職業技能
,CHAR_WORKTRAP
#endif
#ifdef _PETSKILL_ACUPUNCTURE
,CHAR_WORKACUPUNCTURE
#endif
};
char *aszParamChange[] = { "無", "攻", "防", "早", "魅", "捕" };
char *aszParamChangeFull[] = { "無", "攻擊力", "防禦力", "速度", "魅力", "捕獲率" };
int aParamChangeTbl[] = { -1, CHAR_WORKMODATTACK, CHAR_WORKMODDEFENCE,
CHAR_WORKMODQUICK, CHAR_WORKMODCHARM, CHAR_WORKMODCAPTURE };
// Robin 0727 Ride Pet
// 取得騎寵的index
int BATTLE_getRidePet( int charaindex )
{
int petindex = -1;
if( CHAR_getInt( charaindex, CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER )
return -1;
else
{
int rideIndex = CHAR_getInt( charaindex, CHAR_RIDEPET );
if( rideIndex == -1 )
return -1;
petindex = CHAR_getCharPet( charaindex, rideIndex );
if( !CHAR_CHECKINDEX( petindex ) ) return -1;
}
return petindex;
}
#ifdef _BACK_VERSION // 復刻版騎寵公式修改
// Robin 0727 Ride Pet
// 取得騎寵時的三圍 復刻版
float BATTLE_adjustRidePet3A( int charaindex, int petindex, int workindex, int action )
{
float ret = CHAR_getWorkInt( charaindex, workindex );
BOOL throwweapon = BATTLE_IsThrowWepon(CHAR_getItemIndex( charaindex, CHAR_ARM ) );
switch( workindex ) {
case CHAR_WORKATTACKPOWER : // 攻擊力
if( throwweapon ) // 投擲
ret = CHAR_getWorkInt( charaindex, CHAR_WORKATTACKPOWER );//間接攻擊:人物
else // 近戰
ret = CHAR_getWorkInt( petindex, CHAR_WORKATTACKPOWER );//直接攻擊:寵物
break;
case CHAR_WORKDEFENCEPOWER : // 防禦力
ret = ( CHAR_getWorkInt( charaindex, CHAR_WORKDEFENCEPOWER ) + CHAR_getWorkInt( petindex, CHAR_WORKDEFENCEPOWER ) ) / 2;
break;
case CHAR_WORKQUICK : // 敏捷力
if( action == ATTACKSIDE ) {
if( throwweapon ) {
ret = CHAR_getWorkInt( charaindex, CHAR_WORKQUICK );
}else {
ret = CHAR_getWorkInt( petindex, CHAR_WORKQUICK );
}
}else if( action == DEFFENCESIDE ){
ret = CHAR_getWorkInt( petindex, CHAR_WORKQUICK );
}
break;
default :
ret = CHAR_getWorkInt( charaindex, workindex );
}
//print(" adj3A_Old:%d:%d=%f ", charaindex, workindex, ret);
return ret;
}
#else
// 取得騎寵時的三圍 正常版
float BATTLE_adjustRidePet3A( int charaindex, int petindex, int workindex, int action )
{
float ret = CHAR_getWorkInt( charaindex, workindex );
BOOL throwweapon = BATTLE_IsThrowWepon(CHAR_getItemIndex( charaindex, CHAR_ARM ) );
switch( workindex ) {
case CHAR_WORKATTACKPOWER : // 攻擊力
if( throwweapon ) // 投擲
ret = CHAR_getWorkInt( charaindex, CHAR_WORKATTACKPOWER )
#ifdef _BATTLE_NEWPOWER //andy 1/24 reEdit
+ CHAR_getWorkInt( petindex, CHAR_WORKATTACKPOWER )*0.4;
#else
+ CHAR_getWorkInt( petindex, CHAR_WORKATTACKPOWER )*0.2;
#endif
else // 近戰
ret = CHAR_getWorkInt( charaindex, CHAR_WORKATTACKPOWER )*0.8
+ CHAR_getWorkInt( petindex, CHAR_WORKATTACKPOWER )*0.8;
break;
没有合适的资源?快使用搜索试试~ 我知道了~
完整的石器时代的源代码
共378个文件
h:174个
c:170个
scc:14个
5星 · 超过95%的资源 需积分: 26 261 下载量 182 浏览量
2009-12-04
15:02:51
上传
评论 10
收藏 1.32MB RAR 举报
温馨提示
一款完整的游戏源代码,大家可以学习学习!
资源推荐
资源详情
资源评论
收起资源包目录
完整的石器时代的源代码 (378个子文件)
battle_event.c 299KB
battle.c 279KB
char.c 262KB
battle_magic.c 166KB
chatmagic.c 149KB
item_event.c 131KB
acfamily.c 130KB
npc_exchangeman.c 117KB
char_base.c 111KB
saacproto_serv.c 108KB
saacproto_cli.c 104KB
net.c 102KB
npc_eventaction.c 96KB
family.c 94KB
recv.c 89KB
lssproto_serv.c 83KB
enemy.c 79KB
pet_skill.c 74KB
char_item.c 74KB
npc_raceman.c 73KB
item.c 67KB
callfromcli.c 66KB
trade.c 63KB
configfile.c 62KB
item_gen.c 61KB
deathcontend.c 59KB
callfromac.c 57KB
char_data.c 57KB
main.c 55KB
npc_transmigration.c 50KB
npc_fmdengon.c 49KB
util.c 49KB
saacproto_util.c 46KB
npc_fmwarpman.c 45KB
npcutil.c 44KB
npc_manorsman.c 44KB
npc_itemshop.c 44KB
saacproto_util.c 44KB
char_walk.c 44KB
lssproto_util.c 43KB
npc_petshop.c 42KB
db.c 41KB
char_talk.c 41KB
readmap.c 41KB
npc_pkpetshop.c 40KB
profession_skill.c 39KB
npctemplate.c 36KB
petmail.c 36KB
npc_newnpcman.c 35KB
npc_quiz.c 34KB
npc_roomadminnew.c 33KB
npc_warpman.c 33KB
deathcontend.c 32KB
npc_npcenemy.c 32KB
char.c 32KB
battle_command.c 32KB
npc_stoneserviceman.c 32KB
chatroom.c 31KB
npc_riderman.c 31KB
battle_item.c 31KB
title.c 30KB
npc_scheduleman.c 29KB
pet_event.c 27KB
npc_duelranking.c 27KB
npc_sysinfo.c 27KB
npc_fmchallenge.c 27KB
npc_simpleshop.c 27KB
log.c 26KB
addressbook.c 26KB
npc_poolitemshop.c 26KB
function.c 26KB
npc_airplane.c 26KB
magic.c 25KB
npc_petracemaster.c 23KB
npc_bus.c 22KB
npc_sellsthman.c 22KB
char_angel.c 22KB
npccreate.c 22KB
npc_gamblemaster.c 21KB
pet.c 21KB
char_party.c 20KB
encount.c 20KB
skill.c 20KB
wk.c 19KB
npc_windowhealer.c 19KB
char_event.c 19KB
mclient.c 18KB
npc_door.c 18KB
init.c 18KB
npc_fmletter.c 18KB
mail.c 18KB
npc_familyman.c 18KB
saacproto_lserver.c 18KB
battle_ai.c 17KB
npc_makepair.c 17KB
npc_alldoman.c 16KB
npc_freepetskillshop.c 16KB
npc_gamblebank.c 16KB
npc_bankman.c 15KB
npc_pauctionman.c 15KB
共 378 条
- 1
- 2
- 3
- 4
坏坏的学长
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页