Jump to content

Potions por alavanca configurado por Talkaction


giots
 Share

Recommended Posts

Este é um sistema para comprar potions por alavanca, só que podendo configurar a quantidade de potions a ser comprada.

 

Exemplo: !potions 50 ~~comprará 50 potions a cada vez que usar a alavanca.

 

srjzMZP.png

 

Primeiro vou dar o exemplo da gmp

 

Crie um arquivo em data/actions/scripts com o nome de greatmp.lua e coloque:

 

 

local mp_id = 7590 -- ID da potion
local customp_id = 120 -- Valor de cada potion
local cargasmp_id = 100 -- Cargas se não usar a talkaction
local peso = 1.50 -- Peso da potion
local name = getItemNameById(mp_id)
----- End Config -----
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerMoney(cid) >= getPlayerStorageValue(cid, 180257) * customp_id then
if getPlayerStorageValue(cid, 180257) >= 1 then
if getPlayerFreeCap(cid) >= peso * getPlayerStorageValue(cid, 180257) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou ".. getPlayerStorageValue(cid, 180257) .." potions por ".. customp_id * getPlayerStorageValue(cid, 180257) .." gold.")
for i=1,1 do
doPlayerAddItem(cid,mp_id, getPlayerStorageValue(cid, 180257))
doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 180257) * customp_id)
end
else
doPlayerSendTextMessage(cid,24,"Você não tem cap suficiente.")
end
elseif
getPlayerMoney(cid) >= cargasmp_id * customp_id then
doPlayerAddItem(cid,mp_id, cargasmp_id)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou ".. cargasmp_id .." potions por ".. customp_id * cargasmp_id .." golds.")
doPlayerRemoveMoney(cid, cargasmp_id * customp_id)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * cargasmp_id .." golds.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * getPlayerStorageValue(cid, 180257) .." golds.")
end
return FALSE
end

 

 

 

em actions.lua coloque :

 

 

<action actionid="1515" script="greatmp.lua"/>

 

 

 

Agora em talkactions

 

Crie um arquivo chamado potions.lua e coloque:

 

 

function onSay(cid, words, param)
if(param == "") then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires param.")
return TRUE
end
if exhaustion.check(cid, 180258) == false then
exhaustion.set(cid, 180258, 5)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "espere " ..exhaustion.get(cid, 180258).." segundos.")
return false
end
local m = tonumber(param)
if(not m) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Command requires numeric param.")
return TRUE
end
m = math.abs(m)
if m >= 1 then
setPlayerStorageValue(cid, 180257, m)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Configurado para "..m.." potions")
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_FIREWORK_YELLOW)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Apenas quantidade igual ou maior que 1.")
end
return TRUE
end

em talkactions.lua coloque:

<talkaction log="no" words="!potions" script="potions.lua" />

Agora vá no rme e coloque o action id 1515 na alavanca que irá ser usada
Extras:
movements para o jogador na primeira vez que ele passar
em movements, crie potions.lua e coloque:

function onStepIn(cid, item, pos)
local str = 180259
stepstatus = getPlayerStorageValue(cid, str)
if stepstatus <= 0 and isPlayer(cid) then
doShowTextDialog(cid, 7590, "\nVocê pode configurar a quantidade de potions que quer comprar!\n\n basta dizer !potions quantidade\n\n exemplo: !potions 200")
setPlayerStorageValue(cid,180259,1)
else
doTransformItem(item.uid, 425)
end
return true
end

movements.lua

<movevent type="StepIn" actionid="5556" event="script" value="potions.lua"/>

***Para evitar que os jogadores joguem lixo em cima das potions de ilustração, vá no rme e coloque o item 1548 (invisible blocking item) em cima delas.
Scripts das outras potions abaixo:
mana potion

