Ir para conteúdo
  • 0

Sistemas Interessantes -


leo420

Pergunta

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..

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

Upar a cada HIT:

ExpHit.

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 por LucasCorrea
Link para o comentário
Compartilhar em outros sites

  • 0

Upar a cada HIT:

ExpHit.

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.

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?

se for eu agradeceria muito se você pudesse postar, desde já agradeço. REP+

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 por kynhuu
Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

corinthians_campeao_libertadores_nunca_serao.jpg

 

 

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...