Ir para conteúdo

Featured Replies

Postado

adiciona a função que citei.

 

e vê se funciona esse aqui:

talkactions

function onSay(cid, words, param, param2, channel)

local t = string.explode(param, ",")
local target = getCreatureByName(t[1])
local points = tonumber(t[2])
local item = 2233
local storage = 21223

if(param == '') then
	return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
end

if (target ~= nil) and isPlayer(target) and not isPlayerGhost(target) then
	if (points ~= nil) and (type(points) == 'number') and (points>0) then
		if getPlayerVipPoints(cid) > points then
			local addItem = doPlayerAddItem(cid, item, 1)
			doStartTrade(cid, target, addItem)
			doItemSetAttribute(addItem, "description", "Transferência de "..points.." premium points.")
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você deu trade no jogador "..getPlayerName(target)..", com a intenção de trocar "..points.." premium points.")
			doPlayerSendTextMessage(target, MESSAGE_INFO_DESCR, "O Jogador "..getPlayerName(cid).." deu trade em você, e está disposto a trocar "..points.." premium points.")
			setPlayerStorageValue(cid, storage, points)
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem essa quantidade de premium points.")
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")
	end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")
end

return true
end

 

creaturescripts:

function onTradeAccept(cid, target, item)

local storage = 21223

local sto = getPlayerStorageValue(cid, storage)
if sto > 0 then
	doPlayerRemoveVipPoints(cid, sto)
	doPlayerAddVipPoints(target, sto)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você trocou "..sto.." premium points, Parabéns.")
	doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_BLUE, "Você realizou uma troca e adquiriu "..sto.." premium points, Parabéns.")
	setPlayerStorageValue(cid, storage, 0)
end

return true
end

 

nesse caso você vai usar !trade NomeDoOutroPlayer, Quantidade de points. Exemplo: !trade Eduardo, 3

 

acho que deu pra ter uma boa base de como funciona..

não entendi direito esse do npc

  • Respostas 30
  • Visualizações 3.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • adiciona a função que citei.   e vê se funciona esse aqui: talkactions function onSay(cid, words, param, param2, channel) local t = string.explode(param, ",") local target = getCre

  • achei um script similar :   pelo que eu intendi através de um comando o player transfere os pontos para outro players, porém queria usar um "X"  item por "trade" para efetuar a troca dos poi

  • Em luascript.h, adicione essa linha:   static int32_t luaDoStartTrade(lua_State* L); coloca abaixo de linhas parecidas.     Em luascript.cpp, adicione isso: //doStartTrade(

Postado
7 minutos atrás, Ed.Specter disse:

adiciona a função que citei.

 

e vê se funciona esse aqui:

talkactions


function onSay(cid, words, param, param2, channel)

local t = string.explode(param, ",")
local target = getCreatureByName(t[1])
local points = tonumber(t[2])
local item = 2233
local storage = 21223

if(param == '') then
	return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
end

if (target ~= nil) and isPlayer(target) and not isPlayerGhost(target) then
	if (points ~= nil) and (type(points) == 'number') and (points>0) then
		if getPlayerVipPoints(cid) > points then
			local addItem = doPlayerAddItem(cid, item, 1)
			doStartTrade(cid, target, addItem)
			doItemSetAttribute(addItem, "description", "Transferência de "..points.." premium points.")
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você deu trade no jogador "..getPlayerName(target)..", com a intenção de trocar "..points.." premium points.")
			doPlayerSendTextMessage(target, MESSAGE_INFO_DESCR, "O Jogador "..getPlayerName(cid).." deu trade em você, e está disposto a trocar "..points.." premium points.")
			setPlayerStorageValue(cid, storage, points)
		else
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não tem essa quantidade de premium points.")
		end
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")
	end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")
end

return true
end

 

creaturescripts:


function onTradeAccept(cid, target, item)

local storage = 21223

local sto = getPlayerStorageValue(cid, storage)
if sto > 0 then
	doPlayerRemoveVipPoints(cid, sto)
	doPlayerAddVipPoints(target, sto)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você trocou "..sto.." premium points, Parabéns.")
	doPlayerSendTextMessage(target, MESSAGE_STATUS_CONSOLE_BLUE, "Você realizou uma troca e adquiriu "..sto.." premium points, Parabéns.")
	setPlayerStorageValue(cid, storage, 0)
end

return true
end

 

nesse caso você vai usar !trade NomeDoOutroPlayer, Quantidade de points. Exemplo: !trade Eduardo, 3

 

acho que deu pra ter uma boa base de como funciona..

não entendi direito esse do npc

Booa, pow é chato mais faz um Tutorial ae com a base no que falei tambem, o do NPC, tipo...

O Transfer Points Documento vai ser vendido junto com o NPC que vende Parcel!

Só vai adicionar para ele vender um certo ID, um ID de uma folha, um Jornal, entendeu? Vamos dizer que esse documento se chama "Transfer Points Documento", você compra esse "Jornal" no npc sem valer nada, você da look, só aparece o nome do Item e o peso!

Ae com uma Talkactions por exemplo "!transfer 11 points documento" ae esse documento iria passar ter 11 Points nele entendeu?

Tipo a pessoa da Look e iria aparecer a quantidade de Points que aquele Documento passou a ter, claro que só ia transferir pontos para o Documento caso ele tenha essses pontos para ser transferido né..

Postado
7 horas atrás, Digoshow disse:

Booa, pow é chato mais faz um Tutorial ae com a base no que falei tambem, o do NPC, tipo...

O Transfer Points Documento vai ser vendido junto com o NPC que vende Parcel!

Só vai adicionar para ele vender um certo ID, um ID de uma folha, um Jornal, entendeu? Vamos dizer que esse documento se chama "Transfer Points Documento", você compra esse "Jornal" no npc sem valer nada, você da look, só aparece o nome do Item e o peso!

Ae com uma Talkactions por exemplo "!transfer 11 points documento" ae esse documento iria passar ter 11 Points nele entendeu?

Tipo a pessoa da Look e iria aparecer a quantidade de Points que aquele Documento passou a ter, claro que só ia transferir pontos para o Documento caso ele tenha essses pontos para ser transferido né..

 

posta o npc. faço pra vc.

7 horas atrás, Digoshow disse:

Booa, pow é chato mais faz um Tutorial ae com a base no que falei tambem, o do NPC, tipo...

O Transfer Points Documento vai ser vendido junto com o NPC que vende Parcel!

Só vai adicionar para ele vender um certo ID, um ID de uma folha, um Jornal, entendeu? Vamos dizer que esse documento se chama "Transfer Points Documento", você compra esse "Jornal" no npc sem valer nada, você da look, só aparece o nome do Item e o peso!

Ae com uma Talkactions por exemplo "!transfer 11 points documento" ae esse documento iria passar ter 11 Points nele entendeu?

Tipo a pessoa da Look e iria aparecer a quantidade de Points que aquele Documento passou a ter, claro que só ia transferir pontos para o Documento caso ele tenha essses pontos para ser transferido né..

 

fiz aqui, não testei tudo...
testa tudo ai, e se achar qualquer bug me avisa!
desculpem a bagunça, faz um tempo que não faço um script assim..

 

em data/talkactions/scripts cria um arquivo lua e coloca isso dentro:

Spoiler

local item_Id = 2161 -- id do item para a transferencia

function checkItem(cid, item1)

tabelaItem = {}

for i = 0, getContainerSize(item1.uid)-1 do
    local item2 = getContainerItem(item1.uid, i)
        if not isContainer(item2.uid) then
            if item2.itemid == item_Id and item2.actionid <= 0 then
                table.insert(tabelaItem, item2)
                break
            end
        else
            if getContainerSize(item2.uid) > 0 then
                checkItem(cid, item2)
            end
        end
end

end

function transf(cid, points, itemx)
    doItemSetAttribute(itemx.uid, "aid", points)
    doItemSetAttribute(itemx.uid, "description", "Nesse item contem "..points.." premium points.")
    doPlayerRemoveVipPoints(cid, points)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tranferiu "..points.." premium points para o item "..getItemNameById(item_Id)..".")
end

function onSay(cid, words, param, param2, channel)

local item_Id = 2161 -- id do item para a transferencia
tabelaItem = {}

if(param == '') then
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
end

local points = tonumber(param)

if (type(points) == 'number') and (points>0) then
    if getPlayerVipPoints(cid) > points then
        if getPlayerItemCount(cid, item_Id) > 0 then
            for i=1, 10 do
                local item1 = getPlayerSlotItem(cid, i)
                if item1.itemid > 0 then
                    if isContainer(item1.uid) then
                        if getContainerSize(item1.uid) > 0 then
                            checkItem(cid, item1)
                        end
                    else
                        if item1.itemid == item_Id and item1.actionid <= 0 then
                            table.insert(tabelaItem, item1)
                            break
                        end
                    end
                end
            end
            if #tabelaItem > 0 then
                transf(cid, points, tabelaItem[1])
            else
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O(s) item(s) "..getItemNameById(item_Id).." que você tem já contem premium points.")
            end    
        else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem o item "..getItemNameById(item_Id).." que é necessário para a tranferencia.")
        end
    else
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem essa quantidade de premium points.")
    end
else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.")
end

return true
end

 

em talkactions.xml coloca a tag:

talkaction words="!transferir(ou oq vc desejar)" event="script" value="NomeDoArquivo.lua"/>

 

em data/actions/scripts cria um arquivo.lua e coloca isso dentro:

Spoiler

function onUse(cid, item, frompos, item2, topos)

local points = item.actionid

if points > 0 then
    doPlayerAddVipPoints(cid, points)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu "..points.." premium points.")
    doSendMagicEffect(getCreaturePosition(cid), 30)
    doRemoveItem(item.uid)
end

return true
end

 

em actions.xml coloca a tag:

<action itemid="2161(id do item)" script="NomeDoArquivo.lua"/>

 

ai é só colocar o item pra vender no npc, ou como você desejar que os players consigam o item.

Editado por Ed.Specter (veja o histórico de edições)

Postado

Eu não pude testar ainda, vou ver se arrumo algo pra testar sem site, ae eu aviso aqui!!!

 

Porem amigo, porque você não faz um Tutorial, seria ótimo e bem organizado alem de ser um bom Tutorial..

Ou se quiser eu faço e coloco seus Creditos!

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo