JV

[PEDIDO] Arrumar uma action minha

Por jvcasarin, 30 de ago. de 2015 em Scripts

action
ajuda
help
pedido
arrumar
script
storage
resolvido
21
2.6k
BrunoB
31 de agosto de 2015 às 17:12

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

Editado Agosto 31 por Bruno Minervino

jvcasarinJ
31 de agosto de 2015 às 17:43

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 Agosto 31 por jvcasarin

BrunoB
31 de agosto de 2015 às 17:49
Melhor resposta

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.

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 then
		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

Editado Agosto 31 por Bruno Minervino

jvcasarinJ
31 de agosto de 2015 às 21:59

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 Agosto 31 por jvcasarin

BrunoB
31 de agosto de 2015 às 23:24

 

 

 

 

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.

jvcasarinJ
31 de agosto de 2015 às 23:31

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..