DE
pedido

Ganha Addon Exclusivo ao usar item!

Por Dennyz Dias, 06 de nov. de 2015 em Scripts

resolvido
script
17
3.7k
Dennyz DiasD
06 de novembro de 2015 às 12:17

Dae galera, preciso 1 script se alguem puder me ajudar

 

Player Clika no item X ganha addon configurado

 

que o addon va po oufits dele

SkyLighS
06 de novembro de 2015 às 16:06

passa o id do addon ou newtype seria uma newtype ou um addon?

AhehFe97A
06 de novembro de 2015 às 16:25

fiz pelo cell, tenta assim, nao testei

 

 

 

local config = {

item = ID_DO_ITEM,

addon = STORAGE DO ADDON,

}

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

 

if getPlayerStorageValue(cid, config.addon) >= 1 then

doPlayerSendTextMessage(cid, "Você já recebeu esse addon")

end

 

if item.itemid = config.item then

doPlayerSendTextMessage(cid,22,"Você recebeu um Addon.")

setPlayerStorageValue(cid, config.addon, 1)

return true

end

end

 

 

-- coloca essa tag no xml

 

<action itemid="ID_DO_ITEM" event="script" value="nome_do_arquivo"/>

 

 

 

ai em data/xml/outfits

 

aciona uma nova outfit tipo assim

ex:

<outfit id="id_outfit" quest="storage_da_quest, a mesma do script no action" vocation="1">
<list gender="Numero_sexo" lookType="numero_do_lookType" name="Nome_da_outfit"/>
</outfit>
Dennyz DiasD
06 de novembro de 2015 às 16:59

 

fiz pelo cell, tenta assim, nao testei

 

 

 

local config = {

item = ID_DO_ITEM,

addon = STORAGE DO ADDON,

}

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

 

if getPlayerStorageValue(cid, config.addon) >= 1 then

doPlayerSendTextMessage(cid, "Você já recebeu esse addon")

end

 

if item.itemid = config.item then

doPlayerSendTextMessage(cid,22,"Você recebeu um Addon.")

setPlayerStorageValue(cid, config.addon, 1)

return true

end

end

 

 

-- coloca essa tag no xml

 

<action itemid="ID_DO_ITEM" event="script" value="nome_do_arquivo"/>

 

 

 

ai em data/xml/outfits

 

aciona uma nova outfit tipo assim

ex:

<outfit id="id_outfit" quest="storage_da_quest, a mesma do script no action" vocation="1">
<list gender="Numero_sexo" lookType="numero_do_lookType" name="Nome_da_outfit"/>
</outfit>

 

Nao foi parça

passa o id do addon ou newtype seria uma newtype ou um addon?

newtype pode bota o 69 mesmo porinquanto

SkyLighS
06 de novembro de 2015 às 17:45

data/actions/scripts/ e crie um arquivo.lua chamado addonex.lua e adicione o seguinte código :

function onUse(cid, item, frompos, item2, topos)             
 
local config={
removeOnUse = "yes", -- remover quando usar ("yes" or "no")
id = 69 --- id da newtype
}
 
addonstatus = getPlayerStorageValue(cid,28103)
if addonstatus == -1 or addonstatus == 0 then
 
elseif (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
doPlayerAddOutfit(cid, config.id, 3)
setPlayerStorageValue(cid,28103,1)
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, 22, "Parabéns você ganhou uma nova outfit")
else
doPlayerSendTextMessage(cid,22,"Você já ganhou a outfit")
end
return true
end
em actions.xml
        <action itemid="ID DO ITEM" event="script" value="addonex.lua"/>
e veja este TUTORIAL para aprender adicionar novas outfits no servidor, siga o tutorial para que o script funcione normal e coloque o id da outfit que vai ser usado no script.
Dennyz DiasD
07 de novembro de 2015 às 09:18

 

data/actions/scripts/ e crie um arquivo.lua chamado addonex.lua e adicione o seguinte código :

function onUse(cid, item, frompos, item2, topos)             
 
local config={
removeOnUse = "yes", -- remover quando usar ("yes" or "no")
id = 69 --- id da newtype
}
 
addonstatus = getPlayerStorageValue(cid,28103)
if addonstatus == -1 or addonstatus == 0 then
 
elseif (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
doPlayerAddOutfit(cid, config.id, 3)
setPlayerStorageValue(cid,28103,1)
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, 22, "Parabéns você ganhou uma nova outfit")
else
doPlayerSendTextMessage(cid,22,"Você já ganhou a outfit")
end
return true
end
em actions.xml
        <action itemid="ID DO ITEM" event="script" value="addonex.lua"/>
e veja este TUTORIAL para aprender adicionar novas outfits no servidor, siga o tutorial para que o script funcione normal e coloque o id da outfit que vai ser usado no script.

 

Não foi manow , nao da erro em nada , quando cliko no item ele nao fais nada

item :8985

SkyLighS
07 de novembro de 2015 às 14:04

tenta assim

 

 

function onUse(cid, item, frompos, item2, topos)             
 
local config={
removeOnUse = "yes", -- remover quando usar ("yes" or "no")
id = 69 --- id da newtype
}
 
if item.uid == 8985 then
addonstatus = getPlayerStorageValue(cid,28103)
if addonstatus == -1 or addonstatus == 0 then
 
elseif (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
doPlayerAddOutfit(cid, config.id, 3)
setPlayerStorageValue(cid,28103,1)
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, 22, "Parabéns você ganhou uma nova outfit")
else
doPlayerSendTextMessage(cid,22,"Você já ganhou a outfit")
end
return true
end
end
Dennyz DiasD
08 de novembro de 2015 às 14:09

 

tenta assim

function onUse(cid, item, frompos, item2, topos)             
 
local config={
removeOnUse = "yes", -- remover quando usar ("yes" or "no")
id = 69 --- id da newtype
}
 
if item.uid == 8985 then
addonstatus = getPlayerStorageValue(cid,28103)
if addonstatus == -1 or addonstatus == 0 then
 
elseif (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
doPlayerAddOutfit(cid, config.id, 3)
setPlayerStorageValue(cid,28103,1)
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, 22, "Parabéns você ganhou uma nova outfit")
else
doPlayerSendTextMessage(cid,22,"Você já ganhou a outfit")
end
return true
end
end

tambem nao manow mesmo jeito

AhehFe97A
08 de novembro de 2015 às 15:22

cara, faz pra ganhar a outfit por storage ¬¬

BluesterB
08 de novembro de 2015 às 19:22

Tenta esse, mas é por talkaction e eu não testei.

 

data/talkactions/scripts e crie um arquivo chamado addonplayer.lua:

 

 

function onSay(cid, words, param, channel)

local cfg = {
["NOMEDAOUTFIT"] = {
outfit = {
male = 518, -- ID DA OUTFIT MALE
female = 519, -- ID DA OUTFIT FEMALE
addon = 3, -- NUMERO DE ADDONS QUE SERAO LIBERADOS
storage = 11002
},
items = {
{2160,1} --- (IDDOITEM, QUANTIDADE}.
}
}
}
local v, removeItems = cfg[param], 0, 0
if(param == "") then
doPlayerSendCancel(cid, "Command requires param.")
return true
end
if (not isPremium(cid)) then
doPlayerSendCancel(cid, "Você não é premium account.")
return true
end
if(getPlayerStorageValue(cid, v.outfit.storage) == -1) then
for i = 1, #v.items do
if(getPlayerItemCount(cid, v.items[1]) >= v.items[2]) then
removeItems = removeItems+1
end
end
if(removeItems == #v.items) then
if(getPlayerSex(cid) == 1) then
doPlayerAddOutfit(cid, v.outfit.male, v.outfit.addon)
elseif(getPlayerSex(cid) == 0) then
doPlayerAddOutfit(cid, v.outfit.female, v.outfit.addon)
end
for i = 1, #v.items do
doPlayerRemoveItem(cid, v.items[1], v.items[2])
end
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu seus addons!")
doSendMagicEffect(getThingPos(cid), CONST_ME_FIREWORK_YELLOW)
setPlayerStorageValue(cid, v.outfit.storage, 1)
else
for i = 1, #v.items do
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você precisa de " .. v.items[2] .. "x " .. getItemNameById(v.items[1]) .. " para comprar os addons.")
end
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você já possui esses addons.")
end
return true
end

data/talkcations/talkactions.xml:

<talkaction words="!addon" case-sensitive="no" event="script" value="addonplayer.lua"/>

OBS: Para o comando funcionar, use o comando + nome da outfit no script, exemplo: !addon citizen
é isso, sei que não é o que você pediu, mas pode ser funcional :)

Editado Novembro 8 por Bluester

SkyLighS
08 de novembro de 2015 às 21:18

Dennyz qual tfs? ou versão do servidor e ocorre erro no distro?

Dennyz DiasD
09 de novembro de 2015 às 08:40

Dennyz qual tfs? ou versão do servidor e ocorre erro no distro?

0.4

8.6

rev 3777

nao ocorre erro

apenas nao fas nada

SkyLighS
09 de novembro de 2015 às 11:40
function onUse(cid, item, fromPosition, itemEx, toPosition)          
 
local config={
id = 69 --- id da newtype
}
 
if item.uid == 8985 then
queststatus = getPlayerStorageValue(cid,60397)
if queststatus == -1 then
doPlayerAddOutfit(cid, config.id, 3)
doRemoveItem(item.uid,1)
doPlayerSendTextMessage(cid, 22, "Parabéns você ganhou uma nova outfit")
setPlayerStorageValue(cid,60397,1)
else
doPlayerSendTextMessage(cid,22,"Você já ganhou a outfit")
end
return true
end
end

lembre-se de adicionar o addon no seu servidor, no tutorial que deixei lá no outro post.

Dennyz DiasD
09 de novembro de 2015 às 14:17
function onUse(cid, item, fromPosition, itemEx, toPosition)          
 
local config={
id = 69 --- id da newtype
}
 
if item.uid == 8985 then
queststatus = getPlayerStorageValue(cid,60397)
if queststatus == -1 then
doPlayerAddOutfit(cid, config.id, 3)
doRemoveItem(item.uid,1)
doPlayerSendTextMessage(cid, 22, "Parabéns você ganhou uma nova outfit")
setPlayerStorageValue(cid,60397,1)
else
doPlayerSendTextMessage(cid,22,"Você já ganhou a outfit")
end
return true
end
end

lembre-se de adicionar o addon no seu servidor, no tutorial que deixei lá no outro post.

 

aa manow nada ainda PQP porq sera, nao da erro nao da nada

ta tudo serto , se nao era pra mostra no distro...

 

 

Mais achei 1 aki fuçano na net esse funfou...

 

 

 

function onUse(cid, item)

 

local cfg = {

 

addon_name = "Citizen", -- NOME DO ADDON

addon_male = xxx,

addon_female = xxx,

storage = 9784 -- Lembre-se de trocar o numero da storage em cada item

}

if getPlayerStorageValue(cid, cfg.storage) < 1 then

doPlayerAddOutfit(cid, cfg.addon_male, 3)

doPlayerAddOutfit(cid, cfg.addon_female, 3)

doSendMagicEffect(getThingPos(cid), 29)

doPlayerSendTextMessage(cid, 19, "Addon " .. cfg.addon_name .. "full adicionado!!")

doRemoveItem(item.uid, 1)

setPlayerStorageValue(cid, cfg.storage, 1)

else

doPlayerSendTextMessage(cid, 19, "you already have this adon.")

end

 

return true

end

 

REP + QUEM TENTO AJUDA AI

Editado Novembro 9 por Dennyz Dias

12 de novembro de 2015 às 21:50
Melhor resposta

Cara, eu acabei de fazer um tutorial pra você, quando fui ver o fim do tópico, você tinha editado acrescentando que achou um script que funcionou .. hahahaha'

 

Mas, como o tópico não foi fechado e marcado como "resolvido", vou deixar aqui um código, talvez tenha outra pessoa com a mesma dúvida, vai saber..

 

Primeiro de tudo, vá em: Data, XML, outfits.xml

Adicione:

<outfit id="37" quest="60397" vocation="4">
          <list gender="1" lookType="69" name="Teste"/>
     </outfit>
"Reload não adianta com isso, tem que reiniciar o server mesmo."

 

Logo após, vá em: data/actions/script, ponha:

 

function onUse(cid, item, fromPosition, toPosition)          
 
          
local config = {
slot = "True", -- Quer que o item precise estar equipado ? Se sim, mude para "True", se não, deixe em "False" mesmo... Lembrando que True ou False, tem a primeira letra em maiúscula.. "False, True".
slotid = 10, -- Não altere.
id = 69, -- id da newtype
item = 2167, -- Ponha qual item você quiser.
}
 
if config.slot == "True" then
            local item = getPlayerSlotItem(cid, config.slotid)
                  if item.uid <= 1 or item.itemid ~= config.item then
                  doPlayerSendTextMessage(cid, 27, "Você tem que estar com a "..getItemNameById(config.item).." equipada no lugar das munições, em baixo do seu shield.")
                     doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
                  return true
                  end
         end
          
          if item.itemid == config.item then
             local storage = 60397 -- Não altere.
             local removeitem = 2167 -- Mais uma vez, deixa aqui o ID do item que tu tá usando. hehe

                   if getPlayerStorageValue(cid, storage) < 1 then
                       doPlayerAddOutfit(cid, config.id, 3)
                       doPlayerRemoveItem(cid, removeitem, 1) 
                       doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou uma nova outfit.")
                       setPlayerStorageValue(cid, storage, 1)
                       doSendMagicEffect(getThingPos(cid), 51)
                       doPlayerSendTextMessage(cid, 27, "O item foi removido pois você acabou de usa-lo.")
                   else
                       doPlayerSendTextMessage(cid,22,"Você já ganhou a outfit.")
                   end
    return true
end
end

E use a Tag:

<action itemid="id_do_Item" event="script" value="nomedoarquivo.lua"/>

Vlw :/ kk'

 

 

Editado Novembro 12 por christopher17288