-
Total de itens
926 -
Registro em
-
Última visita
-
Dias Ganhos
18
Tudo que Danihcv postou
-
Tópico movido para dúvidas / pedidos resolvidos.
-
Tópico movido para dúvidas / pedidos resolvidos.
-
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
@, eu acabei de mandar o script pra vc corrigido no seu topico. -
Tópico movido para dúvidas / pedidos resolvidos.
- 3 respostas
-
- globalevents
- resolvido
-
(e 1 mais)
Tags:
-
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
Update: O script continha um bug que permitia crashar o servidor (caso o player botasse um numero negativo) e tambem caso o parametro não fosse um numero, o player falava uma mensagem normal. Esse erros foram corrigidos: situationpoints.lua: local pointObj = 2160 --id do item "points" function getAccountPoints(cid) local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..getPlayerAccountId(cid)..'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function onSay(cid, words, param) if (words == '!sacar') then if param ~= "" then if tonumber(param) ~= nil then if 0 >= tonumber(param) then doPlayerSendCancel(cid, "O valor precisa ser acima de zero.") elseif 0 < tonumber(param) and tonumber(param) <= getAccountPoints(cid) then doPlayerAddItem(cid, pointObj, tonumber(param)) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'') newPoints = getAccountPoints(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você ainda possui '..newPoints..' premium points em sua conta.') else doPlayerSendCancel(cid, "Você não tem tantos premium points assim.") end else doPlayerSendCancel(cid, "O valor precisa ser um numero.") end else doPlayerSendCancel(cid, "Você precisa especificar um valor.") end elseif (words == '!saldo') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Seu saldo no shopping atual é de '..getAccountPoints(cid)..' Premium points.') elseif (words == '!depositar') then if param ~= "" then if tonumber(param) ~= nil then if 0 >= tonumber(param) then doPlayerSendCancel(cid, "O valor precisa ser acima de zero.") elseif 0 < tonumber(param) and tonumber(param) <= getPlayerItemCount(cid, pointObj) then doPlayerRemoveItem(cid, pointObj, tonumber(param)) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) + tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'') newPoints = getAccountPoints(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acabou de depositar '..param..' premium points no shopping. Seu saldo agora é de '..newPoints..' premium points.') else doPlayerSendCancel(cid, "Você não tem tantos premium points assim.") end else doPlayerSendCancel(cid, "O valor precisa ser um numero.") end else doPlayerSendCancel(cid, "Você precisa especificar um valor.") end end return true end A tag em talkactions.xml permanece a mesma. -
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
@@Dennyz Dias, putz cara, eu acabei de testar. E tá tudo certo... Como é q vc ta usando o comando in-game? Eu usei: !depositar 100 (por exemplo) e deu tudo tranquilo... -
Deixa assim: [LUA]--[[ day_of_week: 0 = Sunday, 1 = Monday ... 6 = Saturday hour: value between 0 and 23 minute: value between 0 and 59 storage: unique, not used global storage value --]] local autoStartsTable = { {["day_of_week"] = 6, ["hour"] = 19, ["minute"] = 30, ["storage"] = 7867}, {["day_of_week"] = 5, ["hour"] = 19, ["minute"] = 30, ["storage"] = 7869}, {["day_of_week"] = 4, ["hour"] = 19, ["minute"] = 30, ["storage"] = 7870}, {["day_of_week"] = 3, ["hour"] = 19, ["minute"] = 30, ["storage"] = 7871}, {["day_of_week"] = 2, ["hour"] = 19, ["minute"] = 30, ["storage"] = 7872}, {["day_of_week"] = 1, ["hour"] = 19, ["minute"] = 30, ["storage"] = 7873}, {["day_of_week"] = 0, ["hour"] = 21, ["minute"] = 0, ["storage"] = 7868} } function shouldExecuteEvent(configTable) for _, config in pairs(configTable) do if(tonumber(os.date("%d")) ~= getStorage(config.storage) and tonumber(os.date("%w")) == config.day_of_week) then if(tonumber(os.date("%H")) == config.hour and tonumber(os.date("%M")) == config.minute) then doSetStorage(config.storage, tonumber(os.date("%d"))) return true end end end return false end function onThink(interval, lastExecution, thinkInterval) if(shouldExecuteEvent(autoStartsTable)) then if(getStorage(ZE_STATUS) ~= 1 and getStorage(ZE_STATUS) ~= 2) then removeZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 1) doBroadcastMessage("Zombie Arena Event teleport will be open for 2 minutes. We are waiting for " .. getZombiesEventPlayersLimit() - #getZombiesEventPlayers() .. " players to start.") addEvent(startArenaEvent, 120 * 1000) end end return true end function startArenaEvent() if(getStorage(ZE_STATUS) == 1) then addZombiesEventBlockEnterPosition() doSetStorage(ZE_STATUS, 2) doBroadcastMessage("Zombie Arena Event started.") end end Não esquece que vc pode alterar a hora de inicioa pra cada dia. Basta alterar a parte referente a hour e minute referente aql determinado dia.
- 3 respostas
-
- globalevents
- resolvido
-
(e 1 mais)
Tags:
-
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
@@Dennyz Dias, aparece alguma mensagem in-game? Se sim, qual mensagem? -
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
Não entendi direito o q vc quis dizer... sahusahu Mas eu já botei pra que o player possa usar: !sacar QUANTIA !saldo !depositar QUANTIA -
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
Então, nesse caso. Aqui vai, @@Dennyz Dias: Vá em data\talkactions e adicione essa tag ao arquivo talkactions.xml: <talkaction words="!sacar;!saldo;!depositar" event="script" value="situationpoints.lua"/> Agora vá em data\talkactions\scripts e crie um arquivo chamado situationpoints.lua e coloque isso dentro: local pointObj = 2160 --id do item "points" function getAccountPoints(cid) local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..getPlayerAccountId(cid)..'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function onSay(cid, words, param) if (words == '!sacar') then if param ~= "" then if tonumber(param) <= getAccountPoints(cid) then doPlayerAddItem(cid, pointObj, tonumber(param)) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) - tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'') newPoints = getAccountPoints(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você ainda possui '..newPoints..' premium points em sua conta.') else doPlayerSendCancel(cid, "Você não tem tantos premium points assim.") end else doPlayerSendCancel(cid, "Você precisa especificar um valor.") end elseif (words == '!saldo') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Seu saldo no shopping atual é de '..getAccountPoints(cid)..' Premium points.') elseif (words == '!depositar') then if param ~= "" then if tonumber(param) <= getPlayerItemCount(cid, pointObj) then doPlayerRemoveItem(cid, pointObj, tonumber(param)) db.executeQuery('UPDATE `accounts` SET `premium_points`='..getAccountPoints(cid) + tonumber(param)..' WHERE id='.. getPlayerAccountId(cid)..'') newPoints = getAccountPoints(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acabou de depositar '..param..' premium points no shopping. Seu saldo agora é de '..newPoints..' premium points.') else doPlayerSendCancel(cid, "Você não tem tantos premium points assim.") end else doPlayerSendCancel(cid, "Você precisa especificar um valor.") end end return true end *minha unica duvida é quanto às querys... Vamo ver se desse jeito aí funciona sussa. -
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
@, mano, eu me toquei agr q no teu eu ñ botei todas as funções... Acabei de postar lá o script com todas as 3 talkactions (no seu post). -
Por distração, eu acabei me esquecendo que vc queria 3 talkactions. Por isso, aqui está o script final com as 3 talkactions: *lembrando que ñ tenho como testar, e estou me baseando no q me foi dito sobre o tfs 1.2: local pointObj = 2160 --id do item "points" function getAccountPoints(player) local res = db.getResult('SELECT `premium_points` FROM `accounts` WHERE id='..player:getGuid()..'') if(res:getID() == -1) then return false end local ret = res:getDataInt("premium_points") res:free() return tonumber(ret) end function onSay(player, words, param) if (words == '!sacar') then if param ~= "" then if tonumber(param) ~= nil then if 0 >= tonumber(param) then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "O valor precisa ser acima de zero.") elseif tonumber(param) <= player:getAccountPoints() then player:addItem(pointObj, param) db.executeQuery('UPDATE `accounts` SET `premium_points`='..player:getAccountPoints() - param..' WHERE id='.. player:getGuid()..'') newPoints = player:getAccountPoints() player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Você ainda possui '..newPoints..' premium points em sua conta.') else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem tantos premium points assim.") end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "O valor precisa ser um numero.") end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa especificar um valor.") end elseif (words == '!saldo') then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Seu saldo no shopping atual é de '..player:getAccountPoints()..' Premium points.') elseif (words == '!depositar') then if param ~= "" then if tonumber(param) ~= nil then if 0 >= tonumber(param) then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "O valor precisa ser acima de zero.") elseif tonumber(param) <= player:getItemCount(pointObj) then player:removeItem(pointObj, tonumber(param)) db.executeQuery('UPDATE `accounts` SET `premium_points`='..player:getAccountPoints() + tonumber(param)..' WHERE id='.. player:getGuid()..'') newPoints = player:getAccountPoints() player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Você acabou de depositar '..param..' premium points no shopping. Seu saldo agora é de '..newPoints..' premium points.') else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem tantos premium points assim.") end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "O valor precisa ser um numero.") end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa especificar um valor.") end end return true end Basta usar uma só tag em talkactions.xml apenas se atente a isso na tag:
-
Amigo, vc tá usando o script antigo, que estava com erro. O certo a usar é esse ultimo que eu postei: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "Only the worthy may pass.", enterMsg = "Welcome!", enterEffect = CONST_ME_MAGIC_BLUE, } local vocations = {3,4,7} if isInArray(vocations, getPlayerVocation(cid)) then doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true else doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) return true end end
-
action Talkaction para retirar premium points do Site
pergunta respondeu ao Dennyz Dias de Danihcv em Scripts
Só precisa informar qual a table e qual a clomun responsáveis pelo armazenamento dos premium points. ^^ -
@@Vasto Lord X, tem sim. Basta ir acrescentando nessa parte: Segue a nova versão do script, sem erro: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "Only the worthy may pass.", enterMsg = "Welcome!", enterEffect = CONST_ME_MAGIC_BLUE, } local vocations = {3,4,7} if isInArray(vocations, getPlayerVocation(cid)) then doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true else doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) return true end end
-
Tranquilo... Esse script aqui eu já testei e tá 100%. Falta apenas funcionar aí pra vc... sauhsahuas: function onStepIn(cid, item, position, fromPosition) local tileConfig = { kickPos = fromPosition, kickEffect = CONST_ME_POFF, kickMsg = "Only the worthy may pass.", enterMsg = "Welcome!", enterEffect = CONST_ME_MAGIC_BLUE, } local vocations = {3,4,7} if isInArray(vocations, getPlayerVocation(cid)) then doPlayerSendTextMessage(cid, 25, tileConfig.enterMsg) doSendMagicEffect(position, tileConfig.enterEffect) return true else doTeleportThing(cid, tileConfig.kickPos) doSendMagicEffect(tileConfig.kickPos, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) return true end end ~~agradecimentos ao Matheus Duarte
-
Bom, para que alguem possa oferecer uma ajuda 100% eficiente, é necessário que vc informe qual distro vc usa, e que ponha um link para mostrar qual o frag system q vc está usando exatamente.
-
@@brendoonh, o erro está reportando que não conseguiu encontrar o arquivo. Pf, garanta de que a instalação dos scripts foi feita de forma correta. *de acordo com o erro, vc precisa btoar o nome do script como: portapala.lua
-
descoberto (AoM) Adivinhe o Mapa #07
tópico respondeu ao Administrador de Danihcv em Concursos e Eventos
Parque de diversão. -
Tópico movido para dúvidas / pedidos resolvidos.
-
Vá em data\movements e adicione essa tag ao arquivo movements.xml: <movevent type="StepIn" actionid="5876" event="script" value="pisovoc.lua"/> Agora adicione a action id 5876 ao piso que fica em baixo da porta, pois é o action que está configurado na tag acima. Agora vá em data\movements\scripts e crie um arquivo chamado pisovoc.lua e coloque o script q eu mandei acima.
-
@, manda como vc deixou as coisas.
-
sahusauhas, então de boa. Acredito que agr só apareça uma mensagem de "olá": local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -------------------------- ----PARTE CONFIGURAVEL---- -------------------------- local msgs = { ['mysterious island'] = 'É uma ilha que antigos diziam ficar ao sudoeste de Carlin. Há um teleport que dizem aparecer nos pântanos de Venore, talvez, ele leve a essa ilha.', ['second promotion'] = 'Há um NPC que vem de muito longe e fica a caminhas pelos campos de Thais, dizem que ele pode dar a segunda vocação para os aventureiros.', } local voc = 3 ----------------------------- --FIM DA PARTE CONFIGURAVEL-- ----------------------------- function greetCallback(cid) npcHandler:say('Olá, '..getCreatureName(cid)..'. O que você procura? {Informações}?', cid) return true end function creatureSayCallback(cid, type, msg) if msgcontains(string.lower(msg), 'informações') then if getPlayerVocation(cid) == voc then npcHandler:say('Sobre o que você quer saber? Sobre a {mysterious island} ou sobre a {second promotion}?', cid) for k, v in pairs(msgs) do if msgcontains(string.lower(msg), v) then npcHandler:say(msgs[v], cid) return true end end else npcHandler:say('Perai, você é '..getVocationInfo(getPlayerVocation(cid)).name..'?! Não falo com gente do seu tipo.', cid) npcHandler:resetNpc(cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Urrgh.... local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -------------------------- ----PARTE CONFIGURAVEL---- -------------------------- local msgs = { ['mysterious island'] = 'É uma ilha que antigos diziam ficar ao sudoeste de Carlin. Há um teleport que dizem aparecer nos pântanos de Venore, talvez, ele leve a essa ilha.', ['second promotion'] = 'Há um NPC que vem de muito longe e fica a caminhas pelos campos de Thais, dizem que ele pode dar a segunda vocação para os aventureiros.', } local voc = 3 ----------------------------- --FIM DA PARTE CONFIGURAVEL-- ----------------------------- function greetCallback(cid) npcHandler:say('Olá, '..getCreatureName(cid)..'. O que você procura? {Informações}?', cid) return true end function creatureSayCallback(cid, type, msg) if msgcontains(string.lower(msg), 'informações') then if getPlayerVocation(cid) == voc then npcHandler:say('Sobre o que você quer saber? Sobre a {mysterious island} ou sobre a {second promotion}?', cid) for k, v in pairs(msgs) do if string.lower(msg) == 'bye' then npcHandler:resetNpc(cid) elseif msgcontains(msg, v) then npcHandler:say(msgs[v], cid) return true end end else npcHandler:say('Perai, você é '..getVocationInfo(getPlayerVocation(cid)).name..'?! Não falo com gente do seu tipo.', cid) npcHandler:resetNpc(cid) end end return true end npcHandler:setCallback(CALLBACK_GREET, greetCallback) npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Mais tarde eu dou um jeito de arranjar um modo pra testar os scripts... Pra não ficar passando trocentos scripts sem saber se tão 100%. Até lá, não perca a paciência. sauhsauhsa
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.