Sistemas Interessantes -

leo420
Por leo420
em Scripts

leo420

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/12Posts: 27

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

pbottrinks

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 21/08/11Posts: 130

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.

anigif_2.gif

kynhuu

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/01/12Posts: 5

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+

pbottrinks

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 21/08/11Posts: 130

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.

anigif_2.gif

kynhuu

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/01/12Posts: 5

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.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gê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

bossisg.png

pbottrinks

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 21/08/11Posts: 130

Bom Vodkart, compartilhe os 2 conosco.. Ficaremos felizes, amigo.

Abraços ae.

anigif_2.gif

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gê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?

bossisg.png

pbottrinks

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 21/08/11Posts: 130

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.

anigif_2.gif

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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.

bossisg.png

pbottrinks

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 21/08/11Posts: 130

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.

anigif_2.gif

leo420

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/12Posts: 27

valeu =))) vou testar aqui ja te dou um toque .. Belo script do npc