Ir para conteúdo
  • 0

[PEDIDO] Npc que troca um item por uma Viper Star


Pikasensei

Pergunta

Estou com um problema no meu OT, eu coloquei a viper star como uma VipStar e coloquei para vender no npc de muniçao de paladins por 8kk, um valor alto para o server, porem com uma hotkey do elfbot, conseguiram bugar o npc (auto 1 buyitens id 0) foi oq me disseram, e para provar o cara me mostrou 100 dessas... entao pensei em colocar um npc que vendesse um item q nao stacka, pois aparentemente esse bug só funciona com items que stackam, e depois trocar esse item com um npc por 1 viper star (sem trade, só falar viper star e o npc troca o item se voce tiver na backpack). ou se alguem souber de alguma maneira de arrumar o bug de outro modo, por favor me avise.

 

Estou usando um servidor Alissow 4.11 versao 8.6

 

desde já agradeço.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Fiz um NPC que não vai vender por janela de trade, então esse bug não deve funcionar. Ele vende viper stars somente.

viperstarseller.xml em data/npcs:

 

 

<npc name="Cato" script="data/npc/scripts/vip_star_seller.lua" floorchange="0" access="5" level="1" maglevel="1">
	<health now="150" max="150"/>
	<look type="129" head="115" body="113" legs="115" feet="97" addons="2" corpse="2212"/>
	<parameters>
        <parameter key="module_shop" value="0"/>
		<parameter key="message_greet" value="Welcome, |PLAYERNAME|. I sell {VIP Stars}!."/>
		<parameter key="message_farewell" value="See ya, |PLAYERNAME|." />
		<parameter key="message_walkaway" value="|PLAYERNAME| is a rude bastard!" />
	</parameters>
</npc>

 

 

 

vip_star_seller.lua em data/npcs/scripts:

 

 

local price = 8000000
local viper_star_id = xxx

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

    if msgcontains(msg, "star") then
        selfSay("How many do you want?", cid)
        talkState[talkUser] = 1
    elseif talkState[talkUser] == 1 then
        if tonumber(msg) and tonumber(msg) > 0 then
            local amount = tonumber(msg)
            if doPlayerRemoveMoney(cid, amount * price) then
                doPlayerAddItem(cid, viper_star_id, amount)
                selfSay("Be careful with those!", cid)
                talkState[talkUser] = 0
            else
                selfSay("You do not have enough money.", cid)
                talkState[talkUser] = 0
            end
        else
            selfSay("That's not a valid number of viper stars!", cid)
        end
    end
    return true
end

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

 

 

 

Só substitua o viper_star_id pelo item certo e mude o preço de cada uma em price.

Editado por Omega
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...