Ir para conteúdo
  • 0

[NPC] Removedor de Frags, Red e Black Skull


Overloker

Pergunta

Olá galera,

 

Procurei muito e achei muitas coisas mas nada concreto sobre isso.

 

Preciso de um NPC assim por exemplo:

 

Hi

Olá Xtibia, você gostaria de remover red skull ou black skull

Red Skull

Irá custar 100000, você tem certeza?

yes

Pronto! Seus frags e skull foram removidos.

 

Ele remove então a red ou black skull juntamente com os frags do jogador COBRANDO gold.

 

Muito obrigado desde já!

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

4 respostass a esta questão

Posts Recomendados

  • 0

Testado: Não Por Mim


Versão: 8.6+


Configuravel: Sim


Créditos: VodKart(script),0o0KronuS0o0(disponibilizar) e Rusherzin (re-postar)



Esse remove o battle ou a skull dependendo do que o player escolher (e ele identifica qual skull o player está):


data/npcs/scripts crie arquivo lua chamado Skullremover e cole isso..



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


local S = {
[3] = 100000, -- white skull preço
[4] = 500000, -- red skull preço
[5] = 1000000 -- black skull preço
}
local battle_price = 10000 -- battle preço

if(msgcontains(msg, 'remover') or msgcontains(msg, 'REMOVER')) then
selfSay('E ai oque vai ser? Remover {skulls} e o battle ou quer retirar só {battle}?', cid)
talkState[talkUser] = 1
elseif msgcontains(msg, 'skulls') and talkState[talkUser] == 1 then
if not S[getCreatureSkullType(cid)] then
selfSay('Você não está com nenhuma skull!', cid)
talkState[talkUser] = 0
else
selfSay('Você quer remover sua skull por '..S[getCreatureSkullType(cid)]..' gps? {yes}', cid)
talkState[talkUser] = 2
end
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then
if doPlayerRemoveMoney(cid, S[getCreatureSkullType(cid)]) == TRUE then
db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")")
doCreatureSetSkullType(cid, 0)
if getCreatureCondition(cid, CONDITION_INFIGHT) ~= FALSE then
doRemoveCondition(cid, CONDITION_INFIGHT)
end
selfSay('Pronto meu caro,seus males foram removidos!', cid)
talkState[talkUser] = 0
else
selfSay('Você não tem '..S[getCreatureSkullType(cid)]..' gps suficientes!', cid)
talkState[talkUser] = 0
end
elseif msgcontains(msg, 'battle') and talkState[talkUser] == 1 then
selfSay('Você quer remover seu battle por '.. battle_price ..' gps? {yes}', cid)
talkState[talkUser] = 3
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then
if getCreatureCondition(cid, CONDITION_INFIGHT) ~= FALSE then
if doPlayerRemoveMoney(cid, battle_price) == TRUE then
doRemoveCondition(cid, CONDITION_INFIGHT)
selfSay('Pronto meu caro,seu battle foi removido!', cid)
talkState[talkUser] = 0
else
selfSay('Você não tem '.. battle_price ..' gps suficientes!', cid)
talkState[talkUser] = 0
end
else
selfSay('Você não está com battle!', cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("Then not", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end

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

Depois crie um arquivo xml em data/npcs chamado Removedor e cole isso:



<?xml version="1.0"?>
<npc name="Removedor" script="data/npc/scripts/skullremover.lua" walkinterval="5000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Eu posso {remover} sua skull ou battle, diga {remover}." />
</parameters>
</npc>
Editado por Rusherzin
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

 

Testado: Não Por Mim

Versão: 8.6+

Configuravel: Sim

Créditos: VodKart(script),0o0KronuS0o0(disponibilizar) e Rusherzin (re-postar)

Esse remove o battle ou a skull dependendo do que o player escolher (e ele identifica qual skull o player está):

data/npcs/scripts crie arquivo lua chamado Skullremover e cole isso..

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 


local S = { 
        [3] = 100000, -- white skull preço
        [4] = 500000, -- red skull preço
        [5] = 1000000 -- black skull preço
}
local battle_price = 10000 -- battle preço

if(msgcontains(msg, 'remover') or msgcontains(msg, 'REMOVER')) then 
selfSay('E ai oque vai ser? Remover {skulls} e o battle ou quer retirar só {battle}?', cid) 
talkState[talkUser] = 1 
elseif msgcontains(msg, 'skulls') and talkState[talkUser] == 1 then
if not S[getCreatureSkullType(cid)] then
selfSay('Você não está com nenhuma skull!', cid)
talkState[talkUser] = 0 
else
selfSay('Você quer remover sua skull por '..S[getCreatureSkullType(cid)]..' gps? {yes}', cid) 
talkState[talkUser] = 2
end
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then 
if doPlayerRemoveMoney(cid, S[getCreatureSkullType(cid)]) == TRUE then
db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")") 
doCreatureSetSkullType(cid, 0)
if getCreatureCondition(cid, CONDITION_INFIGHT) ~= FALSE then 
doRemoveCondition(cid, CONDITION_INFIGHT)
end
selfSay('Pronto meu caro,seus males foram removidos!', cid)
talkState[talkUser] = 0 
else
selfSay('Você não tem '..S[getCreatureSkullType(cid)]..' gps suficientes!', cid)
talkState[talkUser] = 0 
end
elseif msgcontains(msg, 'battle') and talkState[talkUser] == 1 then
selfSay('Você quer remover seu battle por '.. battle_price ..' gps? {yes}', cid) 
talkState[talkUser] = 3
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then
if getCreatureCondition(cid, CONDITION_INFIGHT) ~= FALSE then 
if doPlayerRemoveMoney(cid, battle_price) == TRUE then
doRemoveCondition(cid, CONDITION_INFIGHT)
selfSay('Pronto meu caro,seu battle foi removido!', cid)
talkState[talkUser] = 0
else
selfSay('Você não tem  '.. battle_price ..' gps suficientes!', cid)
talkState[talkUser] = 0
end
else
selfSay('Você não está com battle!', cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] >= 1 then 
selfSay("Then not", cid) 
talkState[talkUser] = 0 
npcHandler:releaseFocus(cid) 
end 
return TRUE 
end 

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

Depois crie um arquivo xml em data/npcs chamado Removedor e cole isso:

<?xml version="1.0"?>
<npc name="Removedor" script="data/npc/scripts/skullremover.lua" walkinterval="5000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Eu posso {remover} sua skull ou battle, diga {remover}." />
</parameters>
</npc>

 

 

 

Funcionou perfeitamente! Alterei pequenas coisas somente.

Muito obrigado! +Rep

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...