Ir para conteúdo

Featured Replies

Postado

Eai pessoal do TK eu queria saber como resolver esse seguinte problema, toda vez que eu matar um monstro quero que minha storage 52800 aumente em +1 eu tentei fazer o seguinte:

setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) mas não funciona se eu por só setPlayerStorageValue(cid, Storage, 1) ele funciona mas só conta até 1 pois não estou incrementando e sim setando.. segue o Script:


 

Spoiler

function onDeath(cid, corpse, deathList)
local Storage,monstName = 52800, "bandit swordman"
local count = 31
local value = getPlayerStorageValue(cid, 52800)

for _, check in pairs(deathList) do
    if isPlayer(check) then
        if getPlayerStorageValue(cid, Storage) < count then
            setPlayerStorageValue(check, Storage, 1)
        end
    end
end
return true
end

 

 

  • Respostas 5
  • Visualizações 838
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • Diretor
4 horas atrás, matheus1234567 disse:

Eai pessoal do TK eu queria saber como resolver esse seguinte problema, toda vez que eu matar um monstro quero que minha storage 52800 aumente em +1 eu tentei fazer o seguinte:

setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) mas não funciona se eu por só setPlayerStorageValue(cid, Storage, 1) ele funciona mas só conta até 1 pois não estou incrementando e sim setando.. segue o Script:


 

  Ocultar conteúdo


function onDeath(cid, corpse, deathList)
local Storage,monstName = 52800, "bandit swordman"
local count = 31
local value = getPlayerStorageValue(cid, 52800)

for _, check in pairs(deathList) do
    if isPlayer(check) then
        if getPlayerStorageValue(cid, Storage) < count then
            setPlayerStorageValue(check, Storage, 1)
        end
    end
end
return true
end

 

 

 

Olha amigo não sei se vai te ajudar mais se for isso acho que vai ser GG, to mexendo pouco com scripts, a intenção é te ajudar mesmo.

 

 

local monster = 'bandit swordman' -- nome do monstro
local storage = 52800 -- storage
function onKill(cid, target, lastHit)
  
if(isMonster(cid)) and getCreatureName(cid):lower() == monster then
        setPlayerStorageValue(lastHit, storage, +1)
end
  
return true
end
tag creaturescripts.xml>>	<event type="kill" name="killsto" event="script" value="killdeath.lua"/>
login.lua>>     registerCreatureEvent(cid, "killsto")
tag no mostro que vai morrer em nodomonstro.xml colcoa no final

    <script>
        <event name="killsto"/>
    </script>

 

Editado por L3K0T (veja o histórico de edições)

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

Postado
  • Autor
9 horas atrás, L3K0T disse:

Olha amigo não sei se vai te ajudar mais se for isso acho que vai ser GG, to mexendo pouco com scripts, a intenção é te ajudar mesmo.

 

 


local monster = 'bandit swordman' -- nome do monstro
local storage = 52800 -- storage
function onKill(cid, target, lastHit)
  
if(isMonster(cid)) and getCreatureName(cid):lower() == monster then
        setPlayerStorageValue(lastHit, storage, +1)
end
  
return true
end

tag creaturescripts.xml>>	<event type="kill" name="killsto" event="script" value="killdeath.lua"/>

login.lua>>     registerCreatureEvent(cid, "killsto")

tag no mostro que vai morrer em nodomonstro.xml colcoa no final

    <script>
        <event name="killsto"/>
    </script>

 

 

deu isso:

[833:25:408] [Warning - Monster::Monster] Unknow event name - killBanditSwordman

 

registrei non login: registerCreatureEvent(cid "killBanditSwordman")

no monstro.xml:

<script>

    <event name="killBanditSwordman"/>

</script>

 

no creaturescripts.xml:

<event type="kill" name="killBanditSwordman" event="script" value="task/banditswordman.lua"/>

 

Postado

.. Seu erro foi checar a storage na creature morta e não nos jogador que a mataram, assim nunca contabilizava o valor da storage +1, isso aqui que você fez está correto só faltaria coloca no lugar do cid os players que mataram.

setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) 
Spoiler

function onDeath(cid, corpse, deathList)
	local Storage,monstName = 52800, "bandit swordman"
	local count = 31

	for _, check in pairs(deathList) do
		if isPlayer(check) then
			local value = getPlayerStorageValue(check, Storage) -- a storage tem que ser checada pelo jogador e não pelo monstro morto... você estava checando a storage no monstro por isso não contava corretamente
			if value == -1 then -- toda storage é iniciada com -1 aqui eu seto o 1° valor que seria 1
				setPlayerStorageValue(check, Storage, 1)
			elseif value < count then
				setPlayerStorageValue(check, Storage, value + 1) -- aqui é adicionado + 1 ao valor da storage
			end
	    end
	end
	return true
end

 

 

 

Te ajudei ?? Que tal fazer uma contribuição ?

Doar

Postado
  • Autor
3 minutos atrás, DboExplorer disse:

.. Seu erro foi checar a storage na creature morta e não nos jogador que a mataram, assim nunca contabilizava o valor da storage +1, isso aqui que você fez está correto só faltaria coloca no lugar do cid os players que mataram.


setPlayerStorageValue(cid, Storage, getPlayerStorageValue(cid, Storage) +1) 
  Mostrar conteúdo oculto


function onDeath(cid, corpse, deathList)
	local Storage,monstName = 52800, "bandit swordman"
	local count = 31

	for _, check in pairs(deathList) do
		if isPlayer(check) then
			local value = getPlayerStorageValue(check, Storage) -- a storage tem que ser checada pelo jogador e não pelo monstro morto... você estava checando a storage no monstro por isso não contava corretamente
			if value == -1 then -- toda storage é iniciada com -1 aqui eu seto o 1° valor que seria 1
				setPlayerStorageValue(check, Storage, 1)
			elseif value < count then
				setPlayerStorageValue(check, Storage, value + 1) -- aqui é adicionado + 1 ao valor da storage
			end
	    end
	end
	return true
end

 

 

 

já corrigi amigo é o +1 não funciona se não me engano de acordo com o script não era pra eu usar "cid" e sim "check" ficando da seguinte forma

setPlayerStorageValue(check, Storage, getPlayerStorageValue(check, Storage)+1)

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo