Ir para conteúdo
  • 0

[Script] StorageValue


KarlKalvin

Pergunta

To com esse script aqui...

 

 

 


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

local chance = 10 -- chance de cortar
local madeiras = {17180, 17081, 17182, 17183} -- item que o player irá ganhar
local premio = madeiras[math.random(1, #madeiras)]
local transformItem = 0
local texts = {"Coletando Informações..."}  -- texto que irá aparecer quando usar o item
local randoms = texts[math.random(1,#texts)]
local time = 2 -- Minutos para crescer novamente
local tempo = 1
local outfit = 38                   -- ID da Outfit Male.
local outfit2 = 31                  -- ID da Outfit Female.

if isRiderOrFlyOrSurf(cid) then
   return doPlayerSendCancel(cid, MSG_NAO_E_POSSIVEL)
end

   local name = getItemNameById(item2.itemid)
    if not name:find("fainted") then
 doPlayerSendCancel(cid, MSG_NAO_E_POSSIVEL)
 return true
end
 
if getPlayerStorageValue(cid, 12015) ~= 1 then
doPlayerSendCancel(cid, "Nao pode.")
return true
end

   if getPlayerSex(cid) == 1 then
      doSetCreatureOutfit(cid, {lookType = outfit, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, time*1*1000)  --  Tempo em que a outfit estará trocada.
   else
       doSetCreatureOutfit(cid, {lookType = outfit2, lookHead = 0, lookAddons = 0, lookLegs = 0, lookBody = 0, lookFeet = 0}, time*1*1000)  --  Tempo em que a outfit estará trocada.
end
doCreatureSetNoMove(cid, true)
addEvent(function()
    if not isPlayer(cid) then return true end
    doCreatureSetNoMove(cid, false)
end, 1000)


    local name = getItemNameById(item2.itemid)
    if name:find("fainted") then
                    if math.random(1,100) >= chance then
                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)
                        item = doCreateItemEx(premio, math.random(2,5))
                        doItemSetAttribute(item, "unique", getCreatureName(cid))
                        doPlayerAddItemEx(cid, item)
                        addEvent(doCreatureSetNoMove, cid, false)
                        addEvent(doPlayerSendTextMessage, cid, 22, "Você coletou informações e ganhou pontos.")
    else
                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)
                        addEvent(doCreatureSetNoMove, cid, false)
                        addEvent(doPlayerSendTextMessage, cid,22,"Você não conseguiu coletar.")
                end
            end
    return true
end

 

 

Está funcionando perfeitamente só que ele tá podendo escanear o mesmo corpo 1x,2x,3x várias vezes e eu quero que o player só possa escanear o corpo 1 vez.

Alguém pode me ajudar? Obrigado!

 

POSTEI NA ÁREA ERRADA, DESCULPE. MOVA POR FAVOR.

Editado por KarlKalvin
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

 

1 hora atrás, Gabriel Netto disse:

 

Apaga tudo dps do if name:find e adiciona isso:

	if name:find("fainted") and item2.aid ~= 4432 then                    if math.random(1,100) >= chance then						doSetItemActionId(aid, 4432)                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)                        item = doCreateItemEx(premio, math.random(2,5))                        doItemSetAttribute(item, "unique", getCreatureName(cid))                        doPlayerAddItemEx(cid, item)                        addEvent(doCreatureSetNoMove, cid, false)                        addEvent(doPlayerSendTextMessage, cid, 22, "Você coletou informações e ganhou pontos.")    else						doSetItemActionId(aid, 4432)                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)                        addEvent(doCreatureSetNoMove, cid, false)                        addEvent(doPlayerSendTextMessage, cid,22,"Você não conseguiu coletar.")                	end	end    return trueend

 

Eu quero que o item seja unico, viu que no script tem essa função? e eu vi que o cara falou que da pra trocar o aid por uid

 

EDIT: NÃO FUNCIONOU! que actionid é esse que no meu actions.xml não tem entendi nada ai..

Editado por KarlKalvin
Link para o comentário
Compartilhar em outros sites

  • 0
15 minutos atrás, KarlKalvin disse:

 

 

Eu quero que o item seja unico, viu que no script tem essa função? e eu vi que o cara falou que da pra trocar o aid por uid

 

EDIT: NÃO FUNCIONOU! que actionid é esse que no meu actions.xml não tem entendi nada ai..

 

Nunca usei aid nesses casos, mas tenta assim (se der erro, tenta registrar esse aid no xml):

if name:find("fainted") and item2.aid ~= 4432 then                    if math.random(1,100) >= chance then						doSetItemActionId(item2.uid, 4432)                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)                        item = doCreateItemEx(premio, math.random(2,5))                        doItemSetAttribute(item, "unique", getCreatureName(cid))                        doPlayerAddItemEx(cid, item)                        addEvent(doCreatureSetNoMove, cid, false)                        addEvent(doPlayerSendTextMessage, cid, 22, "Você coletou informações e ganhou pontos.")    else						doSetItemActionId(item2.uid, 4432)                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)                        addEvent(doCreatureSetNoMove, cid, false)                        addEvent(doPlayerSendTextMessage, cid,22,"Você não conseguiu coletar.")                	end	end    return trueend

 

Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, Gabriel Netto disse:

 