local mp_id = 7620 -- Item a ser vendido
local customp_id = 50 -- Valor
local cargasmp_id = 100 -- Cargas
local peso = 1.00 -- Peso do item
local name = getItemNameById(mp_id)
----- End Config -----
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerMoney(cid) >= getPlayerStorageValue(cid, 180257) * customp_id then
if getPlayerStorageValue(cid, 180257) >= 1 then
if getPlayerFreeCap(cid) >= peso * getPlayerStorageValue(cid, 180257) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou ".. getPlayerStorageValue(cid, 180257) .." potions por ".. customp_id * getPlayerStorageValue(cid, 180257) .." gold.")
for i=1,1 do
doPlayerAddItem(cid,mp_id, getPlayerStorageValue(cid, 180257))
doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 180257) * customp_id)
end
else
doPlayerSendTextMessage(cid,24,"Você não tem cap suficiente.")
end
elseif
getPlayerMoney(cid) >= cargasmp_id * customp_id then
doPlayerAddItem(cid,mp_id, cargasmp_id)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou ".. cargasmp_id .." potions por ".. customp_id * cargasmp_id .." golds.")
doPlayerRemoveMoney(cid, cargasmp_id * customp_id)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * cargasmp_id .." golds.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * getPlayerStorageValue(cid, 180257) .." golds.")
end
return FALSE
end

great health potion:

local mp_id = 7591 -- Item a ser vendido
local customp_id = 190 -- Valor
local cargasmp_id = 100 -- Cargas
local peso = 1.50 -- Peso do item
local name = getItemNameById(mp_id)
----- End Config -----
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerMoney(cid) >= getPlayerStorageValue(cid, 180257) * customp_id then
if getPlayerStorageValue(cid, 180257) >= 1 then
if getPlayerFreeCap(cid) >= peso * getPlayerStorageValue(cid, 180257) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou ".. getPlayerStorageValue(cid, 180257) .." potions por ".. customp_id * getPlayerStorageValue(cid, 180257) .." gold.")
for i=1,1 do
doPlayerAddItem(cid,mp_id, getPlayerStorageValue(cid, 180257))
doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 180257) * customp_id)
end
else
doPlayerSendTextMessage(cid,24,"Você não tem cap suficiente.")
end
elseif
getPlayerMoney(cid) >= cargasmp_id * customp_id then
doPlayerAddItem(cid,mp_id, cargasmp_id)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou ".. cargasmp_id .." potions por ".. customp_id * cargasmp_id .." golds.")
doPlayerRemoveMoney(cid, cargasmp_id * customp_id)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * cargasmp_id .." golds.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * getPlayerStorageValue(cid, 180257) .." golds.")
end
return FALSE
end

spirit potion:

local mp_id = 8472 -- Item a ser vendido
local customp_id = 190 -- Valor
local cargasmp_id = 100 -- Cargas
local peso = 2.20 -- Peso do item
local name = getItemNameById(mp_id)
----- End Config -----
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerMoney(cid) >= getPlayerStorageValue(cid, 180257) * customp_id then
if getPlayerStorageValue(cid, 180257) >= 1 then
if getPlayerFreeCap(cid) >= peso * getPlayerStorageValue(cid, 180257) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou ".. getPlayerStorageValue(cid, 180257) .." potions por ".. customp_id * getPlayerStorageValue(cid, 180257) .." gold.")
for i=1,1 do
doPlayerAddItem(cid,mp_id, getPlayerStorageValue(cid, 180257))
doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 180257) * customp_id)
end
else
doPlayerSendTextMessage(cid,24,"Você não tem cap suficiente.")
end
elseif
getPlayerMoney(cid) >= cargasmp_id * customp_id then
doPlayerAddItem(cid,mp_id, cargasmp_id)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou ".. cargasmp_id .." potions por ".. customp_id * cargasmp_id .." golds.")
doPlayerRemoveMoney(cid, cargasmp_id * customp_id)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * cargasmp_id .." golds.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * getPlayerStorageValue(cid, 180257) .." golds.")
end
return FALSE
end

strong health potion

local mp_id = 7588 -- Item a ser vendido
local customp_id = 90 -- Valor
local cargasmp_id = 100 -- Cargas
local peso = 1.00 -- Peso do item
local name = getItemNameById(mp_id)
----- End Config -----
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerMoney(cid) >= getPlayerStorageValue(cid, 180257) * customp_id then
if getPlayerStorageValue(cid, 180257) >= 1 then
if getPlayerFreeCap(cid) >= peso * getPlayerStorageValue(cid, 180257) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou ".. getPlayerStorageValue(cid, 180257) .." potions por ".. customp_id * getPlayerStorageValue(cid, 180257) .." gold.")
for i=1,1 do
doPlayerAddItem(cid,mp_id, getPlayerStorageValue(cid, 180257))
doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 180257) * customp_id)
end
else
doPlayerSendTextMessage(cid,24,"Você não tem cap suficiente.")
end
elseif
getPlayerMoney(cid) >= cargasmp_id * customp_id then
doPlayerAddItem(cid,mp_id, cargasmp_id)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou ".. cargasmp_id .." potions por ".. customp_id * cargasmp_id .." golds.")
doPlayerRemoveMoney(cid, cargasmp_id * customp_id)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * cargasmp_id .." golds.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * getPlayerStorageValue(cid, 180257) .." golds.")
end
return FALSE
end

