亚洲欧美第一页_禁久久精品乱码_粉嫩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 人物職業技能#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),"什麼也沒發生。");    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一区二区三区免费野_久草精品视频
在线视频国产一区| 亚洲一区在线观看视频| 一区二区三区**美女毛片| 午夜伊人狠狠久久| 国产69精品久久久久毛片| 在线观看亚洲精品视频| 国产亚洲综合性久久久影院| 五月天中文字幕一区二区| 成人精品在线视频观看| 日韩精品一区二区三区老鸭窝| 一区二区三区蜜桃网| 丁香婷婷综合五月| 精品国产乱子伦一区| 亚洲一区二区三区爽爽爽爽爽| 国产传媒欧美日韩成人| 精品成人a区在线观看| 日韩和欧美一区二区| 日本乱人伦aⅴ精品| 国产欧美1区2区3区| 国产一区二区在线看| 日韩一级高清毛片| 日韩电影在线观看一区| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲第一av色| 91国产视频在线观看| 成人欧美一区二区三区视频网页| 国产精品小仙女| 337p日本欧洲亚洲大胆色噜噜| 蜜臀av一级做a爰片久久| 91精品国产全国免费观看| 日韩专区一卡二卡| 欧美精品一卡二卡| 裸体一区二区三区| 2022国产精品视频| 亚洲国产一区二区a毛片| 岛国一区二区三区| 日韩片之四级片| 日本vs亚洲vs韩国一区三区二区 | 亚洲精品一二三区| 91片在线免费观看| 玉米视频成人免费看| 在线观看亚洲一区| 一卡二卡三卡日韩欧美| 欧美丝袜自拍制服另类| 午夜精品免费在线| 精品成人在线观看| av不卡在线观看| 亚洲综合色视频| 日韩精品一区二区三区中文精品| 国产精品一二二区| 亚洲欧美怡红院| 欧美日韩免费观看一区三区| 日韩成人午夜电影| 国产日韩欧美精品在线| 91黄色激情网站| 奇米888四色在线精品| 久久久久免费观看| 成人免费视频一区| 亚洲精品一二三| 亚洲成人av电影| 不卡欧美aaaaa| 亚洲午夜电影在线观看| 欧洲人成人精品| 国产精品丝袜久久久久久app| 综合色天天鬼久久鬼色| 日本v片在线高清不卡在线观看| 精品对白一区国产伦| 91欧美一区二区| 日韩精品电影在线| 亚洲日本在线视频观看| 亚洲一二三四在线| 99综合影院在线| 91九色最新地址| 免费高清不卡av| 午夜精品福利久久久| www.爱久久.com| 精品国产91洋老外米糕| 欧美日韩aaaaaa| 高清免费成人av| 日韩一区在线看| 日韩成人精品视频| 国产性天天综合网| 欧美日韩成人综合在线一区二区| 国产一区二区不卡老阿姨| 亚洲老妇xxxxxx| 国产精品视频在线看| 日韩欧美一区二区免费| 色哟哟在线观看一区二区三区| 韩国三级电影一区二区| 一区二区三区在线视频播放| 久久精品夜夜夜夜久久| 91麻豆精品国产| 欧美日韩一区二区在线观看视频| av一区二区久久| 国产乱人伦偷精品视频免下载| 日本特黄久久久高潮| 亚洲一区二区在线观看视频| 国产精品国产三级国产三级人妇| 久久免费看少妇高潮| 日韩视频免费直播| 欧美日韩mp4| 欧美日韩第一区日日骚| 欧美又粗又大又爽| 91久久久免费一区二区| 风间由美性色一区二区三区| 麻豆国产欧美日韩综合精品二区| 亚洲va韩国va欧美va| 亚洲一区二区中文在线| 亚洲激情五月婷婷| 夜夜嗨av一区二区三区四季av| 中文在线一区二区| 国产精品国产三级国产专播品爱网| 欧美激情在线一区二区| 国产午夜精品在线观看| 中文字幕国产一区二区| 亚洲欧洲av另类| 一区二区久久久久久| 一区二区三区四区在线| 亚洲国产成人高清精品| 亚洲影视在线播放| 三级欧美韩日大片在线看| 亚洲一级片在线观看| 亚洲成人动漫一区| 男女男精品网站| 国产精品一区二区久久不卡 | 91精品国产黑色紧身裤美女| 欧美日韩国产系列| 欧美videos大乳护士334| 精品剧情在线观看| 国产精品三级视频| 亚洲黄色尤物视频| 性做久久久久久久免费看| 免费的国产精品| 懂色av中文一区二区三区| 91久久久免费一区二区| 7878成人国产在线观看| 久久综合网色—综合色88| 国产午夜一区二区三区| 一区二区视频在线看| 日韩精品视频网站| 国产精品2024| 欧美日韩一区二区三区四区五区| 7777精品伊人久久久大香线蕉超级流畅 | 欧美变态tickle挠乳网站| 国产欧美日韩中文久久| 亚洲精品一二三区| 久久精品国产免费| 波多野结衣亚洲一区| 欧美私人免费视频| 久久蜜桃香蕉精品一区二区三区| 中文字幕一区二区三区四区不卡| 亚洲精品videosex极品| 久久99精品网久久| 色综合一区二区| 日韩视频在线永久播放| 国产精品美女久久久久高潮| 天天操天天综合网| 成人av免费在线观看| 欧美一级电影网站| 亚洲欧美偷拍另类a∨色屁股| 理论片日本一区| 欧美日韩精品二区第二页| 国产三级精品视频| 日韩高清不卡在线| 色94色欧美sute亚洲线路二| 亚洲视频一区二区免费在线观看 | 亚洲狠狠丁香婷婷综合久久久| 极品少妇xxxx精品少妇| 色成人在线视频| 亚洲国产精品成人综合色在线婷婷| 日本人妖一区二区| 91国产成人在线| 国产精品国产三级国产三级人妇 | 精品一二线国产| 欧美色老头old∨ideo| 综合av第一页| 国产精品亚洲第一 | 欧美又粗又大又爽| 国产精品久久久久精k8| 国产精品白丝jk白祙喷水网站| 日韩一区二区三区精品视频| 一区二区三区91| 色噜噜久久综合| 国产精品久久久久久久久久免费看 | 亚洲人快播电影网| 成人综合在线网站| 久久久久国产精品麻豆ai换脸 | 久久成人18免费观看| 日韩一区二区麻豆国产| 亚洲综合色网站| 欧美日韩在线不卡| 亚洲综合一二区| 97久久超碰国产精品| 亚洲国产中文字幕| 欧美亚洲国产怡红院影院| 夜夜嗨av一区二区三区网页| 日本精品视频一区二区三区| 伊人开心综合网| 91蜜桃婷婷狠狠久久综合9色| 国产精品网站在线观看|