亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? item_event.c.bak

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? BAK
?? 第 1 頁 / 共 5 頁
字號:
#include "version.h"#include <string.h> /* strstr */#include <ctype.h>  /* isdigit, isalnum */#include "common.h"#include "char.h"#include "char_base.h"#include "char_data.h"#include "configfile.h"#include "item.h"#include "item_event.h"#include "object.h"#include "anim_tbl.h"#include "magic.h"#include "handletime.h"#include "log.h"#include "util.h"#include "encount.h"#include "battle.h"#include "battle_item.h"#include "lssproto_serv.h"#include "net.h"#include "pet.h"#include "npcutil.h"#include "enemy.h"#ifdef _Item_ReLifeAct#include "battle_magic.h"#endif#ifdef _MARKET_TRADE#include "item_trade.h"#endif#ifdef _ITEM_WARP_FIX_BIextern	tagRidePetTable	ridePetTable[146];#endif#include "pet_skill.h"#ifdef _DEATH_CONTENDAB#include "deathcontend.h"#endif#ifdef _CFREE_petskill#include "npc_freepetskillshop.h"#endif#ifdef _PROFESSION_SKILL			// WON ADD 人物職業(yè)技能#include "profession_skill.h"#endifint ITEM_TimeDelCheck( int itemindex ){	int icnt, jcnt, playernum;	playernum = CHAR_getPlayerMaxNum();	for( icnt = 0; icnt < playernum; icnt ++ ) {		if( CHAR_CHECKINDEX( icnt ) ) {			for( jcnt = 0; jcnt < CHAR_MAXITEMHAVE; jcnt ++ ) {				if( CHAR_getItemIndex( icnt, jcnt ) == itemindex ) {					print( "道具效力時間已到,進行奇怪道具處理(%s)(%s)\n",						CHAR_getUseName(icnt),ITEM_getAppropriateName(itemindex) );					return FALSE;				}			}		}	}	return TRUE;}int ITEM_eventDrop( int itemindex, int charaindex, int itemcharaindex ){	typedef void (*DROPF)(int,int);	char szBuffer[256]="";	DROPF dropfunc=NULL;    if( ITEM_CHECKINDEX(itemindex) == FALSE )return -1;	dropfunc=(DROPF)ITEM_getFunctionPointer( itemindex, ITEM_DROPFUNC );	if( dropfunc ){		dropfunc( charaindex, itemindex );	}    if( ITEM_getInt( itemindex, ITEM_VANISHATDROP) != 1 )return 0;	snprintf( szBuffer, sizeof( szBuffer), "%s 消滅了。",		ITEM_getAppropriateName(itemindex) );	CHAR_talkToCli( charaindex, -1, szBuffer, CHAR_COLORWHITE );	{		LogItem(			CHAR_getChar( charaindex, CHAR_NAME ), /* 平乓仿   */			CHAR_getChar( charaindex, CHAR_CDKEY ),#ifdef _add_item_log_name  // WON ADD 在item的log中增加item名稱			itemindex,#else       		ITEM_getInt( itemindex, ITEM_ID ),  /* 失奶  丞  寞 */#endif			"Drop&Delete(丟出後消失)",			CHAR_getInt( charaindex,CHAR_FLOOR),			CHAR_getInt( charaindex,CHAR_X ), 	      	CHAR_getInt( charaindex,CHAR_Y ),            ITEM_getChar( itemindex, ITEM_UNIQUECODE),						ITEM_getChar( itemindex, ITEM_NAME),						ITEM_getInt( itemindex, ITEM_ID)		);	}	CHAR_setItemIndex( charaindex, itemcharaindex, -1);	ITEM_endExistItemsOne( itemindex );	return 1;}#undef  UNDEF#define UNDEF (-1)typedef struct {    char* cmd;        /* 摹    儂   */    char*   onmessage;    /*  丟永本□斥  儂      */    char*   offmessage;    /*  丟永本□斥  儂      */    int   element;    /* 覆擂卞卅月邰豳 */    int   maxElement; /* element匹隙爛今木兇邰豳及    襖毛手勾邰豳 */} ITEM_EFFECTPARAM;static ITEM_EFFECTPARAM ITEM_restorableParam[] = {    {"hp", "HP回復了。", "HP降低了。",CHAR_HP, CHAR_WORKMAXHP},    {"mp", "MP回復了。", "MP降低了。",CHAR_MP, CHAR_WORKMAXMP},};static ITEM_EFFECTPARAM ITEM_statusParam[] = {    {"po", CHAR_POISONSTRING, CHAR_RECOVERPOISONSTRING,     CHAR_POISON,    UNDEF},    {"pa", CHAR_PARALYSISSTRING, CHAR_RECOVERPARALYSISSTRING,     CHAR_PARALYSIS, UNDEF},    {"si", CHAR_SILENCESTRING, CHAR_RECOVERSILENCESTRING,     CHAR_SLEEP,UNDEF},    {"st", CHAR_STONESTRING, CHAR_RECOVERSTONESTRING, CHAR_STONE, UNDEF},    {"da", CHAR_DARKNESSSTRING, CHAR_RECOVERDARKNESSSTRING,     CHAR_DRUNK,UNDEF},    {"co", CHAR_CONFUSIONSTRING,CHAR_RECOVERCONFUSIONSTRING,     CHAR_CONFUSION, UNDEF},};/*#define LOCAL_DEBUG*/#ifdef LOCAL_DEBUG#define DOUTFILE  "doutfile"#include <stdio.h>#include <stdarg.h>static int eprintf(char* format, ...){    va_list arg;    long len;    FILE* fp;    fp = fopen(DOUTFILE, "a");    va_start(arg, format);    len = vfprintf(stderr, format, arg);    if(fp){ vfprintf(fp, format, arg); fclose(fp); }    va_end(arg);    return len;}#define fprint eprintf#endifstatic BOOL ITEM_isValidEffect(char* cmd, int value){    int i;    for(i=0; i<arraysizeof(ITEM_restorableParam); i++){        if(! strcmp(cmd, ITEM_restorableParam[i].cmd)){            return value <= 0 ? FALSE : TRUE;        }    }    if(value < 0 ) return FALSE;    for(i=0; i<arraysizeof(ITEM_statusParam); i++){        if(! strcmp(cmd, ITEM_statusParam[i].cmd)){            return TRUE;        }    }    return FALSE;}#define ID_BUF_LEN_MAX  20#define SEPARATORI       '|'BOOL ITEM_MedicineInit(ITEM_Item* itm){    char cmd[ID_BUF_LEN_MAX], arg[ID_BUF_LEN_MAX];    int value;    int effectCount = 0;    char* p, * q;    char* effectarg;    effectarg = itm->string[ITEM_ARGUMENT].string;    if(* effectarg == '\0') return TRUE;    for(p=effectarg; *p != '\0'; ){        int i;        if(*p == SEPARATORI) p++;        for(q=cmd, i=0; isalnum(*p) && i<ID_BUF_LEN_MAX; i++){            *q++ = *p++;        }        *q = '\0';        if(q == cmd || *p != SEPARATORI){            fprint("ITEM_medicineInit: error(c)? invalid:%s(%d)\n",                   effectarg, effectCount);            return FALSE;        }        p++;        for(q=arg, i=0; isdigit(*p) && i<ID_BUF_LEN_MAX; i++){            *q++ = *p++;        }        *q = '\0';        value = strtol(arg, & q, 10); /* strtol()反OK? */        if(ITEM_isValidEffect(cmd, value)){            effectCount++;        }else{            fprint("ITEM_medicineInit: error(v)? invalid:%s(%d)\n",                   effectarg, effectCount);            return FALSE;        }    }    return (effectCount == 0) ? FALSE : TRUE;}static BOOL ITEM_medicineRaiseEffect(int charaindex, char* cmd,int value){    int i;    char ansmsg[256];    for( i=0 ; i<arraysizeof(ITEM_restorableParam); i++){        if( ! strcmp(cmd, ITEM_restorableParam[i].cmd) ){#if 1            int maxv,curv,amount;            char*   onoroff=NULL;            maxv=CHAR_getWorkInt( charaindex, ITEM_restorableParam[i].maxElement);            curv=CHAR_getInt(charaindex,ITEM_restorableParam[i].element);            amount = value;            if( curv + amount < 0 ) amount = -curv;            CHAR_setInt(charaindex,ITEM_restorableParam[i].element, min((curv+amount),maxv));            if( amount > 0 )                onoroff=ITEM_restorableParam[i].onmessage;            else if( amount < 0 )                onoroff=ITEM_restorableParam[i].offmessage;            else                return FALSE;            strcpysafe( ansmsg, sizeof(ansmsg), onoroff );            CHAR_talkToCli( charaindex, -1, ansmsg, CHAR_COLORWHITE);            return TRUE;#else            if(value == ITEM_EFFECT_RESTORE_NORMAL){                int maxv, curv, amount;                maxv =CHAR_getWorkInt(charaindex, ITEM_restorableParam[i].maxElement);                curv =CHAR_getInt(charaindex, ITEM_restorableParam[i].element);                amount = 30;                if(curv + amount < 0) amount = -curv;                CHAR_setInt(charaindex, ITEM_restorableParam[i].element, min((curv+amount), maxv));                snprintf( ansmsg, sizeof(ansmsg), "%s回復了。",                          ITEM_restorableParam[i].onmessage );                CHAR_talkToCli( charaindex, -1, ansmsg, CHAR_COLORWHITE);                return TRUE;            }else if(value == ITEM_EFFECT_RESTORE_COMPLETE){                int maxv;                maxv =CHAR_getWorkInt(charaindex, ITEM_restorableParam[i].maxElement);                CHAR_setInt(charaindex, ITEM_restorableParam[i].element, maxv);                snprintf( ansmsg, sizeof(ansmsg), "%s已完全回復。", ITEM_restorableParam[i].onmessage );                CHAR_talkToCli( charaindex, -1, ansmsg, CHAR_COLORWHITE );                return TRUE;            }else                return FALSE;#endif        }    }    if( value >= 0 ){        int found = 0;        for(i=0; i<arraysizeof(ITEM_statusParam); i++){            if(! strcmp(cmd, ITEM_statusParam[i].cmd)){                ansmsg[0] = '\0';                if( value && CHAR_getInt(charaindex,ITEM_statusParam[i].element) < value ){                    CHAR_setInt(charaindex, ITEM_statusParam[i].element, value);                    strcpysafe( ansmsg, sizeof(ansmsg), ITEM_statusParam[i].onmessage );                }else{                    if( CHAR_getInt(charaindex, ITEM_statusParam[i].element ) ){ 						strcpysafe( ansmsg, sizeof(ansmsg), ITEM_statusParam[i].offmessage );                    }                    CHAR_setInt(charaindex, ITEM_statusParam[i].element, 0 );                }                found = 1;                if( ansmsg[0] != '\0' )                    CHAR_talkToCli( charaindex,-1,ansmsg,CHAR_COLORWHITE);            }        }        if(found){            CHAR_sendCToArroundCharacter( CHAR_getWorkInt(charaindex,CHAR_WORKOBJINDEX) );            return TRUE;        }    }#undef ITEM_STATUSCHANGEVALUE    strcpysafe( ansmsg, sizeof(ansmsg),"什麼也沒發(fā)生。");    CHAR_talkToCli( charaindex, -1, ansmsg, CHAR_COLORWHITE );    return FALSE;}void ITEM_MedicineUsed(int charaindex, int to_charaindex, int itemindex){    int itemid;    int usedf = 0;    char cmd[ID_BUF_LEN_MAX], arg[ID_BUF_LEN_MAX];    int value;    char* p, * q;    char* effectarg;    char ansmsg[256];    itemid = CHAR_getItemIndex(charaindex, itemindex);    if(!ITEM_CHECKINDEX(itemid)) return;    effectarg = ITEM_getChar(itemid, ITEM_ARGUMENT);    snprintf( ansmsg, sizeof(ansmsg), "抓到了%s 。", ITEM_getChar(itemid, ITEM_NAME) );    CHAR_talkToCli( charaindex, -1, ansmsg, CHAR_COLORWHITE );    for( p=effectarg ; *p != '\0'; ){        int i;        if(*p == SEPARATORI) p++;        for(q=cmd, i=0; isalnum(*p) && i<ID_BUF_LEN_MAX; i++){            *q++ = *p++;        }        *q = '\0';        if(q == cmd || *p != SEPARATORI) return;        p++;        for(q=arg, i=0; isdigit(*p) && i<ID_BUF_LEN_MAX; i++){            *q++ = *p++;        }        *q = '\0';        value = strtol(arg, & q, 10);        if(ITEM_medicineRaiseEffect(charaindex, cmd, value)){            usedf = 1;        }    }    if(usedf){		CHAR_DelItem( charaindex, itemindex);        CHAR_sendStatusString(charaindex, "P");    }else        fprint("ITEM_medicineUsed: error? cannot be used.\n");#undef ID_BUF_LEN_MAX#undef SEPARATORI}void ITEM_SandClockDetach( int charaindex , int itemid ){    int     i;    if( !ITEM_CHECKINDEX( itemid )) return;    for( i=0 ; i<CHAR_MAXITEMHAVE ; i++ ){        if( CHAR_getItemIndex(charaindex,i ) == itemid ){			CHAR_DelItem( charaindex, i);            CHAR_talkToCli( charaindex, -1, "一卸下沙漏,竟忽然壞了!", CHAR_COLORWHITE );            print( "deleted sand clock!\n" );            break;        }    }}void ITEM_SandClockLogin( int charaindex ){	int i;	int dTime;	for( i=0 ; i<CHAR_MAXITEMHAVE; i++ ){		int itemindex = CHAR_getItemIndex(charaindex,i);		if( ITEM_getInt( itemindex, ITEM_ID ) != 29 )continue;		if( ITEM_getInt( itemindex, ITEM_VAR4 ) == 0 )continue;		dTime = NowTime.tv_sec - ITEM_getInt( itemindex, ITEM_VAR4 );		ITEM_setInt( itemindex, ITEM_VAR3, ITEM_getInt( itemindex, ITEM_VAR3 ) + dTime );	}}void ITEM_SandClockLogout( int charaindex ){	int i;	for( i=0 ; i<CHAR_MAXITEMHAVE; i++ ){		int itemindex = CHAR_getItemIndex(charaindex,i);		if( ITEM_getInt( itemindex, ITEM_ID ) != 29 )continue;		ITEM_setInt( itemindex, ITEM_VAR4, NowTime.tv_sec );	}}// Arminius 7.2: Ra's amulet , remove "static"/*static*/BOOL ITEM_getArgument( char* argument , char* entryname, char* buf , int buflen ){    int     i;    char    dividedbypipeline[512];    for( i=1;  ; i++ ){        BOOL   ret;		ret = getStringFromIndexWithDelim( argument, "|", i, dividedbypipeline,                                           sizeof(dividedbypipeline) );        if( ret == TRUE ){            int     tworet=1;            char    first[512];            tworet &= getStringFromIndexWithDelim( dividedbypipeline, ":", 1, first,sizeof(first) );            tworet &= getStringFromIndexWithDelim( dividedbypipeline, ":", 2, buf,buflen );            if( tworet != 0 )                if( strcasecmp( first, entryname ) == 0 )                    return TRUE;        }else            break;    }    return FALSE;}void ITEM_addTitleAttach( int charaindex, int itemindex )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品影视av免费| 日韩一区二区三区观看| 欧美情侣在线播放| 中文av一区二区| 蜜臀av一区二区三区| 色婷婷av一区二区三区gif| 久久蜜桃av一区精品变态类天堂| 亚洲国产wwwccc36天堂| 高清在线不卡av| 精品嫩草影院久久| 日本午夜一区二区| 欧美日韩一区二区三区四区| 国产精品免费观看视频| 国产一区二区视频在线| 精品免费99久久| 五月综合激情婷婷六月色窝| 91丨九色丨国产丨porny| 国产精品乱人伦中文| 国产一区二区伦理片| 日韩视频免费观看高清在线视频| 洋洋av久久久久久久一区| 成人激情黄色小说| 国产精品网站导航| 成人午夜av电影| 亚洲精品在线网站| 麻豆精品视频在线| 日韩一级片在线播放| 日日嗨av一区二区三区四区| 欧美日韩视频在线第一区 | 92精品国产成人观看免费| 欧美一级一级性生活免费录像| 亚洲一区二区中文在线| 在线免费视频一区二区| 一区二区理论电影在线观看| 91天堂素人约啪| 亚洲综合清纯丝袜自拍| 91国在线观看| 爽好久久久欧美精品| 日韩一级精品视频在线观看| 精品午夜久久福利影院| 精品国产露脸精彩对白| 国产一区二区三区四区在线观看| 精品福利一二区| 国产成+人+日韩+欧美+亚洲| 国产精品高潮呻吟| 欧美吞精做爰啪啪高潮| 婷婷成人综合网| 欧美mv和日韩mv的网站| 大桥未久av一区二区三区中文| 中文字幕永久在线不卡| 91日韩在线专区| 五月天久久比比资源色| 欧美成人午夜电影| www.欧美.com| 亚洲1区2区3区4区| 欧美精品一区二区三区很污很色的| 国产美女娇喘av呻吟久久| 一区免费观看视频| 欧美日韩三级视频| 国产精品自拍av| 亚洲欧美国产毛片在线| 91精品国产全国免费观看| 国模娜娜一区二区三区| 亚洲男女一区二区三区| 日韩手机在线导航| 99久久99久久久精品齐齐| 午夜日韩在线电影| 久久久五月婷婷| 精品视频一区三区九区| 久久精品国产色蜜蜜麻豆| 国产精品久久久久国产精品日日| 欧美色精品在线视频| 国内精品久久久久影院一蜜桃| 中文字幕在线观看一区| 制服丝袜日韩国产| 国产不卡一区视频| 亚洲综合在线电影| 国产女人aaa级久久久级| 在线不卡一区二区| 99麻豆久久久国产精品免费| 蜜桃在线一区二区三区| 亚洲男人电影天堂| 久久久国产精华| 欧美一区二区三区视频免费| 色综合久久久久| 国产成人免费视频网站| 免费看黄色91| 亚洲最大成人网4388xx| 亚洲国产高清不卡| 日韩欧美一卡二卡| 欧美亚洲综合另类| 成人h版在线观看| 国产一区二区久久| 秋霞电影网一区二区| 亚洲一区二区三区三| 国产精品色婷婷| 久久久九九九九| 欧美精品一区二区三区四区| 欧美日韩一区二区三区在线| 99re8在线精品视频免费播放| 国产一区欧美一区| 久久精品理论片| 婷婷开心久久网| 樱花草国产18久久久久| 国产精品二三区| 国产精品日产欧美久久久久| 久久精品人人爽人人爽| 久久蜜桃一区二区| 久久久久久综合| www日韩大片| 久久蜜桃一区二区| 欧美激情一区在线观看| 中文字幕免费一区| 中文字幕在线不卡一区| 亚洲国产精品成人综合| 久久久久国产一区二区三区四区 | 亚洲天堂网中文字| 国产精品久久久久精k8 | 欧美性色黄大片| 91国在线观看| 欧美日韩高清在线播放| 欧美日韩一区在线| 欧美一区二区三区在线看| 337p亚洲精品色噜噜噜| 精品久久人人做人人爱| 久久久久久久久久电影| 国产视频一区在线播放| 国产精品免费久久| 夜夜嗨av一区二区三区| 亚洲超碰97人人做人人爱| 日本免费新一区视频| 精品无码三级在线观看视频 | 国产精品久久久久久久午夜片| 国产精品久久毛片a| 亚洲激情av在线| 亚洲123区在线观看| 麻豆精品精品国产自在97香蕉| 国产美女娇喘av呻吟久久| 99久久精品免费看国产| 欧美亚洲国产bt| 日韩精品一区二区三区在线 | 丝袜美腿亚洲综合| 久久99深爱久久99精品| 波多野洁衣一区| 欧美艳星brazzers| 精品国产一区二区精华| 亚洲天堂成人网| 美女视频一区二区| 成人免费看片app下载| 欧美唯美清纯偷拍| 久久亚洲综合av| 亚洲午夜精品在线| 精品一区二区三区影院在线午夜| 成+人+亚洲+综合天堂| 欧美精品丝袜久久久中文字幕| 久久久不卡影院| 无码av免费一区二区三区试看| 国产精品88av| 欧美日韩成人在线| 1000部国产精品成人观看| 青青草国产成人99久久| av激情综合网| 日韩久久免费av| 亚洲精品综合在线| 国产精品99久久久久久久女警| 欧美亚男人的天堂| 国产精品污网站| 久久99精品久久久| 欧美日韩国产乱码电影| 亚洲天堂福利av| 国产成人自拍网| 日韩你懂的电影在线观看| 亚洲一二三级电影| av亚洲精华国产精华精| wwwwxxxxx欧美| 日韩—二三区免费观看av| 在线一区二区观看| 国产精品蜜臀在线观看| 国产一区二区三区久久久| 666欧美在线视频| 一区av在线播放| 99re这里都是精品| 欧美国产97人人爽人人喊| 九色porny丨国产精品| 91精品久久久久久久99蜜桃| 亚洲一区二区不卡免费| 91免费观看在线| 中文一区二区在线观看| 国产美女主播视频一区| 日韩精品一区二区三区四区视频| 丝袜国产日韩另类美女| 欧美体内she精视频| 一区二区三区电影在线播| 97se亚洲国产综合自在线不卡| 久久亚洲二区三区| 国产伦精品一区二区三区免费迷| 日韩女优制服丝袜电影| 韩日欧美一区二区三区| 亚洲综合免费观看高清完整版在线| 99久久精品国产一区二区三区|