LE
pedido

Sistemas Interessantes -

Por leo420, 28 de jul. de 2012 em Scripts

porém impossivel?
otserv
12
2.5k
leo420L
28 de julho de 2012 às 01:30

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

pbottrinksP
28 de julho de 2012 às 06:33

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 Julho 28 por LucasCorrea

kynhuuK
28 de julho de 2012 às 13:31

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+

pbottrinksP
28 de julho de 2012 às 14:41

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.

kynhuuK
28 de julho de 2012 às 15:36

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

VodkartV
28 de julho de 2012 às 16:56

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

pbottrinksP
29 de julho de 2012 às 14:05

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

Abraços ae.

VodkartV
29 de julho de 2012 às 14:10

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?

pbottrinksP
29 de julho de 2012 às 18:35

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.

VodkartV
29 de julho de 2012 às 19:20

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.

pbottrinksP
29 de julho de 2012 às 23:42

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.

leo420L
01 de agosto de 2012 às 10:52

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