Ir para conteúdo
  • 0

[PEDIDO] Arrumar uma action minha


jvcasarin

Pergunta

Bom gente, criei um outro tópico, pedindo ajuda em um movement, em que se o player tiver a storage 18597, ele passa pelo tile, se não tiver a storage, ele não passa, ai vai o script do movement:

function onStepIn(cid, item, position, fromPosition)
local storage = 18597
 
if getPlayerStorageValue(cid, storage) <= 0 then
doPlayerSendCancel(cid, "You're not a VIP player.")
doTeleportThing(cid, fromPosition)
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
return true
else
doPlayerSendTextMessage(cid, "Welcome to the VIP Area!")
doSendMagicEffect(getThingPos(cid), 14)
end
return true
end

Criei uma action para quando o player usar X item, adiciona a storage à ele, está funcionando normalmente, porém quando o player tem a storage, e vai no tile, aparece um erro no distro:

 

[4:4:26.603] [Error - MoveEvents Interface]

[4:4:26.603] data/movements/scripts/betile.lua:onStepIn
[4:4:26.603] Description:
[4:4:26.603] (luaDoPlayerSendTextMessage) Player not found
De resto no script, está funcionando.
Ai vai o script da action:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local storage = 18597
 
if getPlayerStorageValue(cid, storage) <= 0 then
doRemoveItem(item.uid, 1)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+18597)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
return true
else
doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
end
end
return true
end
Se depois de arrumarem o script, puderem melhorar ele e POR FAVOR, ME EXPLICAR O QUE FOI MODIFICADO E POR QUE!
Grato desde ja!
Editado por jvcasarin
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Tem como você me explicar como funciona o seu script ai?

Tente assim (o problema está na função doPlayerSendTextMessage):

 

local storage = 18597

function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then return false end
	if getPlayerStorageValue(cid, storage) - os.time() <= 0
		doCreatureSay(cid, "You're not a VIP player.", TALKTYPE_ORANGE_1)
		doTeleportThing(cid, fromPosition)
		doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		return false
	end

	doCreatureSay(cid, "Welcome to the VIP Area!", TALKTYPE_ORANGE_1)
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Tente assim (o problema está na função doPlayerSendTextMessage):

 

local storage = 18597

function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then return false end
	if getPlayerStorageValue(cid, storage) - os.time() <= 0
		doCreatureSay(cid, "You're not a VIP player.", TALKTYPE_ORANGE_1)
		doTeleportThing(cid, fromPosition)
		doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		return false
	end

	doCreatureSay(cid, "Welcome to the VIP Area!", TALKTYPE_ORANGE_1)
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	return true
end

 

 

 

Não acredito que só percebi agora onde é o erro kkkkkkkk, mas esse script não funciona.

 

 

Mesmo eu não possuindo essa storage, eu posso pisar no tile, e usando o item, posso também.

 

Não aparece mais o erro no distro, porém não aparece nenhuma mensagem para o player.

 

 

 

EDIT:

 

Usei o movement do @zipter98, e funcionou, recebo as mensagens e tal, porém o action dele, se eu tento usar o item pela segunda vez, aparece 1 erro no distro, ele aparece a cada vez que eu for clicar no item:

 

 

[17:46:58.129] [Error - Action Interface]

[17:46:58.130] data/actions/scripts/betile.lua:onUse
[17:46:58.130] Description:
[17:46:58.131] data/actions/scripts/betile.lua:10: attempt to call global 'doSendPlayerCancel' (a nil value)
[17:46:58.132] stack traceback:
[17:46:58.132] data/actions/scripts/betile.lua:10: in function <data/actions/scripts/betile.lua:3>

 

 

Ai a action dele:

 

local storage = 18597
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if getPlayerStorageValue(cid, storage) <= 0 then
        doRemoveItem(item.uid, 1)
        doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
        setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 18597)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
    else
        doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
    end
    --Você colocou um end a mais aqui.
    return true
end
Editado por jvcasarin
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim, com outra storage e algumas modificações:

 

Action:

local storage = 13513
local days = 30 -- dias que serão adicionados

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local timenow = os.time()
	local daysvalue = days * 24 * 60 * 60
	local timeToAdd = 0

	if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
		timeToAdd = daysvalue + os.time()
	else
		timeToAdd = daysvalue + getPlayerStorageValue(cid, storage)
	end

	doRemoveItem(item.uid, 1)
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	setPlayerStorageValue(cid, storage, timeToAdd)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
	return true
end
Movements:

local storage = 13513

function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then return false end
	if getPlayerStorageValue(cid, storage) - os.time() <= 0
		doCreatureSay(cid, "You're not a VIP player.", TALKTYPE_ORANGE_1)
		doTeleportThing(cid, fromPosition)
		doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		return false
	end

	doCreatureSay(cid, "Welcome to the VIP Area!", TALKTYPE_ORANGE_1)
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	return true
end

 

 

 

 

[21:56:15.666] [Error - LuaInterface::loadFile] data/movements/scripts/betile.lua:6: 'then' expected near 'doCreatureSay'

[21:56:15.666] [Warning - Event::loadScript] Cannot load script (data/movements/scripts/betile.lua)
[21:56:15.666] data/movements/scripts/betile.lua:6: 'then' expected near 'doCreatureSay'
EDIT:
Tava faltando um "then" pro if ali da linha do os.time()
Agora ta perfeito.
REP+ para todos que me ajudaram!
Obs.: BRUNO, TEM COMO EXPLICAR COMO FUNCIONA O SEU SCRIPT DE MOVEMENTS E ACTIONS? QUERO ENTENDER A LINGUAGEM LUA, E ENTAO, COMEÇANDO PELOS SCRIPTS QUE EU CONSIGO AKI COM VCS.
Obs2.: Tem como colocar pra aparecer ao clicar no item, uma mensagem falando quanto tempo de Modd Time o player ganhou?
VLWWW
Editado por jvcasarin
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

 

 

EDIT:
Tava faltando um "then" pro if ali da linha do os.time()
Agora ta perfeito.
REP+ para todos que me ajudaram!
Obs.: BRUNO, TEM COMO EXPLICAR COMO FUNCIONA O SEU SCRIPT DE MOVEMENTS E ACTIONS? QUERO ENTENDER A LINGUAGEM LUA, E ENTAO, COMEÇANDO PELOS SCRIPTS QUE EU CONSIGO AKI COM VCS.
Obs2.: Tem como colocar pra aparecer ao clicar no item, uma mensagem falando quanto tempo de Modd Time o player ganhou?
VLWWW

 

Nossa, eu juro que nem tinha visto, pois edito com bloco de notas na empresa...

Que bom que funcionou.

 

Só não vou poder te explicar linha por linha agora porque tenho que ir dormir, amanhã faço isso, abs.

Tópico movido para dúvidas / pedidos resolvidos.

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa, eu juro que nem tinha visto, pois edito com bloco de notas na empresa...

Que bom que funcionou.

 

Só não vou poder te explicar linha por linha agora porque tenho que ir dormir, amanhã faço isso, abs.

Tópico movido para dúvidas / pedidos resolvidos.

 

 

 

Eita poha, bloco de notas o.O uahsuahs

 

 

mas obg, e por favor, n esquece de me falar como funciona o script seu ai amanha! uehue, qro MUITO entender tudo que eu vejo e tal..

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...