Olha ele diz que não esta reconhecendo esta função doguildaddenemy, confira nas libs se existe esta função ou se ela esta declarada mais acima..
de onde você pegou este sistema war? posso ajudar mais se souber qual é o war system que utilizou.
info
Grupo: Campones
Registrado: 12/12/07
Posts: 11
Reputação: +1
Char no Tibia: Rejo shall

Olha ele diz que não esta reconhecendo esta função doguildaddenemy, confira nas libs se existe esta função ou se ela esta declarada mais acima..
de onde você pegou este sistema war? posso ajudar mais se souber qual é o war system que utilizou.
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

Você não importou a query, por isso o erro!
Editado Novembro 29 por PiabetaMan01
info
Grupo: Campones
Registrado: 08/07/10
Posts: 78
Reputação: +2
Char no Tibia: Lady Bewulf

Eu ja resolvi o problema, tava tudo certo, só que não tinha o doguildaddenemy nas libs, ai um amigo me passou a versão mais atualizada do otland, ele é premium, ai fuincionou normal...
E eu ja tinha importado as querys
info
Grupo: Herói
Registrado: 23/12/08
Posts: 2.4k
Reputação: +359
Gênero: Masculino
Char no Tibia: Gordo Warlike

Duvida sanada, reportando para que movam!
info
Grupo: Conde
Registrado: 12/11/08
Posts: 520
Reputação: +73
Gênero: Masculino

Duvida sanada.
Movido
info
Grupo: Herói
Registrado: 28/11/10
Posts: 3.4k
Reputação: +585
Gênero: Masculino

