chuyiwen_gmsv/mylua/offlinebase.c
chuyiwen bea5ac05b3 sq_gmsv_chuyiwen
sa_sever
2016-12-24 09:45:52 +09:00

90 lines
2.4 KiB
C

#include <string.h>
#include "version.h"
#include "char_base.h"
#include "enemy.h"
#include "object.h"
#include "char.h"
#include "battle.h"
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
#include "mylua/mylua.h"
#ifdef _OFFLINE_SYSTEM
static int Attack(lua_State *L)
{
const int battleindex = luaL_checkint(L, 1);
const int charaindex = luaL_checkint(L, 2);
const int side = 1 - luaL_checkint(L, 3);
BATTLE_ENTRY *pEntry = BattleArray[battleindex].Side[side].Entry;
int iNum[10] = {9,7,5,6,8,4,2,0,1,3};
int i;
for( i = 0; i < 10; i ++ ){
if( pEntry[iNum[i]].charaindex != -1 ){
break;
}
}
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_ATTACK );
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, iNum[i] + side * BATTLE_ENTRY_MAX);
int At_SoubiIndex = CHAR_getItemIndex( charaindex, CHAR_ARM );
if( ITEM_CHECKINDEX( At_SoubiIndex ) == TRUE )
{
if( ITEM_getInt( At_SoubiIndex, ITEM_TYPE ) == ITEM_BOOMERANG ){
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_BOOMERANG );
#ifdef _PETSKILL_BECOMEFOX
if( CHAR_getInt( charaindex, CHAR_BASEIMAGENUMBER)==101749
|| CHAR_getWorkInt( charaindex, CHAR_WORKFOXROUND ) != -1 ){ //若是变成小狐狸不可以使用回力标
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_NONE );
}
#endif
#ifdef _PETSKILL_BECOMEPIG
if( CHAR_getInt( charaindex, CHAR_BECOMEPIG) > -1 ){//变成乌力了
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_ATTACK );
}
#endif
}
}
CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, 1 );
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
return 1;
}
static int Recovery(lua_State *L)
{
const int battleindex = luaL_checkint(L, 1);
const int charaindex = luaL_checkint(L, 2);
const int HP = luaL_checkint(L, 3);
int toNO = BATTLE_Index2No(battleindex, charaindex);
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM1, BATTLE_COM_S_OFFLINE_RECOVERY );
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLECOM2, toNO);
CHAR_SETWORKINT_LOW( charaindex, CHAR_WORKBATTLECOM3, HP );
CHAR_setWorkInt( charaindex, CHAR_WORKBATTLEMODE, BATTLE_CHARMODE_C_OK );
return 1;
}
static const luaL_Reg offlinelib[] = {
{"Attack", Attack},
{"Recovery", Recovery},
{NULL, NULL}
};
LUALIB_API int luaopen_Offline (lua_State *L) {
luaL_register(L, "offline", offlinelib);
return 1;
}
#endif