Nunca usei aid nesses casos, mas tenta assim (se der erro, tenta registrar esse aid no xml):

if name:find("fainted") and item2.aid ~= 4432 then                    if math.random(1,100) >= chance then						doSetItemActionId(item2.uid, 4432)                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)                        item = doCreateItemEx(premio, math.random(2,5))                        doItemSetAttribute(item, "unique", getCreatureName(cid))                        doPlayerAddItemEx(cid, item)                        addEvent(doCreatureSetNoMove, cid, false)                        addEvent(doPlayerSendTextMessage, cid, 22, "Você coletou informações e ganhou pontos.")    else						doSetItemActionId(item2.uid, 4432)                        doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)                        addEvent(doCreatureSetNoMove, cid, false)                        addEvent(doPlayerSendTextMessage, cid,22,"Você não conseguiu coletar.")                	end	end    return trueend

 

Tem uns errinhos aí kk, no addEvent você não colocou o tempo, apenas a função e os parâmetros... Vou refazer e mandar aqui:

 

	tempo = 5 -- Segundos em que "paralisia" fica no player 	if name:find("fainted") and item2.aid ~= 4432 then		if math.random(1,100) >= chance then			doSetItemActionId(item2.uid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			item = doCreateItemEx(premio, math.random(2,5))			doItemSetAttribute(item, "unique", getCreatureName(cid))			doPlayerAddItemEx(cid, item)			doCreatureSetNoMove(cid, false)			doPlayerSendTextMessage(cid, 22, "Você coletou informações e ganhou pontos.")		else			doSetItemActionId(item2.uid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			addEvent(function()				doCreatureSetNoMove(cid, false)				doPlayerSendTextMessag(cid,22,"Você não conseguiu coletar.")					end, time * 1000)		end	end    return trueend

Ah, faça a mesma coisa que o carinha falou só que ao invés de usar o code q ele postou use esse acima!

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Drazyn disse:

Tem uns errinhos aí kk, no addEvent você não colocou o tempo, apenas a função e os parâmetros... Vou refazer e mandar aqui:

 

	tempo = 5 -- Segundos em que "paralisia" fica no player 	if name:find("fainted") and item2.aid ~= 4432 then		if math.random(1,100) >= chance then			doSetItemActionId(item2.uid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			item = doCreateItemEx(premio, math.random(2,5))			doItemSetAttribute(item, "unique", getCreatureName(cid))			doPlayerAddItemEx(cid, item)			doCreatureSetNoMove(cid, false)			doPlayerSendTextMessage(cid, 22, "Você coletou informações e ganhou pontos.")		else			doSetItemActionId(item2.uid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			addEvent(function()				doCreatureSetNoMove(cid, false)				doPlayerSendTextMessag(cid,22,"Você não conseguiu coletar.")					end, time * 1000)		end	end    return trueend

Ah, faça a mesma coisa que o carinha falou só que ao invés de usar o code q ele postou use esse acima!

Grande Drazyn heahau, nem tinha percebido. Aliás, tenho dúvidas pra kct com esse addEvent.

Ele é nativo do lua? E as funções criadas nele, são locais, né? 

Link para o comentário
Compartilhar em outros sites

  • 0
Agora, Gabriel Netto disse:

Sem erros na distro?

[23/08/2016 21:45:49] [Error - Action Interface] 

[23/08/2016 21:45:49] In a timer event called from: 

[23/08/2016 21:45:49] data/actions/scripts/profi.lua:onUse

[23/08/2016 21:45:49] Description: 

[23/08/2016 21:45:49] data/actions/scripts/profi.lua:62: attempt to call global 'doPlayerSendTextMessag' (a nil value)

[23/08/2016 21:45:49] stack traceback:

[23/08/2016 21:45:49]     data/actions/scripts/profi.lua:62: in function <data/actions/scripts/profi.lua:60>

 

Deu isso aqui mas não tem anda haver! tá funcionando "normal" porém coletando sempre várias vezes.

 

Acho melhor trabalhar mesmo com o atributo, mas se for usar o atributo de name irá alterar na config de catch então não daria certo...

Editado por KarlKalvin
Link para o comentário
Compartilhar em outros sites

  • 0
Agora, KarlKalvin disse:

[23/08/2016 21:45:49] [Error - Action Interface] 

[23/08/2016 21:45:49] In a timer event called from: 

[23/08/2016 21:45:49] data/actions/scripts/profi.lua:onUse

[23/08/2016 21:45:49] Description: 

[23/08/2016 21:45:49] data/actions/scripts/profi.lua:62: attempt to call global 'doPlayerSendTextMessag' (a nil value)

[23/08/2016 21:45:49] stack traceback:

[23/08/2016 21:45:49]     data/actions/scripts/profi.lua:62: in function <data/actions/scripts/profi.lua:60>

 

Deu isso aqui mas não tem anda haver! tá funcionando "normal" porém coletando sempre várias vezes.

O Gabriel apagou o Message sem querer ;p

 

Tenta assim:

	tempo = 5 -- Segundos em que "paralisia" fica no player 	if name:find("fainted") and item2.aid ~= 4432 then		if math.random(1,100) >= chance then			doSetItemActionId(item2.itemid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			item = doCreateItemEx(premio, math.random(2,5))			doItemSetAttribute(item, "unique", getCreatureName(cid))			doPlayerAddItemEx(cid, item)			doCreatureSetNoMove(cid, false)			doPlayerSendTextMessage(cid, 22, "Você coletou informações e ganhou pontos.")		else			doSetItemActionId(item2.itemid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			addEvent(function()				doCreatureSetNoMove(cid, false)				doPlayerSendTextMessage(cid,22,"Você não conseguiu coletar.")					end, time * 1000)		end	end    return trueend

 

Link para o comentário
Compartilhar em outros sites

  • 0
1 minuto atrás, Gabriel Netto disse:

O Gabriel apagou o Message sem querer ;p

 

Tenta assim:

	tempo = 5 -- Segundos em que "paralisia" fica no player 	if name:find("fainted") and item2.aid ~= 4432 then		if math.random(1,100) >= chance then			doSetItemActionId(item2.itemid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			item = doCreateItemEx(premio, math.random(2,5))			doItemSetAttribute(item, "unique", getCreatureName(cid))			doPlayerAddItemEx(cid, item)			doCreatureSetNoMove(cid, false)			doPlayerSendTextMessage(cid, 22, "Você coletou informações e ganhou pontos.")		else			doSetItemActionId(item2.itemid, 4432)			doSendAnimatedText(topos, ""..randoms.."", TEXTCOLOR_GREEN)			addEvent(function()				doCreatureSetNoMove(cid, false)				doPlayerSendTextMessage(cid,22,"Você não conseguiu coletar.")					end, time * 1000)		end	end    return trueend

 

 

Funcionando "normalmente" porém ainda escaneando o mesmo corpo várias vezes

 

 

 

 

[23/08/2016 21:53:02] [Error - Action Interface] 

[23/08/2016 21:53:02] data/actions/scripts/profi.lua:onUse

[23/08/2016 21:53:02] Description: 

[23/08/2016 21:53:02] (luaDoItemSetAttribute) Item not found

 

 

Erro de configuração básico

Link para o comentário
Compartilhar em outros sites

  • 0
21 minutos atrás, KarlKalvin disse:

 

Funcionando "normalmente" porém ainda escaneando o mesmo corpo várias vezes

 

 

 

Erro de configuração básico

Esse erro aí não é do actionId, já que tá falando de setAttribute...

Não sei qual pode ser o problema de lógica, se algum scripter mais experiente quiser intervir please

 

Link para o comentário
Compartilhar em outros sites

  • 0
16 minutos atrás, Gabriel Netto disse:

Esse erro aí não é do actionId, já que tá falando de setAttribute...

Não sei qual pode ser o problema de lógica, se algum scripter mais experiente quiser intervir please

 

 

Me explica oque significa >= 1, <= 1, == 1, ~=1, e == null?

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...