• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

War System Problem "Talkaction" tfs 0.4

cocacola13

Member
Joined
Jan 18, 2019
Messages
179
Reaction score
12
Location
poland
Hello, I have a problem with the war system after adding it to the data pack and after trying to use the command! war on the server nothing happens as if it were not at all,
Tfs 0.4 no errors appear in the engine.

1590756314171.png

1590756335376.png
1590756436853.png
Post automatically merged:

update I used mod, but it also doesn't work
this is my script:
 
Last edited:
Hello, I have a problem with the war system after adding it to the data pack and after trying to use the command! war on the server nothing happens as if it were not at all,
Tfs 0.4 no errors appear in the engine.

View attachment 46109

View attachment 46110
View attachment 46111
My guess is that it errored somewhere while loading the server.
Scroll up and check if it errored.

If you can't find any errors that way..
green text the entire .lua document and put print(1) under the main function
That should at the very minimum confirm that the script is loaded and working, by showing '1' in the console everytime you use the command.

If you get that far, then you can start finding out what errored by un-greentexting portions of the script until you find the issue that made it fail while loading in the server.

Of course, if on step 1 you find an error code then that's great. We then have something to work with and feel free to post that.
 
1590757248106.png
I was able to get an error
Post automatically merged:

My War.lua
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
 
View attachment 46112
I was able to get an error
Post automatically merged:

My War.lua
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
This appears to be an incomplete code.
It looks like it was chopped off at the bottom, when you were copy-pasting it.
Check whereever you found the code and ensure you copy all of it.
 
That's actually his error.

He's literally just missing the closing end, and the error log output of the server says just that. Otherwise the script is identical to the common one from this era of server.
 
okay, my error after adding end at the end of the error disappeared but nothing happens
Post automatically merged:

1590771759056.png
after sending a message on say disappears without returning
 
Never used this feature before, but it appears to simply be a space to activate the different keywords?

!war accept
!war finish
!war invite

If it requires additional information it would be separated by comma's

for example:
!war invite, guild_name, frags, payment
 
!war invite, %guildname%, %kills%, %bet%
!war cancel, %guildname%
!war accept, %guildname%
!war reject, %guildname%
!war end, %guildname%

Are you sure there is two guilds? And the 2nd guild actually has players? And you're not trying to invite your own guild to war?
 
Work but another database problem connects, saves data, but the page doesn't show warnings Thanks <3
1590775112613.png


My Code php

PHP:
<?php
if ($action == ""){
$main_content = "
<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"4\">
<tr>
<td style=\"background: " . $config['site']['vdarkborder'] . "\" class=\"white\" width=\"150\"><b>Aggressor</b></td>
<td style=\"background: " . $config['site']['vdarkborder'] . "\" class=\"white\"><b>Information</b></td>
<td style=\"background: " . $config['site']['vdarkborder'] . "\" class=\"white\" width=\"150\"><b>Enemy</b></td>
</tr>";
 
$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)) AND `guild_id` = '.$id.';') 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 class=\"\" 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=\"12\"><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=\"12\"><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 .= "<b>Ended</b><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: <b><span style=\"color: red;\">" . $war['guild_kills'] . "</span></b> to <b><span style=\"color: lime;\">" . $war['enemy_kills'] . "</span></b>.";
            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=\"?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=\"?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\" align='center'>Currently there are no active wars.</td>
</tr>";
 
$main_content .= "</table>";

}
?>
Post automatically merged:

write here, I have another problem with adding frags to the database
My script is bad have error
1590778649514.png

Script:

Lua:
local skulls = {SKULL_WHITE, SKULL_YELLOW, SKULL_RED, SKULL_BLACK}

function onKill(cid, target, lastHit)
if isPlayer(target) then
     db.executeQuery("UPDATE `players` SET `frags_all` = `frags_all` + 1 WHERE `id` = " .. getPlayerGUID(cid) .. ";")
    end
    return true
end

function onKill(cid, target)
    if isPlayer(cid) and isPlayer(target) then
        for i= 1, #skulls do
            if getPlayerSkullType(target) == skulls[i]  then
                addPlayerFrag(cid, 1)
                break
            end
        end
    end
    return true
end
 
Last edited:
Back
Top