/* 奶矛件玄蔽 * 申永玄白仿弘毛 化月分仃及質 */ void NPC_EventSetFlg(int talker,int shiftbit) { int point=0; int array; int shift; #ifdef _TEACHER_SYSTEM int iGetFame = 0; #endif /*-- -1反白仿弘卞楮溢互卅中奶矛件玄 -*/ if(shiftbit==-1) return; array = shiftbit / 32; shift = shiftbit % 32; point = CHAR_getInt( talker, CHAR_ENDEVENT+array); // Arminius 8.24 prevent wash dp if (!(point & (1 << shift))) { // CoolFish: Family Adv 2001/8/4 AddFMAdv(talker, shiftbit); #ifdef _TEACHER_SYSTEM if(shiftbit < arraysizeof(FMAdvTbl)) iGetFame = FMAdvTbl[shiftbit]; #endif } #ifdef _TEACHER_SYSTEM iGetFame /= 20; // 導師獲得學生所得聲望的 5% (1/20) // 檢查所得的聲望有沒有大於0 if(iGetFame > 0){ // 檢查有沒有導師 if(strlen(CHAR_getChar(talker,CHAR_TEACHER_ID)) > 0 && strlen(CHAR_getChar(talker,CHAR_TEACHER_NAME)) > 0){ int iPlayernum = CHAR_getPlayerMaxNum(),i; char szMsg[128]; // 檢查導師在不在線上 for(i=0;i<iPlayernum;i++){ if(CHAR_getCharUse(i) == FALSE) continue; if(strcmp(CHAR_getChar(talker,CHAR_TEACHER_ID),CHAR_getChar(i,CHAR_CDKEY)) == 0 && strcmp(CHAR_getChar(talker,CHAR_TEACHER_NAME),CHAR_getChar(i,CHAR_NAME)) == 0){ float fGetFame = (float)iGetFame/100; // 導師在線上 CHAR_setWorkInt(i,CHAR_WORK_GET_TEACHER_FAME,CHAR_getWorkInt(i,CHAR_WORK_GET_TEACHER_FAME) + iGetFame); sprintf(szMsg,"獲得學生 %s %.2f 點聲望",CHAR_getChar(talker,CHAR_NAME),fGetFame); CHAR_talkToCli(i,-1,szMsg,CHAR_COLORYELLOW); break; } } } } #endif point = point | (1 << shift); CHAR_setInt( talker, CHAR_ENDEVENT+array, point); }
void NPC_EventSetFlg(int talker, int shiftbit) { int point = 0; int array; int shift; /*-- -1反白仿弘卞楮溢互卅中奶矛件玄 -*/ if (shiftbit == -1) return; array = shiftbit / 32; shift = shiftbit % 32; point = CHAR_getInt(talker, CHAR_ENDEVENT + array); // Arminius 8.24 prevent wash dp if (!(point & (1 << shift))) { // CoolFish: Family Adv 2001/8/4 AddFMAdv(talker, shiftbit); } point = point | (1 << shift); CHAR_setInt(talker, CHAR_ENDEVENT + array, point); }
void NPC_EventSetFlg(int talker,int shiftbit) { int point=0; int array; int shift; #ifdef _TEACHER_SYSTEM int iGetFame = 0; #endif /*-- -1���º�����绥ئ����ì���� -*/ if(shiftbit==-1) return; if(shiftbit<=255){ array = shiftbit / 32; shift = shiftbit % 32; point = CHAR_getInt( talker, CHAR_ENDEVENT+array); // Arminius 8.24 prevent wash dp if (!(point & (1 << shift))) { // CoolFish: Family Adv 2001/8/4 AddFMAdv(talker, shiftbit); #ifdef _TEACHER_SYSTEM if(shiftbit < arraysizeof(FMAdvTbl)) iGetFame = FMAdvTbl[shiftbit]; #endif } #ifdef _TEACHER_SYSTEM iGetFame /= 20; // ��ʦ���ѧ������������ 5% (1/20) // ������õ�������û�д��0 if(iGetFame > 0){ // �����û�е�ʦ if(strlen(CHAR_getChar(talker,CHAR_TEACHER_ID)) > 0 && strlen(CHAR_getChar(talker,CHAR_TEACHER_NAME)) > 0){ int iPlayernum = CHAR_getPlayerMaxNum(),i; char szMsg[128]; // ��鵼ʦ�ڲ������� for(i=0;i<iPlayernum;i++){ if(CHAR_getCharUse(i) == FALSE) continue; if(strcmp(CHAR_getChar(talker,CHAR_TEACHER_ID),CHAR_getChar(i,CHAR_CDKEY)) == 0 && strcmp(CHAR_getChar(talker,CHAR_TEACHER_NAME),CHAR_getChar(i,CHAR_NAME)) == 0){ float fGetFame = (float)iGetFame/100; // ��ʦ������ CHAR_setWorkInt(i,CHAR_WORK_GET_TEACHER_FAME,CHAR_getWorkInt(i,CHAR_WORK_GET_TEACHER_FAME) + iGetFame); sprintf(szMsg,"���ѧ�� %s %.2f ������",CHAR_getChar(talker,CHAR_NAME),fGetFame); CHAR_talkToCli(i,-1,szMsg,CHAR_COLORYELLOW); break; } } } } #endif point = point | (1 << shift); CHAR_setInt( talker, CHAR_ENDEVENT+array, point); } else if(shiftbit<=510){ array = (shiftbit-255) / 32; shift = (shiftbit-255) % 32; point = CHAR_getInt( talker, CHAR_ENDEVENT9+array); point = point | (1 << shift); CHAR_setInt( talker, CHAR_ENDEVENT9+array, point); } }