strong mana potion:

local mp_id = 7589 -- Item a ser vendido
local customp_id = 90 -- Valor
local cargasmp_id = 100 -- Cargas
local peso = 1.00 -- Peso do item
local name = getItemNameById(mp_id)
----- End Config -----
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerMoney(cid) >= getPlayerStorageValue(cid, 180257) * customp_id then
if getPlayerStorageValue(cid, 180257) >= 1 then
if getPlayerFreeCap(cid) >= peso * getPlayerStorageValue(cid, 180257) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou ".. getPlayerStorageValue(cid, 180257) .." potions por ".. customp_id * getPlayerStorageValue(cid, 180257) .." gold.")
for i=1,1 do
doPlayerAddItem(cid,mp_id, getPlayerStorageValue(cid, 180257))
doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 180257) * customp_id)
end
else
doPlayerSendTextMessage(cid,24,"Você não tem cap suficiente.")
end
elseif
getPlayerMoney(cid) >= cargasmp_id * customp_id then
doPlayerAddItem(cid,mp_id, cargasmp_id)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou ".. cargasmp_id .." potions por ".. customp_id * cargasmp_id .." golds.")
doPlayerRemoveMoney(cid, cargasmp_id * customp_id)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * cargasmp_id .." golds.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * getPlayerStorageValue(cid, 180257) .." golds.")
end
return FALSE
end

ultimate health potion:

local mp_id = 8473 -- Item a ser vendido
local customp_id = 300 -- Valor
local cargasmp_id = 100 -- Cargas
local peso = 2.00 -- Peso do item
local name = getItemNameById(mp_id)
----- End Config -----
function onUse(cid, item, fromPosition, itemEx, toPosition)
if getPlayerMoney(cid) >= getPlayerStorageValue(cid, 180257) * customp_id then
if getPlayerStorageValue(cid, 180257) >= 1 then
if getPlayerFreeCap(cid) >= peso * getPlayerStorageValue(cid, 180257) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou ".. getPlayerStorageValue(cid, 180257) .." potions por ".. customp_id * getPlayerStorageValue(cid, 180257) .." gold.")
for i=1,1 do
doPlayerAddItem(cid,mp_id, getPlayerStorageValue(cid, 180257))
doPlayerRemoveMoney(cid, getPlayerStorageValue(cid, 180257) * customp_id)
end
else
doPlayerSendTextMessage(cid,24,"Você não tem cap suficiente.")
end
elseif
getPlayerMoney(cid) >= cargasmp_id * customp_id then
doPlayerAddItem(cid,mp_id, cargasmp_id)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você comprou ".. cargasmp_id .." potions por ".. customp_id * cargasmp_id .." golds.")
doPlayerRemoveMoney(cid, cargasmp_id * customp_id)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * cargasmp_id .." golds.")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem ".. customp_id * getPlayerStorageValue(cid, 180257) .." golds.")
end
return FALSE
end

créditos: eu

 

Link to comment
Share on other sites

Hummm muito bom, pensei que ia ser comprar por por talkaction, aí seria tosco, pois hoje em dia tem talk até pra upar, ir upar, feedar... Tem talk pra tudo...

 

Gostei do jeito que fez, geralmente essas alavancas dao bps de pot...

 

No TFS que tem a modalwindow seria intressante colocar números pra digitar, quando o player der use...

Link to comment
Share on other sites

Hummm muito bom, pensei que ia ser comprar por por talkaction, aí seria tosco, pois hoje em dia tem talk até pra upar, ir upar, feedar... Tem talk pra tudo...

 

Gostei do jeito que fez, geralmente essas alavancas dao bps de pot...

 

No TFS que tem a modalwindow seria intressante colocar números pra digitar, quando o player der use...

Normalmente as alavancas vendem em 100 pots ou em backpacks, e nem sempre essa é a quantidade que o player quer comprar, ai pensei em fazer isso, obrigado pelo comentário ._.

Só jogo e mexo com ot 8.60, não faço ideia do que seja modalwindow shsuahsau

Link to comment
Share on other sites

 Share

×
×
  • Create New...