Ir para conteúdo

Featured Replies

Postado

Ola Galera Do tk quero perdir ajuda para colocar Top reset no gesior

uso Tfs4

highscores 

<?PHP
if(!defined('INITIALIZED'))
    exit;
        
$list = 'experience';
if(isset($_REQUEST['list']))
    $list = $_REQUEST['list'];

$page = 0;
if(isset($_REQUEST['page']))
    $page = min(50, $_REQUEST['page']);

$vocation = '';
if(isset($_REQUEST['vocation']))
    $vocation = $_REQUEST['vocation'];

switch($list)
{
    case "fist":
        $id=Highscores::SKILL_FIST;
        $list_name='Fist Fighting';
        break;
    case "club":
        $id=Highscores::SKILL_CLUB;
        $list_name='Club Fighting';
        break;
    case "sword":
        $id=Highscores::SKILL_SWORD;
        $list_name='Sword Fighting';
        break;
    case "axe":
        $id=Highscores::SKILL_AXE;
        $list_name='Axe Fighting';
        break;
    case "distance":
        $id=Highscores::SKILL_DISTANCE;
        $list_name='Distance Fighting';
        break;
    case "shield":
        $id=Highscores::SKILL_SHIELD;
        $list_name='Shielding';
        break;
    case "fishing":
        $id=Highscores::SKILL_FISHING;
        $list_name='Fishing';
        break;
    case "magic":
        $id=Highscores::SKILL__MAGLEVEL;
        $list_name='Magic';
        break;
    default:
        $id=Highscores::SKILL__LEVEL;
        $list_name='Experience';
        break;
}
if(count($config['site']['worlds']) > 1)
{
    foreach($config['site']['worlds'] as $idd => $world_n)
    {
        if($idd == (int) $_REQUEST['world'])
        {
            $world_id = $idd;
            $world_name = $world_n;
        }
    }
}
if(!isset($world_id))
{
    $world_id = 0;
    $world_name = $config['server']['serverName'];
}
if(count($config['site']['worlds']) > 1)
{
    $main_content .= '
        <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
            <TR>
                <TD></TD>
                <TD>
                    <FORM ACTION="" METHOD=get>
                        <INPUT TYPE="hidden" NAME="subtopic" VALUE="highscores">
                        <TABLE WIDTH=100% BORDER=0 CELLSPACING=1 CELLPADDING=4>
                            <TR>
                                <TD BGCOLOR="'.$config['site']['vdarkborder'].'" CLASS=white><B>World Selection</B></TD>
                            </TR>
                            <TR>
                                <TD BGCOLOR="'.$config['site']['darkborder'].'">
                                    <TABLE BORDER=0 CELLPADDING=1>
                                        <TR>
                                            <TD>Best players on world:</TD>
                                            <TD><SELECT SIZE="1" NAME="world">';
                                            foreach($config['site']['worlds'] as $wid => $world_n)
                                            {
                                                if($wid == $world_id)
                                                    $main_content .= '
                                                        <OPTION VALUE="'.htmlspecialchars($wid).'" selected="selected">'.htmlspecialchars($world_n).'</OPTION>';
                                                else
                                                    $main_content .= '
                                                        <OPTION VALUE="'.htmlspecialchars($wid).'">'.htmlspecialchars($world_n).'</OPTION>';
                                            }
                                            $main_content .= '
                                                </SELECT> 
                                            </TD>
                                            <TD>
                                                <INPUT TYPE="image" NAME="Submit" ALT="Submit" SRC="'.$layout_name.'/images/buttons/sbutton_submit.gif">
                                            </TD>
                                        </TR>
                                    </TABLE>
                                </TABLE>
                            </FORM>
                        </TABLE>';}
                    $offset = $page * 100;
                    $skills = new Highscores($id, 100, $page, $world_id, $vocation);
                    $main_content .= '
                        <TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>
                            <TR>
                                <TD WIDTH=100% ALIGN=right VALIGN=bottom>
                                    <CENTER><H2>Ranking for '.htmlspecialchars($list_name).' on '.htmlspecialchars($world_name).'</H2></CENTER><BR>';
                    
                    $main_content .= '
                        <br><TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%></TABLE>
                        <TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>
                            <TR BGCOLOR="'.$config['site']['vdarkborder'].'">
                                <TD CLASS=whites><strong>Rank</strong></TD>
                                <TD WIDTH=75% CLASS=whites><B>Name</B></TD>
                                <TD WIDTH=15% CLASS=whites><b>Level</B></TD>';
                        if($list == "experience")
                            $main_content .= '
                                <TD CLASS=whites><b>Points</B></TD>';
                        $main_content .= '
                            </TR>';
                        $number_of_rows = 0;
                    foreach($skills as $skill)
                    {
                        if($list == "magic")
                            $value = $skill->getMagLevel();
                        elseif($list == "experience")
                            $value = $skill->getLevel();
                        else
                            $value = $skill->getScore();
                        $bgcolor = (($number_of_rows++ % 2 == 1) ?  $config['site']['darkborder'] : $config['site']['lightborder']);
                        $main_content .= '
                            <tr bgcolor="'.$bgcolor.'">
                                <td>'.($offset + $number_of_rows).'</td>
                                <td><a href="?subtopic=characters&name='.urlencode($skill->getName()).'">'.htmlspecialchars($skill->getName()).'</a></td>
                                <td>'.$value.'</td>';
                        if($list == "experience")
                            $main_content .= '
                                <td>'.$skill->getExperience().'</td>';
                        $main_content .= '
                            </tr>';
                    }
                    $main_content .= '
                        </TABLE>
                        <TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1 WIDTH=100%>';
                    if($page > 0)
                        $main_content .= '
                            <TR>
                                <TD WIDTH=100% ALIGN=right VALIGN=bottom>
                                    <A HREF="?subtopic=highscores&list='.urlencode($list).'&page='.($page - 1).'&vocation=' . urlencode($vocation) . '&world=' . urlencode($world_id) . '" CLASS="size_xxs">Previous Page</A>
                                </TD>
                            </TR>';
                    if($page < 50)
                        $main_content .= '
                            <TR>
                                <TD WIDTH=100% ALIGN=right VALIGN=bottom>
                                    <A HREF="?subtopic=highscores&list='.urlencode($list).'&page='.($page + 1).'&vocation=' . urlencode($vocation) . '&world=' . urlencode($world_id) . '" CLASS="size_xxs">Next Page</A>
                                </TD>
                            </TR>';
                    $main_content .= '
                        </TABLE>
                    </TD>
                    <TD WIDTH=5%>
                        <IMG SRC="'.$layout_name.'/images/blank.gif" WIDTH=1 HEIGHT=1 BORDER=0>
                    </TD>
                    <TD WIDTH=15% VALIGN=top ALIGN=right>
                        <TABLE BORDER=0 CELLPADDING=4 CELLSPACING=1>
                            <TR BGCOLOR="'.$config['site']['vdarkborder'].'">
                                <TD CLASS=whites><B>Choose a category</B></TD>
                            </TR>
                            <TR BGCOLOR="'.$config['site']['lightborder'].'">
                                <TD>
                                    <A HREF="?subtopic=highscores&list=experience&world='.$world_id.'" CLASS="size_xs">Experience</A><BR>
                                    <A HREF="?subtopic=highscores&list=magic&world='.$world_id.'" CLASS="size_xs">Magic</A><BR>
                                    <A HREF="?subtopic=highscores&list=shield&world='.$world_id.'" CLASS="size_xs">Shielding</A><BR>
                                    <A HREF="?subtopic=highscores&list=distance&world='.$world_id.'" CLASS="size_xs">Distance</A><BR>
                                    <A HREF="?subtopic=highscores&list=club&world='.$world_id.'" CLASS="size_xs">Club</A><BR>
                                    <A HREF="?subtopic=highscores&list=sword&world='.$world_id.'" CLASS="size_xs">Sword</A><BR>
                                    <A HREF="?subtopic=highscores&list=axe&world='.$world_id.'" CLASS="size_xs">Axe</A><BR>
                                    <A HREF="?subtopic=highscores&list=fist&world='.$world_id.'" CLASS="size_xs">Fist</A><BR>
                                    <A HREF="?subtopic=highscores&list=fishing&world='.$world_id.'" CLASS="size_xs">Fishing</A><BR>
                                </TD>
                            </TR>
                        </TABLE>
                    </TD>
                    <TD><IMG SRC="'.$layout_name.'/images/blank.gif" WIDTH=10 HEIGHT=1 BORDER=0></TD>
                </TR>
            </TABLE>';
?>

 

Systema de reset que uso

 

<npc name="Npc Reset" script="data/npc/scripts/reseter.lua" access="5" lookdir="1">
<health now="1000" max="1000"/>
<look type="133" head="95" body="86" legs="86" feet="38" addons="3"/>
    <parameters>
        <parameter key="message_greet" value="Hello |PLAYERNAME|.I've been waiting for you to come.. Say 'reseter' or 'quantity'" />
        <parameter key="message_farewell" value="Cya folk." />
        <parameter key="message_walkaway" value="How Rude!" />
    </parameters>
</npc>

 

Script

 

local config = {
    minlevel = 150, --- level inical para resetar
    price = 10000, --- preço inicial para resetar
    newlevel = 20, --- level após reset
    priceByReset = 0, --- preço acrescentado por reset
    percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
    maxresets = 50,
    levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
}
--- end config

function getResets(uid)
    resets = getPlayerStorageValue(uid, 378378)
    if resets < 0 then
        resets = 0
    end
    return resets
end

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
 
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink()                  npcHandler:onThink()                  end
 
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    function addReset(cid)
        if(npcHandler:isFocused(cid)) then
            npcHandler:releaseFocus(cid)
        end
        
        talkState[talkUser] = 0
        resets = getResets(cid)
        setPlayerStorageValue(cid, 378378, resets+1) 
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        local hp = getCreatureMaxHealth(cid)
        local resethp = hp*(config.percent/100)
        setCreatureMaxHealth(cid, resethp)
        local differencehp = (hp - resethp)
        doCreatureAddHealth(cid, -differencehp)
        local mana = getCreatureMaxMana(cid)
        local resetmana = mana*(config.percent/100)
        setCreatureMaxMana(cid, resetmana)
        local differencemana = (mana - resetmana)
        doCreatureAddMana(cid, -differencemana)
        doRemoveCreature(cid)        
        local description = resets+1
        db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."")
        db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."")
        return true
    end
    
    local newPrice = config.price + (getResets(cid) * config.priceByReset)
    local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset)

    if msgcontains(msg, 'reset') then
        if getResets(cid) < config.maxresets then
            selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid)
            talkState[talkUser] = 1
        else
            selfSay('You already reached the maximum reset level!', cid)
        end
        
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
        if getPlayerMoney(cid) < newPrice then
            selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid)
        elseif getPlayerLevel(cid) < newminlevel then
            selfSay('The minimum level for reseting is '..newminlevel..'!', cid)
        else
            doPlayerRemoveMoney(cid,newPrice)
            playerid = getPlayerGUID(cid)
            addEvent(function()
                if isPlayer(cid) then
                    addReset(cid)
                end
            end, 3000)
            local number = getResets(cid)+1
            local msg ="---[Reset: "..number.."]-- You have reseted!  You'll be disconnected in 3 seconds."
            doPlayerPopupFYI(cid, msg) 
            talkState[talkUser] = 0
            npcHandler:releaseFocus(cid)
        end
        talkState[talkUser] = 0
    elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then
        talkState[talkUser] = 0
        npcHandler:releaseFocus(cid)
        selfSay('Ok.', cid)
    elseif msgcontains(msg, 'quantity') then
        selfSay('You have a total of '..getResets(cid)..' reset(s).', cid)
        talkState[talkUser] = 0
    end
    return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Se Alguem puder ajudar fico muito agradecido +Rep

 

 

 


 

 

Alguem pode ajudar?

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo