Ir para conteúdo
Banner com Efeitos

omashu

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    omashu recebeu reputação de drepeste em como eu posso mudar os nomes dos itens sem bugar   
    baixe o notedpad ++
    voçe clica com mouse direito no arquivo e vai em abrir com notepad ++ e edita sua sword


    http://downloads.sou...use_mirror=ufpr
  2. Gostei
    omashu deu reputação a victoroliveira em (DUVIDA) Tem como descompilar um OT?   
    Então como o titulo ja dis queria saber se tem como desconpilar um ot e se sim como fasso isso.
  3. Gostei
    omashu deu reputação a victoroliveira em Criando Layout de Website   
    Ola então eu faço curso de web designer e o layout de um site grande parte e no fire works tem outros programas tambem procura
    algum tutorial de fire works.

    espero ter ajudado.
  4. Gostei
    omashu recebeu reputação de victoroliveira em Erro Otserver mysql   
    Ola meu server da esse erro e dps disso ele fecha e aparece "não Enviar", ele ate fica um tempo on mais acontece isso.

    Versão Do Ot 9.10

    http://imageshack.us...erromysql2.png/
  5. Gostei
    omashu deu reputação a Hayashii em (resolvido) War System Para Ot 9.10.   
    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.
  6. Gostei
    omashu deu reputação a Kimoszin em [Action] Remover Pedra com Alavanca   
    Bom galera, tava sem nada para fazer aqui, e resolvi criar uma action muito simples, mais que tem gente que ainda procura...

    - Oque ela faz?
    Ela remove uma pedra que esta em um lugar X, e se usar a alavanca denovo.. a pedra é criada novamente.

    - Para que isso serve?
    Pode ser usados em servers de war, em quest's com rpg e etc...

    - Como eu 'instalo' isso em meu servidor?
    Muito simples, siga os passos...

    1. Vá para a pasta data\actions\scripts e crie um arquivo lua chamado alavanca, depois bote isso dentro:

    function onUse(cid, item, toPosition) rock1pos = {x=XXXX, y=YYYY, z=ZZ, stackpos=1} -- Posição da Pedra getrock1 = getThingfromPos(rock1pos) UniID = 3331 -- UniqueID que vai ser adicionado na alavanca rockID = 1304 -- ID da pedra if item.uid == UniID and item.itemid == 1945 and getrock1.itemid == rockID then doRemoveItem(getrock1.uid, 1) doTransformItem(item.uid, item.itemid+1) doSendMagicEffect(rock1pos, 2) elseif item.uid == UniID and item.itemid == 1946 then doCreateItem(rockID, 1, rock1pos) doTransformItem(item.uid,item.itemid-1) doSendMagicEffect(rock1pos, 13) end return TRUE end 2. Adicione esse tag em actions.xml : <action uniqueid="3331" script="alavanca.lua"></action>

    Só isso galerinha, é um script simples que eu fiz para passar o tempo!.
    Abraços..

Informação Importante

Confirmação de Termo