/*
*
*
* @author ada
* @version 1.0
* @since 1.0
*/
#include <log.h>
#include "../LuaRuntime.hpp"
#include "../Task.hpp"
#include "../../LinkedLibrary.h"
LuaRuntime *runtime = NULL;
int lua_create_task(struct lua_State *L)
{
LuaContext &context = runtime->getContext();
int taskId = context.getIntArgument(1);
const char *taskName = context.getStringArgument(2);
int preTaskId = context.getIntArgument(3);
int postTaskId = context.getIntArgument(4);
const char *awards = context.getStringArgument(5);
info("create task id: %d, name: %s, pre-task-id: %d, post-task-id: %d, awards: %s", taskId, taskName, preTaskId, postTaskId, awards);
Task task;
task.createGlobalTask(taskId, taskName, preTaskId, postTaskId, awards);
return 0;
}
int lua_create_instance(struct lua_State *L)
{
return 0;
}
int lua_create_character(struct lua_State *L)
{
return 0;
}
int lua_create_object(struct lua_State *L)
{
return 0;
}
void init_task()
{
Task task;
task.clearGlobal();
runtime->dexecute("Task.data.lua");
}
int lua_runtime_version()
{
puts(LUA_VERSION);
puts(LUA_COPYRIGHT);
puts(LUA_AUTHORS);
return 0;
}
void init()
{
///*
runtime = LuaRuntime::instance();
lua_runtime_version();
runtime->registerFunction("lua_create_task", lua_create_task);
runtime->registerFunction("lua_create_instance", lua_create_instance);
runtime->registerFunction("lua_create_character", lua_create_character);
runtime->registerFunction("lua_create_object", lua_create_object);
//*/
init_task();
}
int main(int argc, char **args)
{
init();
return 0;
}
=============================================
#if ! defined __TASK
#define __TASK
class Task
{
private:
public:
void clearGlobal();
void createGlobalTask(int taskId, const char *taskName, int preTaskId, int postTaskId, const char *awards);
};
#endif
========================================
/*
*
*
* @author ada
* @version 1.0
* @since 1.0
*/
#include <log.h>
#include <string>
#include "Task.hpp"
#include "../SQLException.hpp"
#include "../Mysql.hpp"
#include "../Connection.hpp"
#include "../Statement.h"
#include "../ResultSet.hpp"
void Task::clearGlobal()
{
Mysql *mysql = new Mysql("localhost", 3306, "liveim_test", "root", "jxcoco1128");
mysql->setEncode("gbk");
Connection *connection = NULL;
try
{
connection = mysql->openConnection();
Statement *stat = connection->createStatement();
stat->execute("delete from global_task");
}
catch (SQLException e)
{
error("Connection error %d: %s", e.getCode(), e.getMessage());
return;
}
info("global task cleared");
}
void Task::createGlobalTask(int taskId, const char *taskName, int preTaskId, int postTaskId, const char *awards)
{
Mysql *mysql = new Mysql("localhost", 3306, "liveim_test", "root", "jxcoco1128");
mysql->setEncode("gbk");
Connection *connection = NULL;
try
{
connection = mysql->openConnection();
Statement *stat = connection->createStatement();
std::string sql;
sql.append("insert into global_task values(");
char c_taskId[8];
itoa(taskId, c_taskId, 10);
sql.append(c_taskId).append(", ");
sql.append("'").append(taskName).append("', ");
memset(c_taskId, 0, sizeof(c_taskId));
itoa(preTaskId, c_taskId, 10);
sql.append(c_taskId).append(", ");
memset(c_taskId, 0, sizeof(c_taskId));
itoa(postTaskId, c_taskId, 10);
sql.append(c_taskId).append(", ");
sql.append("'").append(awards).append("')");
info("sql: %s", sql.c_str());
stat->execute(sql.c_str());
}
catch (SQLException e)
{
error("Connection error %d: %s", e.getCode(), e.getMessage());
return;
}
/*
char *s1 = "insert into global_task values(";
int sz = strlen(s1) + strlen(instance_idx) + 1;
char *sql = (char *) malloc(sz);
memset(sql, 0, sz);
strcat(sql, s1);
strcat(sql, instance_idx);
printf("selecct global barrier: %s\n", sql);
stat->execute(sql);
free(sql);
*/
}
======================================
lua_create_task(1, "欢迎来到游戏世界!先去报个到!", 0, 2, "")
lua_create_task(2, "领取装备", 0, 0, "")
lua_create_task(3, "完成任务2", 0, 0, "")
======================================
DEBUG=../Debug
PATH_VS=D:\usr\bin\Microsoft Visual Studio\VC98
CL="$(PATH_VS)\Bin\cl.exe"
LINK="$(PATH_VS)\Bin\link.exe"
INCLUDE="D:\usr\bin\Microsoft Visual Studio\VC98\Include"
LIB="D:\usr\bin\Microsoft Visual Studio\VC98\Lib"
INCLUDE_LIB_LOG=D:\home\admin\workstation\c\liblog
LIB_LIB_LOG=D:\home\admin\workstation\c\liblog\Debug
INCLUDE_MYSQL=D:\usr\srv\mysql51\include
LIB_MYSQL=D:\usr\srv\mysql51\lib\debug
INCLUDE_LUA=D:\usr\bin\Lua\5.1\include
LIB_LUA=D:\usr\bin\Lua\5.1\lib
make: clean
$(CL) /GX /W3 /I $(INCLUDE) /c /Fo$(DEBUG)/ ../SQLException.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LIB_LOG) /I$(INCLUDE_MYSQL) /c /Fo$(DEBUG)/ ../Mysql.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LIB_LOG) /I$(INCLUDE_MYSQL) /c /Fo$(DEBUG)/ ../Connection.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LIB_LOG) /I$(INCLUDE_MYSQL) /c /Fo$(DEBUG)/ ../MysqlConnection.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LIB_LOG) /I$(INCLUDE_MYSQL) /c /Fo$(DEBUG)/ ../MysqlStatement.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LIB_LOG) /I$(INCLUDE_MYSQL) /c /Fo$(DEBUG)/ ../MysqlResultSet.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LIB_LOG) /I$(INCLUDE_MYSQL) /c /Fo$(DEBUG)/ ../Mysql.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LUA) /I$(INCLUDE_MYSQL) /I$(INCLUDE_LIB_LOG) /c /Fo$(DEBUG)/ ../gs/Task.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LUA) /I$(INCLUDE_LIB_LOG) /c /Fo$(DEBUG)/ ../gs/LuaException.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LUA) /I$(INCLUDE_LIB_LOG) /c /Fo$(DEBUG)/ ../gs/LuaContext.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LUA) /I$(INCLUDE_LIB_LOG) /c /Fo$(DEBUG)/ ../gs/LuaScriptExecutor.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LUA) /I$(INCLUDE_LIB_LOG) /c /Fo$(DEBUG)/ ../gs/LuaRuntime.cpp
$(CL) /GX /W3 /I $(INCLUDE) /I$(INCLUDE_LUA) /I$(INCLUDE_LIB_LOG) /c /Fo$(DEBUG)/ ../gs/data/DataBackendServer.cpp
#lib /nologo log.obj /out:./liblog.lib
$(LINK) /LIBPATH:$(LIB) /LIBPATH:$(LIB_LIB_LOG) /LIBPATH:$(LIB_MYSQL) /LIBPATH:$(LIB_LUA) /OUT:$(DEBUG)/LuaRuntimeTest.exe $(DEBUG)/*.obj
#$(LINK) /DLL /LIBPATH:$(LIB) /OUT:$(DEBUG)/liblog.dll *.obj
#$(LINK) /DLL /LIBPATH:$(LIB) /OUT:$(DEBUG)/liblog.dll $(DEBUG)/*.obj
# $(LINK) *.obj /LIBPATH:"D:\usr\bin\Microsoft Visual Studio\VC98\Lib"
cp ../liblog.dll $(DEBUG)/
cp ./test.lua $(DEBUG)/
cp ../gs/Task.data.lua .
clean:
rm -Rf ./*.bak
rm -Rf ./*.o
rm -Rf ./*.obj
rm -Rf ./*.exe
rm -Rf ../Debug/*