Ir para conteúdo
  • Cadastre-se

(resolvido) War System Para Ot 9.10.


Posts Recomendados

Ola preciso do guild war system com escudos para ot 9.10 se alguem poder me ajudar dou rep+.

Obrigado desde ja.

Link para o post
Compartilhar em outros sites

1°Voce tem que usar Gesior

2°Tem que ser TFS 0.4.0 DEV (http://www.2shared.com/file/yPT8wHCv/Tfs_04.html)

3°Se der erro,items.xml e items.otb,baixe : (http://www.2shared.com/file/d_byAAtM/items_codec_tfs_04.html)

SITE:

Vá em Xampp/Htdocs e crie e um arquivo chamado wars.php,dentro add isto:

<?php

$main_content = "<h1 align=\"center\">Guild Wars</h1>

<script type=\"text/javascript\"><!--

function show_hide(flip)

{

var tmp = document.getElementById(flip);

if(tmp)

tmp.style.display = tmp.style.display == 'none' ? '' : 'none';

}

--></script>

<a onclick=\"show_hide('information'); return false;\" style=\"cursor: pointer;\"><h1><center>&raquo; Click to se the commands &laquo;<center></h1></a>

<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\" id=\"information\" style=\"display: none;\";>

<tr align=\"center\"><b>You must send this commands in GUILD CHAT.</tr>

<tr style=\"background: #512e0b;\"><td align=\"center\" class=\"white\"><b>Command</b></td><td colspan=\"2\" align=\"center\" class=\"white\"><b>Description</b></td></tr>

<tr style=\"background: #F1E0C6;\"><td><b>/war invite, guild name, fraglimit</b></td><td>Sends an invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150<BR></font><B>(Invite a guild to war with 150 frags count.)</B></td></tr>

<tr style=\"background: #D4C0A1;\"><td><b>/war invite, guild name, fraglimit, money</b></td><td>Send the invitation to start the war. Example: <font color=red><BR>/war invite, Chickens, 150, 10000</font><br><B> (Invite a guild to war with 150 frags count and payment of 10000 gold coins <- you need donate to guild to use it.)<B></td></tr>

<tr style=\"background: #F1E0C6;\"><td><b>/war accept, guild name</b></td><td>Accepts the invitation to start a war. Example: <font color=red><BR>/war accept, Chickens</font><BR><B>(Accept the war against guild \"Chickens\".)</b></td></tr>

<tr style=\"background: #D4C0A1;\"><td><b>/war reject, guild name</b></td><td>Rejects the invitation to start a war. Example: <font color=red><BR>/war reject, Chickens</font><BR><B>(Reject a invitation to war from Chickens.)</B></td></tr>

<tr style=\"background: #F1E0C6;\"><td><b>/war cancel, guild name</b></td><td>Cancels the invitation. Example: <font color=red><BR>/war cancel, Chickens</font><br><b>(Cancel my guild invitation to war with Chickens.)</b></td></tr>

<tr style=\"background: #D4C0A1;\"><td><b>/balance</b></td><td>See the guild balance - balance of money.</td></tr>

<tr style=\"background: #F1E0C6;\"><td><b>/balance donate value</b></td><td>Deposits money on the guild's bank account. All players can donate. Example: <font color=red><BR>/balance donate 100000 </font><BR><B>(You will donate 100k to your guild balance.)</B></td></tr>

<tr style=\"background: #D4C0A1;\"><td><b>/balance pick value</b></td><td>Withdraws money from the guild's bank account. Can be used only by the guild leader. Example: <font color=red><BR>/balance pick 100000 </font><BR><B>(You will withdraw 100k from your guild balance.)</B></td></tr>

</table>

<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\">

<tr>

<td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Aggressor</b></td>

<td style=\"background: #512e0b\" class=\"white\"><b>Information</b></td>

<td style=\"background: #512e0b\" class=\"white\" width=\"150\"><b>Enemy</b></td>

</tr><tr style=\"background: #F1E0C6;\">";

$count = 0;

foreach($SQL->query('SELECT * FROM `guild_wars` WHERE `status` IN (1,4) OR ((`end` >= (UNIX_TIMESTAMP() - 604800) OR `end` = 0) AND `status` IN (0,5));') as $war)

{

$a = $ots->createObject('Guild');

$a->load($war['guild_id']);

if(!$a->isLoaded())

continue;

$e = $ots->createObject('Guild');

$e->load($war['enemy_id']);

if(!$e->isLoaded())

continue;

$alogo = $a->getCustomField('logo_gfx_name');

if(empty($alogo) || !file_exists('guilds/' . $alogo))

$alogo = 'default_logo.gif';

$elogo = $e->getCustomField('logo_gfx_name');

if(empty($elogo) || !file_exists('guilds/' . $elogo))

$elogo = 'default_logo.gif';

$count++;

$main_content .= "<tr style=\"background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\">

<td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$a->getId()."\"><img src=\"guilds/".$alogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$a->getName()."</a></td>

<td align=\"center\">";

switch($war['status'])

{

case 0:

{

$main_content .= "<b>Pending acceptation</b><br />Invited on " . date("M d Y, H:i:s", $war['begin']) . " for " . ($war['end'] > 0 ? (($war['end'] - $war['begin']) / 86400) : "unspecified") . " days. The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment.")."<br />Will expire in three days.";

break;

}

case 3:

{

$main_content .= "<s>Canceled invitation</s><br />Sent invite on " . date("M d Y, H:i:s", $war['begin']) . ", canceled on " . date("M d Y, H:i:s", $war['end']) . ".";

break;

}

case 2:

{

$main_content .= "Rejected invitation<br />Invited on " . date("M d Y, H:i:s", $war['begin']) . ", rejected on " . date("M d Y, H:i:s", $war['end']) . ".";

break;

}

case 1:

{

$main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred; font-weight: bold;\">On a brutal war</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ($war['end'] > 0 ? ", will end up at " . date("M d Y, H:i:s", $war['end']) : "") . ".<br />The frag limit is set to " . $war['frags'] . " frags, " . ($war['payment'] > 0 ? "with payment of " . $war['payment'] . " bronze coins." : "without any payment.");

break;

}

case 4:

{

$main_content .= "<font size=\"6\"><span style=\"color: red;\">" . $war['guild_kills'] . "</span> : <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></font><br /><br /><span style=\"color: darkred;\">Pending end</span><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", signed armstice on " . date("M d Y, H:i:s", $war['end']) . ".<br />Will expire after reaching " . $war['frags'] . " frags. ".($war['payment'] > 0 ? "The payment is set to " . $war['payment'] . " bronze coins." : "There's no payment set.");

break;

}

case 5:

{

$main_content .= "<i>Ended</i><br />Began on " . date("M d Y, H:i:s", $war['begin']) . ", ended on " . date("M d Y, H:i:s", $war['end']) . ". Frag statistics: <span style=\"color: red;\">" . $war['guild_kills'] . "</span> to <span style=\"color: lime;\">" . $war['enemy_kills'] . "</span>.";

break;

}

default:

{

$main_content .= "Unknown, please contact with gamemaster.";

break;

}

}

$main_content .= "<br /><br /><a onclick=\"show_hide('war-details:" . $war['id'] . "'); return false;\" style=\"cursor: pointer;\">&raquo; Details &laquo;</a></td>

<td align=\"center\"><a href=\"?subtopic=guilds&action=show&guild=".$e->getId()."\"><img src=\"guilds/".$elogo."\" width=\"64\" height=\"64\" border=\"0\"/><br />".$e->getName()."</a></td>

</tr>

<tr id=\"war-details:" . $war['id'] . "\" style=\"display: none; background: " . (is_int($count / 2) ? $config['site']['darkborder'] : $config['site']['lightborder']) . ";\">

<td colspan=\"3\">";

if(in_array($war['status'], array(1,4,5)))

{

$deaths = $SQL->query('SELECT `pd`.`id`, `pd`.`date`, `gk`.`guild_id` AS `enemy`, `p`.`name`, `pd`.`level`

FROM `guild_kills` gk

LEFT JOIN `player_deaths` pd ON `gk`.`death_id` = `pd`.`id`

LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id`

WHERE `gk`.`war_id` = ' . $war['id'] . ' AND `p`.`deleted` = 0

ORDER BY `pd`.`date` DESC')->fetchAll();

if(!empty($deaths))

{

foreach($deaths as $death)

{

$killers = $SQL->query('SELECT `p`.`name` AS `player_name`, `p`.`deleted` AS `player_exists`, `k`.`war` AS `is_war`

FROM `killers` k

LEFT JOIN `player_killers` pk ON `k`.`id` = `pk`.`kill_id`

LEFT JOIN `players` p ON `p`.`id` = `pk`.`player_id`

WHERE `k`.`death_id` = ' . $death['id'] . '

ORDER BY `k`.`final_hit` DESC, `k`.`id` ASC')->fetchAll();

$count = count($killers); $i = 0;

$others = false;

$main_content .= date("j M Y, H:i", $death['date']) . " <span style=\"font-weight: bold; color: " . ($death['enemy'] == $war['guild_id'] ? "red" : "lime") . ";\">+</span>

<a href=\"index.php?subtopic=characters&name=" . urlencode($death['name']) . "\"><b>".$death['name']."</b></a> ";

foreach($killers as $killer)

{

$i++;

if($killer['is_war'] != 0)

{

if($i == 1)

$main_content .= "killed at level <b>".$death['level']."</b> by ";

else if($i == $count && $others == false)

$main_content .= " and by ";

else

$main_content .= ", ";

if($killer['player_exists'] == 0)

$main_content .= "<a href=\"index.php?subtopic=characters&name=".urlencode($killer['player_name'])."\">";

$main_content .= $killer['player_name'];

if($killer['player_exists'] == 0)

$main_content .= "</a>";

}

else

$others = true;

if($i == $count)

{

if($others == true)

$main_content .= " and few others";

$main_content .= ".<br />";

}

}

}

}

else

$main_content .= "<center>There were no frags on this war so far.</center>";

}

else

$main_content .= "<center>This war did not began yet.</center>";

$main_content .= "</td>

</tr>";

}

if($count == 0)

$main_content .= "<tr style=\"background: ".$config['site']['darkborder'].";\">

<td colspan=\"3\">Currently there are no active wars.</td>

</tr>";

$main_content .= "</table>";

$main_content .= '<div align="right"><small><b>Customized by: <a href="http://www.tibiaking.com/forum/user/240289-walef-xavier">Walef Xavier</a></b></small></div><br />';

?>

Agora vá em Xampp/Htdocs/index.php e add o seguinte:

case "wars";

$subtopic = "wars";

$topic = "Guild Wars";

include("wars.php");

break;

Agora para finalizar a parte do site vá em Xampp/Htdocs/Layout/Tibiacom/layout.php e add o seguinte:

<a href='?subtopic=wars'>

<div id='submenu_wars' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'>

<div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>

<div id='ActiveSubmenuItemIcon_polls' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div>

<div class='SubmenuitemLabel'><font color=red>Guild Wars</font></div>

<div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>

</div>

</a>

Agora vamos para seu Ot:

Va em GlobalEvents/scripts/start.lua e add o seguinte:

db.executeQuery("DELETE FROM `guild_wars` WHERE `status` = 0 AND `begin` < " .. (os.time() - 2 * 86400) .. ";")

db.executeQuery("UPDATE `guild_wars` SET `status` = 5, `end` = " .. os.time() .. " WHERE `status` = 1 AND `end` > 0 AND `end` < " .. os.time() .. ";")

Agora vá em Lib e crie um arquivo .lua chamado 101-war,dentro add o seguinte:

WAR_GUILD = 0

WAR_ENEMY = 1

Agora para finalizar vamos colocar os comandos em Talkactions !

Vá em Talkactions/scripts e crie dois arquivos chamados war.lua e balance.lua,dentro add o seguinte:

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.query("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.query(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.query("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.query("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.query(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.query(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

end

balance.lua

local function isValidMoney(value)

if(value == nil) then

return false

end

return (value > 0 and value <= 99999999999999)

end

function onSay(cid, words, param, channel)

local guild = getPlayerGuildId(cid)

if(guild == 0) then

return false

end

local t = string.explode(param, ' ', 1)

if(getPlayerGuildLevel(cid) == GUILDLEVEL_LEADER and isInArray({ 'pick' }, t[1])) then

if(t[1] == 'pick') then

local money = { tonumber(t[2]) }

if(not isValidMoney(money[1])) then

doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0)

return true

end

local result = db.getResult('SELECT `balance` FROM `guilds` WHERE `id` = ' .. guild)

if(result:getID() == -1) then

return false

end

money[2] = result:getDataLong('balance')

result:free()

if(money[1] > money[2]) then

doPlayerSendChannelMessage(cid, '', 'The balance is too low for such amount.', TALKTYPE_CHANNEL_W, 0)

return true

end

if(not db.query('UPDATE `guilds` SET `balance` = `balance` - ' .. money[1] .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')) then

return false

end

doPlayerAddMoney(cid, money[1])

doPlayerSendChannelMessage(cid, '', 'You have just picked ' .. money[1] .. ' money from your guild balance.', TALKTYPE_CHANNEL_W, 0)

else

doPlayerSendChannelMessage(cid, '', 'Invalid sub-command.', TALKTYPE_CHANNEL_W, 0)

end

elseif(t[1] == 'donate') then

local money = tonumber(t[2])

if(not isValidMoney(money)) then

doPlayerSendChannelMessage(cid, '', 'Invalid amount of money specified.', TALKTYPE_CHANNEL_W, 0)

return true

end

if(getPlayerMoney(cid) < money) then

doPlayerSendChannelMessage(cid, '', 'You don\'t have enough money.', TALKTYPE_CHANNEL_W, 0)

return true

end

if(not doPlayerRemoveMoney(cid, money)) then

return false

end

db.query('UPDATE `guilds` SET `balance` = `balance` + ' .. money .. ' WHERE `id` = ' .. guild .. ' LIMIT 1;')

doPlayerSendChannelMessage(cid, '', 'You have transfered ' .. money .. ' money to your guild balance.', TALKTYPE_CHANNEL_W, 0)

else

local result = db.getResult('SELECT `name`, `balance` FROM `guilds` WHERE `id` = ' .. guild)

if(result:getID() == -1) then

return false

end

doPlayerSendChannelMessage(cid, '', 'Current balance of guild ' .. result:getDataString('name') .. ' is: ' .. result:getDataLong('balance') .. ' bronze coins.', TALKTYPE_CHANNEL_W, 0)

result:free()

end

return true

end

Agora vá em Talkactions/talkactions.xml e add as duas tags:

<talkaction words="/war" channel="0" event="script" value="war.lua" desc="(Guild channel command) War management."/>

<talkaction words="/balance" channel="0" event="script" value="balance.lua" desc="(Guild channel command) Balance management."/>

Pronto,seu Guild War Systema está instalado...mas para funcionar necessitará das tabelas na sua database e do Tfs 0.4 .Vou posta-los abaixo,respectivamente.

.:: Tabelas ::.

Para quem ainda não sabe add tabelas a sua database,vou ensinar:

Acesse seu phpmyadmin,digite sua senha (caso tenha),clique no nome da sua database a esquerda,assim que carregar a sua database clique em SQL lá em cima...Aparecerá um espaço em branco lá voce irá add as seguintes tabelas...e depois clicar em Executar.

CREATE TABLE IF NOT EXISTS `guild_wars` (

`id` INT NOT NULL AUTO_INCREMENT,

`guild_id` INT NOT NULL,

`enemy_id` INT NOT NULL,

`begin` BIGINT NOT NULL DEFAULT '0',

`end` BIGINT NOT NULL DEFAULT '0',

`frags` INT UNSIGNED NOT NULL DEFAULT '0',

`payment` BIGINT UNSIGNED NOT NULL DEFAULT '0',

`guild_kills` INT UNSIGNED NOT NULL DEFAULT '0',

`enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0',

`status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',

PRIMARY KEY (`id`),

KEY `status` (`status`),

KEY `guild_id` (`guild_id`),

KEY `enemy_id` (`enemy_id`)

) ENGINE=InnoDB;

ALTER TABLE `guild_wars`

ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE,

ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;

ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`;

CREATE TABLE IF NOT EXISTS `guild_kills` (

`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

`guild_id` INT NOT NULL,

`war_id` INT NOT NULL,

`death_id` INT NOT NULL

) ENGINE = InnoDB;

ALTER TABLE `guild_kills`

ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE,

ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE,

ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;

ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0;

CRÉDITOS : WALEF XAVIER,DE OUTRO FORUM,NADA POSTADO AQUI FOI EU QUE FIZ.

Se o mundo é mesmo parecido com o que vejo,

Prefiro acreditar no mundo do meu jeito.

( - Renato Russo)

Link para o post
Compartilhar em outros sites

valeu pego sertin reputado

edit

meu primo tem um crystal server nao tem jeito de fazer pegar no dele ?

Editado por omashu (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

I got a problem with tfs 0.4 when i accept guild war:

data/talkactions/scripts/war.lua:onsay

description:

data/talkactions/scripts/war.lua:70 attempt to call global 'DoGuildAddEnemy' <a nil value>

data/talkactions/scripts/war.lua:70: in function <data/talkactions/scripts/war.lua:1

Please help,

Thanks!

Link para o post
Compartilhar em outros sites
  • 5 months later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por flyblade
      Fatal error: Call to a member function createObject() on null in C:\xampp\htdocs\pages\wars.php on line 20
       
      alguém sabe como resolvo esse problema ? 
      obg.
    • Por Luizbaiak
      Confira Novo Servidor Baiak
      Devilbaiak.ml
       
      Olá Galerinha Tibiana!
      Durante 3 anos o baiak ainda está se atualizando cada vez mais e agora eu venho trazer a nova versao 10.10 não esta 100% mais garanto que vao gostar,entao vamos ver oque há de novo nele ?
       
      Essa Nova Versão eu conseguir criar em apenas 2 dias e meio e nao deu tempo de testar mais se houver bugs comentem por favor.
       
      Versão x10.1-  1.0 Oque há de novo ?
       
      • Todas as mountarias da versao 10.10
      • Todos os outfits 10.10
      • Todos os items 10.10
      • Monsters ainda em andamento.
      • Templo com cara de 10.10
      • City Vip com novo visual 10.10
      • War System 100%
      - Comandos :/war invite,nomedaguildrival  outra guild ativar a war /accept war,guildrival cancelar war . /war cancel,guildrival
      • Cast System 100%
      - Comandos:!cast list para ver casts abertos,!cast nomedoplayer para entrar, !cast exit para sair do cast que voce está !cast on para voce abrir um cast e !cast off para sair
      • Novo Npc no templo que vende items 10.10
      • Novo npc que vende items vip
      • Bug das houses retirados
      • Bug da Sql retirado
      • Novos Comandos
      /rank
      !mount nomedamount
      !addon nomedoaddon
      !changesex
      !buyhouse,!leavehouse,alana res,!sellhouse funcionando 100%
      e muito mais que nao veio na cabeça mais quando eu lembrar posto.
      O Servidor está em SQL pronto para por online e os erros do distro nao encomodam o server.
       
      • Baiak Yurots V5.2 Oque Mudou ?
       
      •Tirei bug das houses
      •Tirei todos os erro do distro
      •Arrumei o lado >> da city vip agora mais rox.
       
      • Baiak Yurots V5.1 Oque Mudou ?
       
      • Mudei a Quest do templo lv 150 ganha 2kk agora ganha só 500k
      • Melhorei os teleports master lv 300+ agora tem 4 novas quest e 2 hunt +
      • Mudei respaw de todas as hunts free , vip e master agora ta 5x melhor.
      • Mudei Tempo da loteria tava 15 em 15 minutos agora ta de 1 em 1 hora.
      • Melhorei a Exori gran do kina.
      • Mudei os loot do monster bosses agora igual da versao 10.30 do global
      • Adicionei quest do addon doll na area d lvel 300+
      • Adicionei Quest do 2kk na area d Lvl 300+
      • Adicionei Quest do necromancer shield na area de Lv 300+
      • Adicionei Quest do Dwarven Set e hornede helmet na area de level 300+
      • Adicionei o novo monster Master Medusa Lv 300+
      • Adicionei 2 novas hunt de Master Medusa.
      Se eu lembrar mas alguma coisa eu posto. :S
       
      • Baiak Yurots V5.0 Oque Mudou ?
       
      • Agora a City Está Maior Mais Bonita e Com Mais Houses.
      • Novo Sistema de Treiner não prescisa andar muito para axar um livre.
      • Novos monstros vip ( Sea Serpent Vip , Hellhound vip , night mare vip , fury vip ) novos monstros master ( hydra master , frost master , grim master e demon master).
      • Nova Quest Master Com Armas Para todas as vocaçao.
      • Agora o NPC VIP Vende e compra items vip, pois se voce pegar item vip de algum red algo assim voce pode vender mais so que o npc compra 60% mais barato ☺
      • Novo Npc que vender Red Remover.
      • Novo Templo.
      • Novas Quests.
      • Novo Depot.
      • Novos Commandos ( !food Compra 100 , !topfrags Ver quem é o top frag , !glist  ver as guild do server e !glist Nameguild para ver os player da guild.
      • Teleports Free e vip Agora com nova cara.
      • Novo Caminho Para Poi no mesmo lugar so que mais bonito.
      • Addon agora é com addon doll npc Varkhal Vende.
      • Systema de Loteria a cada 2 Horas.
      • Nova arena de team god que organiza.
      E muito Mais ..
       
      Novos Items.

       
      Master vip Quest

       
      Teleports Master

      Templo vip

      Templo city

       
      Teleports Master

      Teleport Free

       
      O Server Está FULL EM SQL Só Baixar e Por Online Abaixo !
       
      DOWNLOAD
      4shared
       
      SCAN
      VirusTotal
       
      Testado 32bits windows 7.
       
      ACC DO GOD
      god/god
       
      Creditos
      10% GOD Bon |  Por editar em 2008 90% Baiak Lula = Luizbaiak | Por editar2010 a 2014  
      Obrigado bom jogo!              GOSTOU? DE REP+.
    • Por Dieguiin XP
      Fala galera, hoje venho trazer um mapa editado por mim umpouco parecido com o "BaiakWars" vamos lá   oque contem nesse baiak? -Novo Templo -Castle 24HRS (Unico) com aviso de invasores -Paladin arrumado, agóra pode healar com potion e atacar ao mesmo tempo -Utito Tempo San Arrumado Agóra não da mais Exausted em outras magias -Dodge System -Critical System -Itens Donates para vender no Site ou no Jogo -Itens VIP a mostra no templo -Todos itens DONATES dando as skills normalmente -Vários Teleports  -Novas Hunts -Look Frags -Potions Editadas -War System -Muitas quests -City editada para um PvP muito melhor  -Arena PVP -Fast Attack ROX Para melhor PvP -Quest de set free para Pally/Kinas -Quest de set free para Mages -quest para armas editadas -Treiners com novos visual -30% a mais de experiencia para players donates -10% a mais de experiencia para guild que domina o Castle 24HRS E muito mais!   Comandos principais: !dodoge !critical !stamina !aol !bless !notice.   Vamos as imagens:   templo http://imgur.com/eY4hWyI   teleports http://imgur.com/Xd8YUg8   Quests http://imgur.com/o9beGwi   castle http://imgur.com/CfAiSBI   hunts do castle http://imgur.com/4ix1RD7   area donate http://imgur.com/NGWOA7H   Acc do GOD: 5/god       Download :http://www.4shared.com/rar/hlajskCyce/DiegoWars.html Scan: https://www.virustotal.com/pt/file/7585ec4867213d5f9230eb1f554a4f320756c37db53406f2b9b80e1d75037cbf/analysis/1413409264/   Créditos Dieguiin XP Marcos Vinicius     OBS: Decupem se o tópico ficou meio bagunçado       Gostou? Da um Rep+    
    • Por luanluciano93
      Olá pessoal, tive a iniciativa de criar esse tópico para atualizar e otimizar as sources do TFS 0.4 DEV que é uma das mais usadas no mundo do otserv. Conteúdo totalmente gratuito e pretendemos melhora-lo cada vez mais. 
       
      Qualquer um pode colaborar, postando bugs, erros, otimizando códigos, comentar aqui no tópico, toda ajuda é bem vinda, vamos tornar essa a melhor source disponível. Conto com vocês.
       
      Versão do Tibia: 8.60
       
      Alguns sistema já implementados na source:
      • TFS 0.4 DEV rev 3777 (by TFS Team)
      • Anti-Divulgação (.servegame, .no-ip, .net, .com, .org, .pl, .biz, .br, .sytes, .info)
      • War System
      • Cast System (by Summ)
      • Retirado bugs de anti-push ..
      • Retirado bugs de elfbot ...
      • Retirado erro de não aceitar outros items ...
      • Retirado erro de Malformed File ...
      • Add creatureevent onMoveItem()  ...
      • Add função getCreaturePathTo () ...
      • E vários outros!
       
      Complementos:
      • Add cast System (passo a passo): [AQUI]
      • Pode add o comando na config.lua:
      healthHealingColor = COLOR_GREEN -- [podendo alterar a cor]. manaHealingColor = COLOR_DARKPURPLE -- [podendo alterar a cor]. Downloads:
      • Distro Compilada 32x
      • Distro Compilada 64x
      • Sources 7
       
       
      TESTADO EM WINDOWS, DEBIAN 7.8, UBUNTU 12.04 E 14.05!
       
       
      • Compilar em Linux: 
       
       
       
      • Erros para arrumar: 
       


      Obrigado ao runeraserver pelo incentivo em fixa-la para linux

      E é isso pessoal, espero ter ajudado, abraços
       
    • Por fezeRa
      Bom senhores,
      O que venho para pedir-lhes é uma solução para meu war system.
      Eu instalei tudo da forma correta como vi em varios topicos deste sistema.
      O que ocorre é:
      Quando 2 guilds estão em war, dai voce mata o seu inimigo (da outra guild), dai você usa !frags, lá aparece que ganhou 1 frag daquele sujeito que você matou da guild inimiga. Mas esse frag contato não interfere em nada, como em red skull, black skulls , apenas fica lá contando cada vez que mata alguem da outra guild.
      Se possivel se alguém souber como fazer para não aparecer este frag dentro do !frags, eu seria muito grato com REP+
       
      Meu script do !frags é:
       
       
      Aguardo, Obrigado
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo