Upar a cada HIT:
NPC que venda por item, eu nao sei. Até estive atrás dele já, mas nao vem ao caso.
Aconselho colocar uma porta, cuja somente quem tem o X item. Se quiser posto para você,
Abraços.
info
Grupo: Artesão
Registrado: 21/08/11
Posts: 130
Reputação: +29

Upar a cada HIT:
NPC que venda por item, eu nao sei. Até estive atrás dele já, mas nao vem ao caso.
Aconselho colocar uma porta, cuja somente quem tem o X item. Se quiser posto para você,
Abraços.
Editado Julho 28 por LucasCorrea
Poxa amigo não sei se entendi bem mas você tem uma porta que só abre se o player tiver determinado item na bag é isso mesmo?Upar a cada HIT:
NPC que venda por item, eu nao sei. Até estive atrás dele já, mas nao vem ao caso.
Aconselho colocar uma porta, cuja somente quem tem o X item. Se quiser posto para você,
Abraços.
se for eu agradeceria muito se você pudesse postar, desde já agradeço. REP+
info
Grupo: Artesão
Registrado: 21/08/11
Posts: 130
Reputação: +29

Sim. Porém, estou com uma que só te teleporta pra dentro, ou seja, para sair, você deverá colocar um teleport.etende? Poorem breve posto um mais complexo pra você.. Tá aí o script:
Data>actions>scripts> MEDAL.lua
function onUse(cid, item, frompos, item2, topos)
npos = {x=951, y=1170, z=7}
medal = getPlayerItemCount(cid, 5785)
if medal == 1 or medal > 1 then
doTeleportThing(cid, npos)
doPlayerSendTextMessage(cid,22, "Você é bem vindo, e pode vender seus items a vontade.")
else
doPlayerSendTextMessage(cid,22, "Somente quem tem Medal Of Honour pode entrar aqui.")
end
return 1
end
Data>actions>actions.xml, e adcione a sequinte tag:
<action actionid="8795" script="medal.lua"/>
Agora abra o remere's, adcione uma porta, e coloque 8795 na ACTIONID da porta.
E para sair, coloque um TP. Contanto que esteje bem... Abraços.
Sim. Porém, estou com uma que só te teleporta pra dentro, ou seja, para sair, você deverá colocar um teleport.etende? Poorem breve posto um mais complexo pra você.. Tá aí o script:
Data>actions>scripts> MEDAL.lua
function onUse(cid, item, frompos, item2, topos)
npos = {x=951, y=1170, z=7}
medal = getPlayerItemCount(cid, 5785)
if medal == 1 or medal > 1 then
doTeleportThing(cid, npos)
doPlayerSendTextMessage(cid,22, "Você é bem vindo, e pode vender seus items a vontade.")
else
doPlayerSendTextMessage(cid,22, "Somente quem tem Medal Of Honour pode entrar aqui.")
end
return 1
end
Data>actions>actions.xml, e adcione a sequinte tag:
<action actionid="8795" script="medal.lua"/>
Agora abra o remere's, adcione uma porta, e coloque 8795 na ACTIONID da porta.
E para sair, coloque um TP. Contanto que esteje bem... Abraços.
Po valeu meso cara, agora eu posso colocar qualquer item no lugar dessa medalha e posso por mais de um? tipo mudando o ID da medalha no arquivo medal.lua.
ex.: precisa de cinco tochas
é só um exemplo ^^"
valeu meso, obrigado.
Ahh, ja ia me esquecendo esse action id=8795, se eu ja estiver usando pode dar conflito né? se for o caso posso mudar pra qualquer um que eu não esteja utilizando?
Novamente, obrigado.
Editado Julho 28 por kynhuu
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

esse do npc é bem fácil de se fazer
eu fiz um npc tbm que varia o preço dos items dependendo o dia da semana
info
Grupo: Artesão
Registrado: 21/08/11
Posts: 130
Reputação: +29

Bom Vodkart, compartilhe os 2 conosco.. Ficaremos felizes, amigo.
Abraços ae.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

vc diz os 2 npc?
que varia o preço do item pra vender/comprar dependendo do dia da semana e o do item com 50% de desconto?
info
Grupo: Artesão
Registrado: 21/08/11
Posts: 130
Reputação: +29

Sim parceiro. Os 2 são dois npc's ótimos, cuja dão uma diferenciada no OT.
Estou começando no ramo "scripting", logo mais fico como você, HEUAHE.
Enfin, poste os 2 para nós. Se quiser, é claro.
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino


Primeiro Npc que vende os items mais caros ou mais barato DEPENDENDO DO DIA
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 PercentNumber(n)
percent = {
["Monday"] = 1,
["Tuesday"] = 2,
["Wednesday"] = 5,
["Thursday"] = 1,
["Friday"] = 7,
["Saturday"] = 5,
["Sunday"] = 10
}
return n + math.ceil(((percent[os.date("%A")]*n)/100))
end
local trade = {
{id=2386, buy= PercentNumber(20) , sell= PercentNumber(8),name="axe"},
{id=2382, buy= PercentNumber(15), sell= PercentNumber(4), name="club"},
{id=2413, buy= PercentNumber(2240), sell= PercentNumber(550), name="broadsword"},
}
local items = {}
for _, item in ipairs(trade) do
items[item.id] = {item_id = item.id, buyPrice = item.buy, sellPrice = item.sell, subType = 0, realName = item.name}
end
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if items[item].buyPrice ~= 0 then
doPlayerRemoveMoney(cid, amount * items[item].buyPrice)
for i = 1, amount do
doPlayerAddItem(cid, items[item].item_id, amount)
end
end
end
local onSell = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if items[item].sellPrice ~= 0 then
doPlayerAddMoney(cid, items[item].sellPrice * amount)
doPlayerRemoveItem(cid, items[item].item_id, amount)
end
end
if msgcontains(msg, 'trade') then
openShopWindow(cid, trade, onBuy, onSell)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
percent = {
["Monday"] = 1,
["Tuesday"] = 2,
["Wednesday"] = 5,
["Thursday"] = 1,
["Friday"] = 7,
["Saturday"] = 5,
["Sunday"] = 10
}
["DIA"] = %
exemplo:
{id=2386, buy= PercentNumber(20) , sell= PercentNumber(8),name="axe"},
20 é o preço real do item pra comprar
no caso hj é Sunday e está para ficar 10% mais caro, então o item ali vai custa hj 22 pq
10% de 20 é 2
---------------------------
o segundo é o npc que vende os itens com 50% do preço mais barato se ele tiver um X item
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 PercentNumber(n)
return getPlayerItemCount(cid, 2123) >= 1 and n - math.ceil(((50*n)/100)) or n
end
local trade = {
{id=2386, buy= PercentNumber(20) , sell= 8,name="axe"},
{id=2382, buy= PercentNumber(15), sell= 4, name="club"},
{id=2413, buy= PercentNumber(2240), sell= 550, name="broadsword"},
}
local items = {}
for _, item in ipairs(trade) do
items[item.id] = {item_id = item.id, buyPrice = item.buy, sellPrice = item.sell, subType = 0, realName = item.name}
end
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if items[item].buyPrice ~= 0 then
doPlayerRemoveMoney(cid, amount * items[item].buyPrice)
for i = 1, amount do
doPlayerAddItem(cid, items[item].item_id, amount)
end
end
end
local onSell = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if items[item].sellPrice ~= 0 then
doPlayerAddMoney(cid, items[item].sellPrice * amount)
doPlayerRemoveItem(cid, items[item].item_id, amount)
end
end
if msgcontains(msg, 'trade') then
openShopWindow(cid, trade, onBuy, onSell)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Nesse caso eu coloquei para vender o item 50% mais barato se ele tiver o item com ID: 2123
só mudar aqui:
function PercentNumber(n)
return getPlayerItemCount(cid, 2123) >= 1 and n - math.ceil(((50*n)/100)) or n
end
o 2123 é o ID do item
e o 50 é qntos % mais barato
@TOPIC
se não entender oq eu digo estude um pouco.
info
Grupo: Artesão
Registrado: 21/08/11
Posts: 130
Reputação: +29

Tinha uma básica noção de montar o de vender somente com X item, mas nunca cheguei a um resultado complexo,
Enfin, entendi perfeitamente. Vlw por compartilhar, fiquei tao emocionado, que até dei rep, -n.
Se quiser me ajudar, no meu desenpenho no mundo.lua, to a disposição.. HAHA.
Abraços e Obrigada.
info
Grupo: Campones
Registrado: 28/07/12
Posts: 27
Reputação: 0
Opa boa noite galera,
Gostaria de 2 sistemas pra colocar no ot que eu to criando, o primeiro é o seguinte, temos o npc q voce vende seus loots porem com o item id: 5785 voce vende os itens 50% mais caro, e o segundo é um exemplo demon da 8200 de exp ( quando o bixo morre ), queria que a cada hit vc ganhasse um pouco de exp dessas 8200 (dependendo se o hit for auto mais xp, se for baixo menos xp) este sistema eu ja vi no otserv PBOT que foi fexado..
No aguardo, Obrigado..