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

📄 npc_luckyman.c

📁 石器时代2.0完整版源代码.已经加入新功能. 在REDHAT9下GCC3.4编译成功.
💻 C
字号:
#include "version.h"#include <string.h>#include "char.h"#include "object.h"#include "char_base.h"#include "npcutil.h"#include "lssproto_serv.h"#include "npc_luckyman.h"static void NPC_LuckyMan_selectWindow( int meindex, int toindex, int num,char *msg);void NPC_LuckyManAllHeal( int talker,int mode );BOOL NPC_LuckyManLevelCheck(int meindex,int talker);void NPC_LuckyDisp(int meindex,int talker);BOOL NPC_LuckyCostCheck(int meindex,int talker,int cost);int NPC_GetMoney(int meindex,int talker,char *buf);/********************************** 赓渝质  *********************************/BOOL NPC_LuckyManInit( int meindex ){	/*--平乓仿及正奶皿毛涩烂--**/    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPELUCKYMAN );	return TRUE;}/**********************************   仄井仃日木凶凛及质  *********************************/void NPC_LuckyManTalked( int meindex , int talkerindex , char *szMes ,int color ){	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];	char buf[256];	char token[512];	int cost;	/*--  及蟆卞中月井升丹井"--*/	if(NPC_Util_isFaceToFace( meindex ,talkerindex ,2) == FALSE) {		/* ㄠ弘伉永玉动  及心 */		if(NPC_Util_isFaceToChara( talkerindex, meindex, 1) == FALSE) return;	}		/*--涩烂白央奶伙毛  心  心--*/	if(NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr)) == NULL) {		print("NPC_ExChange.c TypeCheck: GetArgStrErr\n");		print("NPCName=%s\n", CHAR_getChar( meindex, CHAR_NAME));		return;	}	NPC_Util_GetStrFromStrWithDelim( argstr,"Stone", buf, sizeof( buf));	cost = NPC_GetMoney( meindex, talkerindex, buf);	NPC_Util_GetStrFromStrWithDelim( argstr,"main_msg", buf, sizeof( buf));	sprintf( token, buf, cost);		NPC_LuckyMan_selectWindow( meindex, talkerindex, 2, token);}static void NPC_LuckyMan_selectWindow( int meindex, int toindex, int num,char *msg){	int fd = getfdFromCharaIndex( toindex);	char token[1024];	int buttontype = 0,windowtype = 0,windowno = 0;	switch( num){		case 1:			sprintf(token ,"       ☆今日的运势☆ "					"\n\n%s",msg				);				buttontype = WINDOW_BUTTONTYPE_OK;				windowtype = WINDOW_MESSAGETYPE_MESSAGE;				windowno = CHAR_WINDOWTYPE_WINDOWPETSHOP_START; 		break;			case 2:			sprintf(token, "        ☆占卜师☆ "					"\n\n%s",msg				);				buttontype = WINDOW_BUTTONTYPE_YESNO;				windowtype = WINDOW_MESSAGETYPE_MESSAGE;				windowno = CHAR_WINDOWTYPE_WINDOWPETSHOP_START; 		break;		case 3:			sprintf(token, "        ☆占卜师☆ "					"\n\n%s",msg				);				buttontype = WINDOW_BUTTONTYPE_OK;				windowtype = WINDOW_MESSAGETYPE_MESSAGE;				windowno = CHAR_WINDOWTYPE_WINDOWPETSHOP_START; 		break;	}	/*--霜耨--*/	lssproto_WN_send( fd, windowtype, 				buttontype, 				windowno,				CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),				token);}	/*-----------------------------------------弁仿奶失件玄井日忒匀化五凶凛卞裟太请今木月[-------------------------------------------*/void NPC_LuckyManWindowTalked( int meindex, int talkerindex, 								int seqno, int select, char *data){	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];	char buf[256];	int money;	int level;		/*--涩烂白央奶伙毛  心  心--*/	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr)) == NULL) {		print("NPC_ExChange.c TypeCheck: GetArgStrErr\n");		print("NPCName=%s\n", CHAR_getChar(meindex,CHAR_NAME));		return;	}	switch( seqno){		case CHAR_WINDOWTYPE_WINDOWPETSHOP_START:			if(select == WINDOW_BUTTONTYPE_YES) {				NPC_Util_GetStrFromStrWithDelim( argstr, "Stone", buf,sizeof(buf));							if(strstr(buf,"LV") != NULL) {					char buff2[32];					level = CHAR_getInt( talkerindex, CHAR_LV);					getStringFromIndexWithDelim( buf, "*", 2, buff2,sizeof( buff2));					money = level * atoi( buff2);					if(NPC_LuckyCostCheck(meindex,talkerindex,money) == FALSE) {						NPC_Util_GetStrFromStrWithDelim( argstr,"NoMoney", buf, sizeof( buf));						NPC_LuckyMan_selectWindow( meindex, talkerindex, 3, buf);						return;					}				}else{					money = atoi( buf);					if(NPC_LuckyCostCheck(meindex,talkerindex ,money) == FALSE) {						NPC_Util_GetStrFromStrWithDelim( argstr,"NoMoney", buf,sizeof( buf));						NPC_LuckyMan_selectWindow( meindex, talkerindex, 3, buf);						return;					}				}				CHAR_DelGold( talkerindex, money );				CHAR_send_P_StatusString( talkerindex, CHAR_P_STRING_GOLD);				NPC_LuckyDisp( meindex, talkerindex);			}else if(select == WINDOW_BUTTONTYPE_OK) {			}		break;	}}void NPC_LuckyDisp(int meindex,int talker){	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];	char buf[16];	char token[1024];	char buf2[512];	int i = 1;	/*--涩烂白央奶伙毛  心  心--*/	if(NPC_Util_GetArgStr( meindex, argstr, sizeof( argstr)) == NULL) {		print("NPC_Savepoint.c Init: GetArgStrErr");		return;	}	/*--扪毛苇月--*/	sprintf( buf, "luck%d", CHAR_getInt( talker, CHAR_LUCK));	NPC_Util_GetStrFromStrWithDelim( argstr, buf, buf2, sizeof( buf2));	while(getStringFromIndexWithDelim( buf2, ",", i, token, sizeof( token))	!= FALSE)	{		i++;	}	i--;	i = rand()%i + 1;	/*--仿件母丞匹丢永本□斥毛  憎今六月--*/	getStringFromIndexWithDelim( buf2,",", i, token, sizeof( token));	NPC_LuckyMan_selectWindow( meindex, talker, 1, token);}/*---云嗯及民尼永弁-**/BOOL NPC_LuckyCostCheck(int meindex,int talker,int cost){	/*--蜇箕反移涩烂---*/	/*---云嗯互箫曰月井升丹井及民尼永弁---*/	if(CHAR_getInt( talker, CHAR_GOLD) < cost) {		return FALSE;	}	return TRUE;}int NPC_GetMoney(int meindex,int talker,char *buf){	int level;	int money;		if(strstr(buf,"LV") != NULL) {		char buff2[32];		level = CHAR_getInt(talker,CHAR_LV);		getStringFromIndexWithDelim( buf, "*" ,2, buff2,sizeof( buff2));		money = level * atoi( buff2);	}else{		money = atoi( buf);	}	return money;}

⌨️ 快捷键说明

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