Ir para conteúdo
Entre para seguir isso  
Half Blood

Buy & Sell Talkaction System

Recommended Posts

Half Blood    0
Half Blood
Nome: Buy & Sell Talkaction System

Autor: Yohan (eu)

Testado: TFS 8.54

Commands: !buy Item Name, Price / !sell Item Name, Price

 

Bom, fiz esse script pq foi um request no site otland.net. Ai pra num ficar mais lá do que cá, vou postar aqui também. Acho que para alguns servers não sirva, mas tem alguns outros que os GODs ou hosters podem aproveitar ou adaptar...

 

What does it do?

Se o player disser !buy ou !sell será mostrado uma janela com instruções de como proceder. Bom, vcs verão nas screenshots. Here you go the scripts:

 

* data/talkactions/scripts:

buy.lua:

 

--[[ Buy & Sell Talkaction System
Made by Yohan(me). ]]--
function onSay(cid, words, param) -- script by Yohan
local config = {
              levelNeeded = 8,
              muteTime = 120, -- time in Seconds that the player will be without broadcasting.
              storage = 7896 -- storage that controls the broadcasting of the player.
              }
if param == '' then
doPlayerPopupFYI(cid, "Say '!buy Item Name, Price in GP'")
end

t = string.explode(param, ",")
if not(t[1]) or not(t[2]) then
doPlayerSendCancel(cid, "Command requires more than one parameter.")
else

if getPlayerLevel(cid) >= config.levelNeeded then

  if getPlayerStorageValue(cid,config.storage) == -1 then
  setPlayerStorageValue(cid, config.storage, os.time())

  elseif getPlayerStorageValue(cid,config.storage) > os.time() then
  doPlayerSendCancel(cid, "You can only place one offer in " .. config.muteTime .. " seconds.")

  elseif getPlayerStorageValue(cid,config.storage) <= os.time() then
  doBroadcastMessage("Player " .. getPlayerName(cid) .. " is buying " .. t[1] .. " for " .. t[2] .. " gold coins.")
  setPlayerStorageValue(cid,config.storage, (os.time() + config.muteTime))
  end

else
doPlayerSendCancel(cid, "Only players with level " .. config.levelNeeded .. "+ can broadcast one offer.")
end
end

return true
end

 

sell.lua:

 

--[[ Buy & Sell Talkaction System
Made by Yohan(me). ]]--
function onSay(cid, words, param) -- script by Yohan
local config = {
              levelNeeded = 8,
              muteTime = 120, -- time in Seconds that the player will be without broadcasting.
              storage = 7896 -- storage that controls the broadcasting of the player.
              }
if param == '' then
doPlayerPopupFYI(cid, "Say '!sell Item Name, Price in GP'")
end

t = string.explode(param, ",")
if not(t[1]) or not(t[2]) then
doPlayerSendCancel(cid, "Command requires more than one parameter.")
else

if getPlayerLevel(cid) >= config.levelNeeded then

  if getPlayerStorageValue(cid,config.storage) == -1 then
  setPlayerStorageValue(cid, config.storage, os.time())

  elseif getPlayerStorageValue(cid,config.storage) > os.time() then
  doPlayerSendCancel(cid, "You can only place one offer in " .. config.muteTime .. " seconds.")

  elseif getPlayerStorageValue(cid,config.storage) <= os.time() then
  doBroadcastMessage("Player " .. getPlayerName(cid) .. " is selling " .. t[1] .. " for " .. t[2] .. " gold coins.")
  setPlayerStorageValue(cid,config.storage, (os.time() + config.muteTime))
  end

else
doPlayerSendCancel(cid, "Only players with level " .. config.levelNeeded .. "+ can broadcast one offer.")
end
end

return true
end

 

*data/talkactions/talkactions.xml:

<talkaction words="!buy" event="script" value="buy.lua"/>
<talkaction words="!sell" event="script" value="sell.lua"/>

 

Bom, a única coisa que eu deixei meio "torto" é o caso de um player novo que ainda não tem o storage solicitado. Neste caso, o player terá que dizer duas vezes o comando, uma para criar o storage e outra para alterá-lo e dar broadcast. Mas só deixei assim pois alguém que entenda de script pode querer alterar esta parte de criar o primeiro storage para apenas players que tenham cumprido alguma quest ou que sejam VIP tenham o tal do storage. Aí eles so precisam procurar a linha certa e remover, junto com seu respectivo "end".

Ai as screenshots:

 

Editado por Half Blood

Compartilhar este post


Link para o post
Flatronez    1
Flatronez

Movido.

Editado por Flatronez

Compartilhar este post


Link para o post
Half Blood    0
Half Blood

vlw por aprovar e mover Flatronez...

Compartilhar este post


Link para o post
Hauntedy    0
Hauntedy

Gostei, ficou bem legal e bem no estilo de alguns servidores de outros RPG como MU.

 

Mesmo eu me decepcionando achando que iria ser uma troca a distancia e nao um trade-chat em broadcast eu curti... vlw aew :yes:

Compartilhar este post


Link para o post
Half Blood    0
Half Blood

@Hauntedy

 

Vlw kra, o sistema a distancia de trade, alem de já termos aki na comunidade, parece mto complicado pra mim :D :coolface:OiaeuMae

Compartilhar este post


Link para o post
ADM MaX DE    0
ADM MaX DE

Lglzinho o sistema, embora que se o serv for bem movimentado, ia virar uma zona akele monte de broadcast x]

 

Ageita as SS's ae, ficar abrindo um monte de link é ruim

 

cya!

Compartilhar este post


Link para o post
Half Blood    0
Half Blood

@Max Max Ot

 

É por isso que coloquei que o player só pode falar de dois em dois minutos... E as SS's têm q ser assim, pq botei aki no fórum direitin, so q axo q, por bug do forum, nao abriram, ai nao pode ser aprovado o tuto... Ai tive que botar assim msm....

Compartilhar este post


Link para o post
dyegodb    0
dyegodb

Pena que não em um comando que diga quais itens estão a venda

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×