info
Grupo: Campones
Registrado: 08/07/10
Posts: 78
Reputação: +2
Char no Tibia: Lady Bewulf
Galer,a eu compilei um TFS 0.4 rev 3777 para linux
coloquei la no arquivo configure.ac o -D__WAR__SYSTEM__
AC_PREREQ([2.50]) AC_INIT([TheForgottenServer], [0.4]) AM_INIT_AUTOMAKE([1.10 foreign]) AC_CONFIG_SRCDIR([account.h]) AM_CONFIG_HEADER([config.h]) AC_PROG_CXX AC_LANG(C++) # add own flags in here OPTIONAL_FLAGS="-D__WAR__SYSTEM__" # check if we want server diag enabled serverDiag=no AC_ARG_ENABLE(server-diag, [ --enable-server-diag enable server diagnostic], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__ENABLE_SERVER_DIAGNOSTIC__"] serverDiag=yes ) # check if we want login server mode AM_CONDITIONAL(LOGIN_SERVER, false) loginServer=no AC_ARG_ENABLE(login-server, [ --enable-login-server enable login server mode], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__LOGIN_SERVER__"] AM_CONDITIONAL(LOGIN_SERVER, true) loginServer=yes ) # check if we want OTAdmin protocol AM_CONDITIONAL(OT_ADMIN, false) otAdmin=no AC_ARG_ENABLE(ot-admin, [ --enable-ot-admin enable OTAdmin protocol], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__OTADMIN__"] AM_CONDITIONAL(OT_ADMIN, true) otAdmin=yes ) # check if we want otserv allocator enabled otservAllocator=no AC_ARG_ENABLE(otserv-allocator, [ --enable-otserv-allocator enable otserv custom allocator], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__OTSERV_ALLOCATOR__"] otservAllocator=yes ) # check if we want homedir conf enabled homedirConf=no AC_ARG_ENABLE(homedir-conf, [ --enable-homedir-conf enable home directory configuration], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__HOMEDIR_CONF__"] homedirConf=yes ) # check do we want to allow running on root user rootPermission=no AC_ARG_ENABLE(root-permission, [ --enable-root-permission enable running on root user], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__ROOT_PERMISSION__"] rootPermission=yes ) # check do we want to be a login server for multiworld loginServer=no AC_ARG_ENABLE(login-server, [ --enable-login-server enable running in a login server mode], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__LOGIN_SERVER__"] loginServer=yes ) # check if we want to use luajit instead of lua luaJIT=no AC_ARG_ENABLE(luajit, [ --enable-luajit enable luajit instead of lua], [OPTIONAL_FLAGS="$OPTIONAL_FLAGS -D__LUAJIT__"] luaJIT=yes ) AC_SUBST(OPTIONAL_FLAGS) # check if we want a debug build debugBuild=no AC_ARG_ENABLE(debug, [ --enable-debug enable debuging], [DEBUG_FLAGS="-D__DEBUG__ -D__DEBUG_MOVESYS__ -D__DEBUG_CHAT__ -D__DEBUG_EXCEPTION_REPORT__ -D__DEBUG_HOUSES__ -D__DEBUG_LUASCRIPTS__ -D__DEBUG_MAILBOX__ -D__DEBUG_NET__ -D__DEBUG_NET_DETAIL__ -D__DEBUG_RAID__ -D__DEBUG_SCHEDULER__ -D__DEBUG_SPAWN__ -D__SQL_QUERY_DEBUG__ -O0 -g3"] debugBuild=yes ) if test "$debugBuild" = "no" ; then DEBUG_FLAGS="-O2 -fomit-frame-pointer" # disable all kinds of debugging fi AC_SUBST(DEBUG_FLAGS) AM_CONDITIONAL(USE_MYSQL, false) useMySQL=no AM_CONDITIONAL(USE_PGSQL, false) usePostgreSQL=no AM_CONDITIONAL(USE_SQLITE, false) useSQLite=no # check if we want mysql enabled AC_ARG_ENABLE(mysql, [ --enable-mysql enable MySQL support], [ AM_CONDITIONAL(USE_MYSQL, true) MYSQL_FLAGS=-D__USE_MYSQL__ AC_SUBST(MYSQL_FLAGS) useMySQL=yes ]) # check if we want postgresql enabled AC_ARG_ENABLE(pgsql, [ --enable-pgsql enable PostgreSQL support], [ AM_CONDITIONAL(USE_PGSQL, true) PGSQL_FLAGS="-D__USE_PGSQL__ -I`pg_config --includedir`" AC_SUBST(PGSQL_FLAGS) usePostgreSQL=yes ]) # check if we want sqlite enabled AC_ARG_ENABLE(sqlite, [ --enable-sqlite enable SQLite support], [ AM_CONDITIONAL(USE_SQLITE, true) SQLITE_FLAGS=-D__USE_SQLITE__ AC_SUBST(SQLITE_FLAGS) useSQLite=yes ]) # check if we want the profiler AC_ARG_ENABLE(profiler, [ --enable-profiler enable profiler support], [PROFILER_FLAGS=-pg]) AC_SUBST(PROFILER_FLAGS) # Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h sys/socket.h sys/timeb.h]) # Checks for typedefs, structures, and compiler characteristics. AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT64_T AC_TYPE_SIZE_T AC_STRUCT_TM AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_TYPE_UINT64_T AC_TYPE_UINT8_T AC_CHECK_TYPES([ptrdiff_t]) # Checks for library functions. AC_FUNC_MALLOC AC_FUNC_MEMCMP AC_FUNC_REALLOC AC_CHECK_FUNCS([ceil floor ftime gethostbyname gethostname memset pow sqrt strcasecmp strncasecmp strstr strtol]) # check for xml2 AM_PATH_XML2(2.6.5, , AC_MSG_ERROR([You need libxml2 >= 2.6.5 to compile theforgottenserver!])) LIBS="$LIBS $XML_LIBS" # check for gmp AC_CHECK_HEADERS([gmp.h], ,[AC_MSG_ERROR("gmp header not found.")]) AC_CHECK_LIB(gmp, __gmpz_init2, ,[AC_MSG_ERROR("Linking against gmp library failed.")]) # check for zlib AC_CHECK_HEADERS([zlib.h], ,[AC_MSG_ERROR("zlib header not found.")]) AC_CHECK_LIB(z, main, ,[AC_MSG_ERROR("Linking against zlib library failed.")]) # check for boost AC_CHECK_LIB(boost_thread-gcc-mt, main, , [ AC_CHECK_LIB(boost_thread-mt, main, , [ AC_CHECK_LIB(boost_thread, main, , [ AC_MSG_ERROR("Linking against boost::thread library failed.") ]) ]) ]) AC_CHECK_LIB(boost_regex-gcc-mt, main, , [ AC_CHECK_LIB(boost_regex-mt, main, , [ AC_CHECK_LIB(boost_regex, main, , [ AC_MSG_ERROR("Linking against boost::regex library failed.") ]) ]) ]) AC_CHECK_LIB(boost_system-gcc-mt, main, , [ AC_CHECK_LIB(boost_system-mt, main, , [ AC_CHECK_LIB(boost_system, main, , [ AC_MSG_ERROR("Linking against boost::system library failed.") ]) ]) ]) AC_CHECK_LIB(boost_date_time-gcc-mt, main, , [ AC_CHECK_LIB(boost_date_time-mt, main, , [ AC_CHECK_LIB(boost_date_time, main, , [ AC_MSG_ERROR("Linking against boost::date-time library failed.") ]) ]) ]) AC_CHECK_LIB(boost_filesystem-gcc-mt, main, , [ AC_CHECK_LIB(boost_filesystem-mt, main, , [ AC_CHECK_LIB(boost_filesystem, main, , [ AC_MSG_ERROR("Linking against boost::filesystem library failed.") ]) ]) ]) # check for boost::asio AC_CHECK_HEADERS([boost/asio.hpp], , [AC_MSG_ERROR("boost::asio header not found.")]) # check for boost::unordered_set AC_CHECK_HEADERS([boost/tr1/unordered_set.hpp], , [AC_MSG_ERROR("boost::unordered_set header not found.")]) # check for Crypto++ AC_CHECK_HEADERS([cryptopp/sha.h cryptopp/md5.h cryptopp/adler32.h cryptopp/hex.h cryptopp/base64.h cryptopp/hmac.h cryptopp/cryptlib.h], , [AC_MSG_ERROR("Required Crypto++ headers not found.")]) AC_CHECK_LIB(cryptopp, main, , [AC_MSG_ERROR("Linking against Crypto++ library failed")]) # check for Lua PKG_CHECK_MODULES(LUA, lua5.1 >= 5.1, , [ AC_CHECK_HEADERS([lua.hpp], , [AC_MSG_ERROR("Lua header not found.")]) AC_CHECK_LIB(lua, main, , [AC_MSG_ERROR("Linking against Lua library failed.")]) ]) AC_SUBST(LUA_CFLAGS) AC_SUBST(LUA_LIBS) # check for mysql if it is enabled if test -n "$MYSQL_FLAGS"; then AC_CHECK_HEADERS([mysql/mysql.h],[MYSQL_LIBS=-lmysqlclient],[AC_MSG_ERROR("MySQL headers missing.")]) AC_CHECK_LIB(mysqlclient, main,[],[AC_MSG_ERROR("Linking against mysql-client failed.")]) AC_SUBST(MYSQL_LIBS) fi # check for postgresql if it is enabled if test -n "$PGSQL_FLAGS"; then AC_CHECK_HEADERS([`pg_config --includedir`/libpq-fe.h],[PGSQL_LIBS=-lpg],[AC_MSG_ERROR("PostgreSQL headers missing.")]) AC_CHECK_LIB(pq, main,[],[AC_MSG_ERROR("Linking against libpq failed.")]) AC_SUBST(PGSQL_LIBS) fi # check for sqlite if it is enabled if test -n "$SQLITE_FLAGS"; then AC_CHECK_HEADERS([sqlite3.h],[sqlITE_LIBS=-lsqlite3],[AC_MSG_ERROR("SQLite3 headers missing.")]) AC_CHECK_LIB(sqlite3, main,[],[AC_MSG_ERROR("Linking against sqlite3 failed.")]) AC_SUBST(SQLITE_LIBS) fi if test "$useMySQL" = "no" ; then if test "$useSQLite" = "no" ; then if test "$usePostgreSQL" = "no" ; then echo Error: no database driver was enabled! To enable a database driver, configure with --enable-\<dbdriver\> \(example: --enable-mysql\). echo exit 1 return 1 fi fi fi AC_CONFIG_FILES([Makefile]) AC_OUTPUT echo #echo The Forgotten Server 0.4 echo $PACKAGE $VERSION echo echo Server diagnostics.......... : $serverDiag echo Login server mode........... : $loginServer echo OTAdmin protocol............ : $otAdmin echo Root run permission......... : $rootPermission echo Login server mode........... : $loginServer echo Home-directory configuration : $homedirConf echo OTServ custom allocator..... : $otservAllocator echo Debug build................. : $debugBuild echo Using LuaJIT................ : $luaJIT echo echo Build with MySQL............ : $useMySQL echo Build with SQLite........... : $useSQLite echo Build with PostgreSQL....... : $usePostgreSQL echo echo Configure complete, now you may type \'./build.sh\'.Eu consigo invitar uma guild para war, porém não consigo aceitar (/war accept, GUILDNAME) estou escrevendo no guildchat, aparece esse erro no console:
Caso precisem do arquivo war.lua:
function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.executeQuery("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.executeQuery("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.executeQuery("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.executeQuery(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true endVale Rep+
#up