⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 npc_petmaker.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
字号:
#include "version.h"#include <stdio.h>#include <string.h>#include <ctype.h>#include "object.h"#include "char_base.h"#include "char.h"#include "util.h"#include "npcutil.h"#include "item.h"#include "readmap.h"#include "enemy.h"#include "chatmagic.h"#include "log.h"#define EVFLG 118                 // 58->白虎  118->青龙  void pet_make( int charaindex, char* message );  BOOL NPC_PetMakerInit( int meindex ){    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPEPETMAKER );    CHAR_setFlg( meindex , CHAR_ISATTACKED , 0 );    return TRUE;}void NPC_PetMakerTalked( int meindex , int talker , char *msg ,int color ){    char* npcarg;    char  token[32],tmpbuf[256];    int   msgNo/*,translv*/;    int   point,ckpoint,array,shift;     int   i,num=0;    array   = EVFLG / 32;    shift   = EVFLG % 32;    point   = CHAR_getInt( talker, CHAR_ENDEVENT + array);    ckpoint = point;    npcarg = CHAR_getChar(meindex,CHAR_NPCARGUMENT);    getStringFromIndexWithDelim( npcarg, "|", 1, token,sizeof( token));    msgNo  = atoi( token );    if( CHAR_getInt( talker , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER )	        return;    if( NPC_Util_isFaceToFace( talker, meindex , 2 ) == FALSE )     {    	if( NPC_Util_isFaceToFace( talker, meindex , 1 ) == FALSE )         	return;    }        //translv = CHAR_getInt( talker, CHAR_TRANSMIGRATION);    // 白虎        for(i=0; i<CHAR_MAXPETHAVE; i++)        if(CHAR_getCharPet(talker, i) != -1)             num++;    // 白虎    /*if( translv < 5 || CHAR_getInt( talker, CHAR_LV ) < 125){        sprintf(tmpbuf, "抱歉哦~等到转生5次及等级125级时再来找我吧!");        CHAR_talkToCli( talker, meindex,                        tmpbuf,CHAR_COLORWHITE);        return;    }*/   	// 青龙	    if( CHAR_getInt( talker, CHAR_FAME) < 200000){        sprintf(tmpbuf, "抱歉哦~你目前个人声望 %d 点,请等到超过二千点时再来找我吧!", (CHAR_getInt( talker, CHAR_FAME)/100));        CHAR_talkToCli( talker, meindex,                        tmpbuf,CHAR_COLORWHITE);        return;    }    else if( ckpoint & (1 << shift) ){        sprintf(tmpbuf, "哦~我记得我好像给过你了吧!");        CHAR_talkToCli( talker, meindex,                        tmpbuf,CHAR_COLORWHITE);        return;    }        else if( num>=CHAR_MAXPETHAVE ){        sprintf(tmpbuf, "抱歉~没多余的空间可放置宠物。");        CHAR_talkToCli( talker, meindex,                        tmpbuf,CHAR_COLORWHITE);        return;        }        pet_make( talker, "1845" );        point = point | (1 << shift);    CHAR_setInt( talker, CHAR_ENDEVENT + array, point);}void pet_make( int charaindex, char* message ){    int  ret;    char msgbuf[64];    int  enemynum;    int  enemyid;    int  i;    enemyid  = atoi(message);    enemynum = ENEMY_getEnemyNum();    for( i=0; i<enemynum; i++ ){        if( ENEMY_getInt( i, ENEMY_ID) == enemyid){            break;        }    }    if(i==enemynum) return;    ret = ENEMY_createPetFromEnemyIndex( charaindex, i);    snprintf( msgbuf, sizeof( msgbuf), "哦~以你的能力足以配得上一只传说宠物,好吧!就是你了。");    CHAR_talkToCli( charaindex, -1, msgbuf, CHAR_COLORYELLOW);                    for( i=0; i<CHAR_MAXPETHAVE; i++ ){        if( CHAR_getCharPet( charaindex, i) == ret )break;    }      if( i==CHAR_MAXPETHAVE) i = 0;    if( CHAR_CHECKINDEX( ret ) == TRUE ){		CHAR_setMaxExpFromLevel( ret, CHAR_getInt( ret, CHAR_LV ));    }                                                                                                    snprintf( msgbuf, sizeof( msgbuf ), "K%d", i );    CHAR_sendStatusString( charaindex, msgbuf );                         snprintf( msgbuf, sizeof( msgbuf ), "W%d", i );    CHAR_sendStatusString( charaindex, msgbuf );		for( i=0; i<CHAR_MAXPETHAVE; i++ )		if( CHAR_getCharPet(charaindex, i) == ret )			CHAR_send_K_StatusString(charaindex, i, CHAR_K_STRING_HP|CHAR_K_STRING_AI);		LogPet(		CHAR_getChar( charaindex, CHAR_NAME ), /* 平乓仿   */		CHAR_getChar( charaindex, CHAR_CDKEY ),		"凯恩",1,"PetMaker",		CHAR_getInt( charaindex,CHAR_FLOOR),		CHAR_getInt( charaindex,CHAR_X ),		CHAR_getInt( charaindex,CHAR_Y ),		CHAR_getChar( ret, CHAR_UNIQUECODE)   // shan 2001/12/14	);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -