Ir para conteúdo

Poccnn

Herói
  • Total de itens

    1418
  • Registro em

  • Última visita

  • Dias Ganhos

    48

Tudo que Poccnn postou

  1. Se for pra passar apenas uma vez e ninguém mais passar por ela o dia inteiro, então faz o seguinte: Coloca aquela porta que tem a maçaneta piscando, só que aberta com uma action id 9999, assim quem passar por ela, ela vai fechar e não vai mais abrir.
  2. Se todos os ids dos quais cada item é transformado for +1, entao muda isso: doTransformItem(item.uid,15143) Para isso: doTransformItem(item.uid,item.itemid+1) Assim todos os itens independente do id dele será transformado sem precisar criar um script pra cada. Depois que tu fizer essa modificação, testa e me diz o que deu errado.
  3. Verifica a posição do player. Se ele estiver indo pra lá << então você põe x+1, caso ele esteja indo pra lá >> você põe x-1, caso seja pra lá /\ então é y+1 e sentido contrário é y-1.
  4. Disseste tu que, criaste um arquivo para cada item, mas não se faz necessário isso. Adiciona ao código uma tabela com os ids e ela vai fazer referência a eles através da variável item da função onuse. local tab = { --[id do item] = valor associado a esse id [2160] = 10, [2152] = function () sendtext ("textual") end, [9272] = "em promoção!" } function onUse (cid, item) if (tab[item]) then return tab[item] end return true end Colocaste tu aid diferente para cada item?
  5. Se você quer mesmo aprender, então começa aprendendo lógica de programação, identação, etc. Eu sugiro que você faça o seguinte: Crie um script. Tente torná -lo menor e mais prático. Faça-o simples, configurável, adaptável e portavel. Revise-o. Teste o script tentando encontrar falhas. Finalize ele tornando-o o mais inteligível possível. Veja um exemplo usando seu script. --script function onSay(cid, words, param) local days = 30 local daysvalue = days * 24 * 60 * 60 local item, quantidade = 6527,30 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() local time = storageplayer < timenow and timenow+daysvalue or storageplayer+daysvalue if (getplayeritemCount(cid, item) < quantidade) then return true, doPlayerSendCancel (cid,"tu nao teins os itens") elseif not(string.find(tostring(getCreatureName(cid)),"[Vip]")) then return true, doPlayerSendCancel (cid,"tu naos eis vip") else doPlayerRemoveItem (cid, item, quantidade) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) doRemoveCreature (cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..getCreatureName (cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") end return true end
  6. Vobiscum Satanás!
  7. --script função onCombat (cid, target) if (isPlayer(cid) and isPlayer(target)) then if getPlayerGuildId(cid) == getPlayerGuildId(target) and getPlayerStorageValue(target, 13400) == 1 then return false end end return true end
  8. A forma com que ele fez está correta e sim, é necessário saber se o item foi retirado. A lógica dele evita bugs no sistema.
  9. Vou explicar passo a passo pra você algumas questões do script. --- script function onSay(cid, words, param) if(words == "!buyvip") then doPlayerRemoveItem(cid,6527,30) -- sugiro antes de remover um item, saber se o player tem o item ou a quantidade de itens necessário. if not (getPlayerItem (cid, itemid, quantidade)) then return true, doPlayerSendCancel (cid, "você não tem o item.") end local days = 30 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then --você já declarou na variável acima "storageplayer", não é necessário repetir aqui. time = timenow + daysvalue else time = storageplayer + daysvalue end if string.find(tostring(getCreatureName(cid)),"[Vip]") then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local name = getCreatureName(cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";")--essa query tem ser executada depois do player ser removido. doRemoveCreature(cid) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de 30 Multi Coins para colocar vip.") end
  10. E o mundo ainda não acabou.
  11. Function onattack não serve para deixar um ser imune ou não, serve apenas para checar o alvo do ataque,ou seja, se eu clicar em um target para atacar essa função pode fazer com que eu não o ataque, mas caso eu uso uma magia de area, essa função não vai impedir da criatura ser atacada.
  12. Esse erro é devido a inserção de um caractere inválido no script no caso uma crase. Apaga tudo do arquivo e copia de novo esse script.
  13. Poccnn

    Train System

    Troca isso: isCreature(cid) Por isto: isPlayer(cid)
  14. Por que você não ler alguns tutoriais sobre sprites para ver se tem algo errado no que você fez ou a forma como foi adicionado no sistema. Eu já te avisei, para de jogar poketibia!
  15. Usa isso: --- script local vocs = {9, 10, 11, 12} local failout = {73,75,302,266,45,10} -- outfits proibidas function onSay(cid, words, param, channel) local t = string.explode(param, ",") t[1] = tonumber(t[1]) if not isInArray(vocs, getPlayerVocation(cid)) then doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.") elseif(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") elseif not(t[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.") elseif isInArray(failout, t[1]) then doPlayerSendCancel(cid,"Não pode usar estas outfit.") elseif(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.") else local tmp = getCreatureOutfit(cid) tmp.lookType = t[1] doCreatureChangeOutfit(cid, tmp) end return true end
  16. Já começou bem, lógica de programação é essencial para quem quer ser um programador. Parabéns e continue assim.
  17. Substitui isso: doorEnter(cid, item, toPosition) Por isto: doorEnter(cid, item, fromPosition)
  18. Qual versão do distro que você usa?
  19. Isso é erro de codificação, eu passei para utf8 para nao ficar com erro no texto ao ser postado no topico. No seu editor clica em codificação/ansi Salva. Pronto vai funcionar. Isso é erro de codificação, eu passei para utf8 para nao ficar com erro no texto ao ser postado no topico. No seu editor clica em codificação/ansi Salva. Pronto vai funcionar. Isso é erro de codificação, eu passei para utf8 para nao ficar com erro no texto ao ser postado no topico. No seu editor clica em codificação/ansi Salva. Pronto vai funcionar.
  20. Me passou despercebido que era apenas para staff usar esse script, então refiz ele. <talkaction log="yes" access="5" words="/add;/balanceAll;/saldo" event="script" value="bank_two.lua"/> <talkaction log="yes" access="3" words="/transfer;/balance" event="script" value="bank_two.lua"/> --[[> Marcryzius <]]-- function onSay(cid, words, param, channel) local param = string.explode(param, ",") local name = param[1]:lower() local player = getCreatureByName(name) or cid local access = getPlayerAccess(cid) local store_bank_two = 10000 local saldo_balance = getPlayerStorageValue(player,store_bank_two) < 0 and 0 or getPlayerStorageValue(player,store_bank_two) if(words == "/add")then if(isPlayer(player) and tonumber(param[2]))then setPlayerStorageValue(player,store_bank_two,param[2]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce adicionou "..param[2].." gps na conta de "..name.." que tinha "..saldo_balance.." gps de saldo.") doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "Foi adicionado "..param[2].." gps na sua conta do cofre.") doPlayerSave(player) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "use o comando dessa forma: /add player,quantidade") end elseif(words == "/saldo")then if(isPlayer(player))then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O saldo e de: "..saldo_balance.." gps.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player nao encontrado ou offline.") end elseif(words == "/balanceAll")then local str,total = db.getResult("SELECT `value` FROM `player_storage` WHERE `key` == '"..store_bank_two.."';"),0 if(str:getID() ~= -1) then repeat total = total + str:getDataInt("value") until not(str:next()) str:free() else str = "No deaths recorded." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "total: "..total) elseif(words == "/transfer")then if not(saldo_balance > 0 and saldo_balance >= tonumber(param[2]))then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, name.." nao tem saldo suficiente; o saldo e de: "..saldo_balance.." gps.") elseif(isPlayer(player))then doPlayerDepositMoney(player,tonumber(param[2])) setPlayerStorageValue(player,store_bank_two,saldo_balance - tonumber(param[2])) doPlayerSave(player) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_BLUE, "Foi adicionado em sua conta do banco o valor de: "..param[2].." gps.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use o comando dessa forma: /transfer player,quantidade") end elseif(words == "/balance")then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Seu saldo e de: "..saldo_balance.." gps.") end return true end
  21. Gms e cms só poderão transferir ou saber o saldo de sua própria conta.
  22. Em talkactions.xml usa essas duas tags: <talkaction log="yes" access="5" words="/add;/balance" event="script" value="nome do arquivo.lua"/> Dessa forma só god poderá usar; para os players usarem use essa tag: <talkaction log="yes" words="!transfer;!balance" event="script" value="nome do arquivo.lua"/>
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...