?? char_base.c.bak
字號:
#include "version.h"#include <string.h>// CoolFish: 2001/10/12 _UNIQUE_P_I#include <time.h>#include "char_base.h"#include "char_data.h"#include "item.h"#include "buf.h"#include "magic.h"#include "function.h"#include "npccreate.h"#include "configfile.h"#include "title.h"#include "pet.h"#include "pet_skill.h"#include "anim_tbl.h"#include "enemy.h"#include "saacproto_cli.h"// CoolFish: 2001/10/29#include "log.h"Char* CHAR_chara;static int CHAR_charanum;static int CHAR_playernum;static int CHAR_petnum;static int CHAR_othersnum;// CoolFish: 2001/10/11#ifdef _UNIQUE_P_I#define MAX_UNIQUE_P_I 1000static int unique_p = 0;static int unique_i = 0;#endiftypedef struct tagINITCHARCOUNTER{ int startcnt; int cnt; int endcnt;}INITCHARCOUNTER;static INITCHARCOUNTER initCharCounter[3] = { {-1,-1,-1},{-1,-1,-1},{-1,-1,-1}};tagRidePetTable ridePetTable[122] ={ { 101000, 100000, 100352, 331 }, { 101001, 100005, 100352, 331 }, { 101002, 100010, 100352, 331 }, { 101003, 100015, 100352, 331 }, { 101004, 100000, 100329, 309 }, { 101005, 100005, 100327, 307 }, { 101006, 100010, 100330, 310 }, { 101007, 100015, 100328, 308 }, { 101008, 100700, 100372, 351 }, { 101009, 100705, 100373, 352 }, { 101010, 100020, 100396, 483 }, { 101011, 100025, 100396, 483 }, { 101012, 100030, 100396, 483 }, { 101013, 100035, 100396, 483 }, { 101014, 100020, 100328, 308 }, { 101015, 100025, 100329, 309 }, { 101016, 100030, 100327, 307 }, { 101017, 100035, 100330, 310 }, { 101018, 100710, 100372, 351 }, { 101019, 100715, 100373, 352 }, { 101020, 100040, 100351, 330 }, { 101021, 100045, 100351, 330 }, { 101022, 100050, 100351, 330 }, { 101023, 100055, 100351, 330 }, { 101024, 100040, 100328, 308 }, { 101025, 100045, 100330, 310 }, { 101026, 100050, 100327, 307 }, { 101027, 100055, 100329, 309 }, { 101028, 100720, 100372, 351 }, { 101029, 100725, 100373, 352 }, { 101030, 100060, 100353, 332 }, { 101031, 100065, 100353, 332 }, { 101032, 100070, 100353, 332 }, { 101033, 100075, 100353, 332 }, { 101034, 100060, 100329, 309 }, { 101035, 100065, 100327, 307 }, { 101036, 100070, 100330, 310 }, { 101037, 100075, 100328, 308 }, { 101038, 100730, 100372, 351 }, { 101039, 100735, 100373, 352 }, { 101040, 100080, 100396, 483 }, { 101041, 100085, 100396, 483 }, { 101042, 100090, 100396, 483 }, { 101043, 100095, 100396, 483 }, { 101044, 100080, 100328, 308 }, { 101045, 100085, 100327, 307 }, { 101046, 100090, 100330, 310 }, { 101047, 100095, 100329, 309 }, { 101048, 100740, 100372, 351 }, { 101049, 100745, 100373, 352 }, { 101050, 100100, 100353, 332 }, { 101051, 100105, 100353, 332 }, { 101052, 100110, 100353, 332 }, { 101053, 100115, 100353, 332 }, { 101054, 100100, 100329, 309 }, { 101055, 100105, 100328, 308 }, { 101056, 100110, 100330, 310 }, { 101057, 100115, 100327, 307 }, { 101058, 100750, 100372, 351 }, { 101059, 100755, 100373, 352 }, { 101060, 100120, 100354, 333 }, { 101061, 100125, 100354, 333 }, { 101062, 100130, 100354, 333 }, { 101063, 100135, 100354, 333 }, { 101064, 100120, 100327, 307 }, { 101065, 100125, 100330, 310 }, { 101066, 100130, 100328, 308 }, { 101067, 100135, 100329, 309 }, { 101068, 100760, 100372, 351 }, { 101069, 100765, 100373, 352 }, { 101070, 100140, 100354, 333 }, { 101071, 100145, 100354, 333 }, { 101072, 100150, 100354, 333 }, { 101073, 100155, 100354, 333 }, { 101074, 100140, 100327, 307 }, { 101075, 100145, 100329, 309 }, { 101076, 100150, 100330, 310 }, { 101077, 100155, 100328, 308 }, { 101078, 100770, 100372, 351 }, { 101079, 100775, 100373, 352 }, { 101080, 100160, 100352, 331 }, { 101081, 100165, 100352, 331 }, { 101082, 100170, 100352, 331 }, { 101083, 100175, 100352, 331 }, { 101084, 100160, 100330, 310 }, { 101085, 100165, 100329, 309 }, { 101086, 100170, 100327, 307 }, { 101087, 100175, 100328, 308 }, { 101088, 100780, 100372, 351 }, { 101089, 100785, 100373, 352 }, { 101090, 100180, 100351, 330 }, { 101091, 100185, 100351, 330 }, { 101092, 100190, 100351, 330 }, { 101093, 100195, 100351, 330 }, { 101094, 100180, 100328, 308 }, { 101095, 100185, 100330, 310 }, { 101096, 100190, 100329, 309 }, { 101097, 100195, 100327, 307 }, { 101098, 100790, 100372, 351 }, { 101099, 100795, 100373, 352 }, { 101100, 100200, 100353, 332 }, { 101101, 100205, 100353, 332 }, { 101102, 100210, 100353, 332 }, { 101103, 100215, 100353, 332 }, { 101104, 100200, 100329, 309 }, { 101105, 100205, 100328, 308 }, { 101106, 100210, 100327, 307 }, { 101107, 100215, 100330, 310 }, { 101108, 100800, 100372, 351 }, { 101109, 100805, 100373, 352 }, { 101110, 100220, 100396, 483 }, { 101111, 100225, 100396, 483 }, { 101112, 100230, 100396, 483 }, { 101113, 100235, 100396, 483 }, { 101114, 100220, 100330, 310 }, { 101115, 100225, 100327, 307 }, { 101116, 100230, 100329, 309 }, { 101117, 100235, 100328, 308 }, { 101118, 100810, 100372, 351 }, { 101119, 100815, 100373, 352 }, { 101179, 101177, 101178, 1804}, { 101179, 101178, 101177, 1926},};#ifdef _NEW_RIDEPETStagRideCodeMode RideCodeMode[] = { { 100374, RIDE_PET0 }, /*騎寵帖拉所伊朵*/ { 100358, RIDE_PET1 }, /*騎寵巴朵蘭恩*/ { 100362, RIDE_PET2 }, /*騎寵左迪洛斯*/ { 100279, RIDE_PET3 }, /*騎寵格爾格*/ { 100288, RIDE_PET4 }, /*騎寵瑪恩摩洛斯*/ { 100283, RIDE_PET5 }, /*騎寵拉奇魯哥*/ { 100346, RIDE_PET6 }, /*騎寵卡達魯卡斯*/ { 100310, RIDE_PET7 }, /*騎寵揚奇洛斯*/ { 100372, RIDE_PET8 }, /*騎寵卡卡金寶*/ { 100373, RIDE_PET9 }, /*騎寵朵拉比斯*/ { 101576, RIDE_PET10 }, /*镲寵羅多克雷*/ { 101532, RIDE_PET11 }, /*騎寵史卡魯*/};tagRideNoList RideNoList[] = { {{ 101305, 101306, 101307, 101308, 101309, 101310, 101311, 101312, 101008, 101009, 101989, 101978},0}, //小矮子 {{ 101313, 101314, 101315, 101316, 101317, 101318, 101319, 101320, 101018, 101019, 101988, 101986},0}, //賽亞人 {{ 101321, 101322, 101323, 101324, 101325, 101326, 101327, 101328, 101028, 101029, 101965, 101975},0}, //辮子男孩 {{ 101329, 101330, 101331, 101332, 101333, 101334, 101335, 101336, 101038, 101039, 101966, 101976},0}, //酷哥 {{ 101337, 101338, 101339, 101340, 101341, 101342, 101343, 101344, 101048, 101049, 101973, 101984},0}, //熊皮男 {{ 101345, 101346, 101347, 101348, 101349, 101350, 101351, 101352, 101058, 101059, 101974, 101985},0}, //大個 {{ 101353, 101354, 101355, 101356, 101357, 101358, 101359, 101360, 101068, 101069, 101967, 101977},0}, //小矮妹 {{ 101361, 101362, 101363, 101364, 101365, 101366, 101367, 101368, 101078, 101079, 101968, 101979},0}, //熊皮妹 {{ 101369, 101370, 101371, 101372, 101373, 101374, 101375, 101376, 101088, 101089, 101970, 101981},0}, //帽子妹 {{ 101377, 101378, 101379, 101380, 101381, 101382, 101383, 101384, 101098, 101099, 101969, 101980},0}, //短法發夾妹 {{ 101385, 101386, 101387, 101388, 101389, 101390, 101391, 101392, 101108, 101109, 101972, 101983},0}, //手套女 {{ 101393, 101394, 101395, 101396, 101397, 101398, 101399, 101400, 101118, 101119, 101970, 101982},0}, //辣妹};tagRidePetList RPlistMode[] = { { 100000, 0, 1 }, { 100005, 0, 1 }, { 100010, 0, 1 }, { 100015, 0, 1 }, //小矮子 { 100020, 1, 1 }, { 100025, 1, 1 }, { 100030, 1, 1 }, { 100035, 1, 1 }, //賽亞人 { 100040, 2, 1 }, { 100045, 2, 1 }, { 100050, 2, 1 }, { 100055, 2, 1 }, //辮子男孩 { 100060, 3, 1 }, { 100065, 3, 1 }, { 100070, 3, 1 }, { 100075, 3, 1 }, //酷哥 { 100080, 4, 1 }, { 100085, 4, 1 }, { 100090, 4, 1 }, { 100095, 4, 1 }, //熊皮男 { 100100, 5, 1 }, { 100105, 5, 1 }, { 100110, 5, 1 }, { 100115, 5, 1 }, //大個 { 100120, 6, 2 }, { 100125, 6, 2 }, { 100130, 6, 2 }, { 100135, 6, 2 }, //小矮妹 { 100140, 7, 2 }, { 100145, 7, 2 }, { 100150, 7, 2 }, { 100155, 7, 2 }, //熊皮妹 { 100160, 8, 2 }, { 100165, 8, 2 }, { 100170, 8, 2 }, { 100175, 8, 2 }, //帽子妹 { 100180, 9, 2 }, { 100185, 9, 2 }, { 100190, 9, 2 }, { 100195, 9, 2 }, //短發夾妹 { 100200, 10, 2 }, { 100205, 10, 2 }, { 100210, 10, 2 }, { 100215, 10, 2 }, //手套女 { 100220, 11, 2 }, { 100225, 11, 2 }, { 100230, 11, 2 }, { 100235, 11, 2 }, //辣妹};int RIDEPET_getNOindex( int baseNo){ int i; for( i=0; i< sizeof(RPlistMode)/sizeof(tagRidePetList); i++ ) { if( RPlistMode[i].charNo == baseNo ) { return RPlistMode[i].Noindex; } } return -1;}int RIDEPET_getPETindex( int PetNo, int learnCode){ int i; for( i=0; i< sizeof(RideCodeMode)/sizeof(tagRideCodeMode); i++ ) { if( RideCodeMode[i].petNo == PetNo && (RideCodeMode[i].learnCode & learnCode) ) { return i; } } return -1;}int RIDEPET_getRIDEno( int index, int ti){ if( index < 0 || index >= sizeof( RideNoList)/sizeof( tagRideNoList) ) return -1; if( ti < 0 || ti >= MAXNOINDEX ) return -1; return RideNoList[index].RideNo[ti];}#endif#ifdef _EMENY_CHANCEMANint CHAR_getSexInt( int baseNo ){ int i; for( i=0; i< sizeof(RPlistMode)/sizeof(tagRidePetList); i++ ) { if( RPlistMode[i].charNo == baseNo ) { return RPlistMode[i].sex; } } return -1;}#endif#ifdef _PET_EVOLUTION#define MAXTABLE_X 29#define MAXTABLE_Y 29int PetTable[MAXTABLE_X][MAXTABLE_Y]={ //0 4 9 14 19 24 { 1, 2, 5, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 5, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5}, { 2, 5, 1, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1}, { 5, 1, 2, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2}, { 1, 2, 5, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5}, { 2, 5, 1, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1}, { 2, 1, 2, 1, 2, 2, 2, 5, 5, 1, 2, 5, 2, 1, 2, 1, 2, 5, 2, 1, 2, 1, 2, 5, 2, 5, 2, 1, 2}, { 1, 2, 5, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 1}, { 2, 5, 1, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 2}, {10, 3,10, 3,10, 8,10, 8,10, 3,10, 3,10, 8,10, 8,10, 3,10, 3,10, 8,10, 8,10, 8,10, 3,10}, { 3, 8, 3, 8, 3,10, 3,10, 8, 3, 3, 8, 3, 8, 3,10, 3,10, 3, 8, 3, 8, 3,10, 3,10, 3, 8, 3}, { 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8}, { 5, 1, 5, 1, 5, 2, 5, 2, 5, 1, 5, 5, 5, 1, 5, 2, 5, 2, 5, 1, 5, 1, 5, 2, 5, 2, 5, 1, 5}, { 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10}, {10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3}, { 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8}, { 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1}, { 9, 0, 9, 0, 9, 4, 9, 4, 9, 0, 9, 0, 9, 4, 9, 4, 9, 0, 9, 0, 9, 4, 9, 4, 9, 0, 9, 4, 9}, { 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2}, { 6, 0, 6, 0, 6, 9, 6, 9, 6, 0, 6, 0, 6, 9, 6, 9, 6, 0, 6, 0, 6, 9, 6, 9, 6, 0, 6, 9, 6}, { 4, 6, 4, 6, 4, 9, 4, 9, 4, 6, 4, 6, 4, 9, 4, 9, 4, 6, 4, 6, 4, 9, 4, 9, 4, 6, 4, 9, 4}, { 8, 3, 8, 3, 8,10, 8,10, 8, 3, 8, 3, 8,10, 8,10, 8, 3, 8, 3, 8,10, 8,10, 8, 3, 8,10, 8}, { 8,10, 3, 8,10, 3, 8,10,10, 3, 8,10, 3, 8,10, 3,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10}, { 1, 2, 5, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5}, { 0, 4, 0, 4, 0, 6, 0, 6, 0, 4, 0, 4, 0, 6, 0, 6, 0, 4, 0, 4, 0, 6, 0, 4, 0, 6, 0, 4, 0}, { 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2, 5, 1, 2}, { 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8}, {10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3, 8,10, 3}, { 2, 1, 2, 1, 5, 1, 5, 1, 2, 1, 2, 1, 5, 1, 5, 1, 2, 1, 2, 1, 5, 1, 5, 1, 2, 1, 2, 5, 1}, { 6, 9, 6, 9, 6, 0, 6, 0, 6, 9, 6, 9, 6, 0, 6, 0, 6, 9, 6, 9, 6, 0, 6, 0, 6, 9, 6, 0, 6}};int PropertyTable[4][4]={ { 0, 4, 5, 6}, { 7, 1, 8, 9}, {10,11, 2,12}, {13,14,15, 3},};#define MAXFTABLE_X 11#define MAXFTABLE_Y 16int FusionTable[MAXFTABLE_X][MAXFTABLE_Y]={ { 989, 990, 991, 992, 989, 992, 989, 990, 990, 990, 991, 991, 991, 992, 989, 992}, {1001,1002,1003,1004,1001,1001,1004,1001,1002,1002,1003,1003,1003,1004,1004,1003}, {1005,1006,1007,1008,1005,1005,1005,1006,1006,1006,1007,1006,1007,1008,1008,1008}, {1021,1025,1023,1024,1025,1021,1021,1022,1022,1022,1023,1023,1023,1021,1024,1024}, {1030,1031,1032,1033,1030,1030,1030,1031,1031,1031,1032,1031,1032,1030,1033,1033}, {1017,1018,1019,1020,1018,1017,1017,1018,1019,1018,1019,1019,1020,1017,1020,1020}, {1009,1010,1011,1012,1010,1009,1009,1010,1010,1010,1011,1011,1011,1012,1012,1011}, { 993, 994, 995, 996, 994, 993, 993, 994, 995, 994, 995, 993, 996, 993, 996, 996}, {1026,1027,1028,1029,1026,1026,1026,1026,1028,1027,1028,1028,1029,1029,1029,1029}, { 997, 998, 999, 999,1000, 997, 997,1000, 998, 998,1000, 998, 999, 999, 999, 999}, {1013,1014,1015,1016,1013,1013,1016,1013,1015,1014,1015,1015,1015,1016,1016,1016}};int EVOLUTION_getPetFusionCode( int petid){ int petarray = ENEMYTEMP_getEnemyTempArrayFromTempNo( petid); return ENEMYTEMP_getInt( petarray, E_T_FUSIONCODE);}int EVOLUTION_getPetTable( int charaindex, int petindex1, int petindex2){ int table1,table2; if( !CHAR_CHECKINDEX( petindex1) ) return -1; if( !CHAR_CHECKINDEX( petindex2) ) return -1; table2 = EVOLUTION_getPetFusionCode( CHAR_getInt( petindex1, CHAR_PETID)); table1 = EVOLUTION_getPetFusionCode( CHAR_getInt( petindex2, CHAR_PETID)); if( table1 < 0 || table1 >= MAXTABLE_X ) return -1; if( table2 < 0 || table2 >= MAXTABLE_Y ) return -1; return PetTable[table1][table2];}int EVOLUTION_getPropertyTable( int charaindex, int petindex1, int petindex2){ int i, k1=0, k2=0; int table1,table2; int Property1[4]={-1,-1,-1,-1}; int Property2[4]={-1,-1,-1,-1}; if( !CHAR_CHECKINDEX( petindex1) ) return -1; if( !CHAR_CHECKINDEX( petindex2) ) return -1; for( i=0; i<4; i++) { if( CHAR_getInt( petindex1, CHAR_EARTHAT+i) > 0 ){ Property1[k1] = i; k1++; } if( CHAR_getInt( petindex2, CHAR_EARTHAT+i) > 0 ){ Property2[k2] = i; k2++; } } if( k1 == 0 || k2 == 0 ) return -1; if( k1 <= 1 ) { table1 = Property1[ 0]; }else{ table1 = Property1[ (rand()%(k1-1)) ]; } if( k2 <= 1 ) { table2 = Property2[ 0]; }else { table2 = Property2[ (rand()%(k2-1)) ]; } if( table1 < 0 || table1 >= 4 ) return -1; if( table2 < 0 || table2 >= 4 ) return -1; return PropertyTable[table1][table2];}int EVOLUTION_getFusionTable( int charaindex, int px, int py){ if( px >= MAXFTABLE_X || px < 0 ) return -1; if( py >= MAXFTABLE_Y || py < 0 ) return -1; return FusionTable[px][py];}#endif#ifdef _CHAR_FIXDATADEF/*typedef struct _tagPetSetIntData{ char com[256]; int type;}PetSetIntData;PetSetIntData PET_SetIntData[ ]={};*/#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -