Ir para conteúdo
Banner com Efeitos

pinpao

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    pinpao recebeu reputação de Tace em Npc de Informações   
    Pelo o que eu entendi,não manjo muito em npc e fiz pelo celular mas tá ai !
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "Yes") then npcHandler:say(" Eu posso te ajudar com informações , como Aol, Hunts, VIP, Houses e Task o que deseja?",cid) elseif msgcontains(msg, "Aol") then npcHandler:say(" Certo você deseja saber sobre o aol, então vamos la, o aol é um amuleto sagrado que vai te proteger em caso de morte, com ele você não ira perder o seus items da sua backpack, e pode ser comprado por 10k!", cid) elseif msgcontains(msg, "Hunts") then npcHandler:say(" Quer saber sobre as hunts, as hunts são lugares onde você pode avançar de nivel, existe varias hunts no mapa , você precisa apenas explorar!", cid) elseif msgcontains(msg, "Vip") then npcHandler:say("A VIP é uma Premium que sua conta ganha quando você compra, com a VIP você pode acessar novas hunts e ter mais vantagens !", cid) elseif msgcontains(msg, "Houses") then npcHandler:say(" Houses são casas que você pode comprar no servidor por um custo basta escolher uma casa, fique na frente da porta e diz !buyhouse, é claro que precisara de dinheiro e um nivel necessário!", cid) elseif msgcontains(msg, "Task") then npcHandler:say("Task são missões que você completa para um certo npc, e com a task completa ganhara exp e items!", cid) return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) <?xml version="1.0" encoding="UTF-8"?> <npc name="Arquivo" script="data/npc/scripts/arquivo.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|!, posso ajudar?" /> </parameters> </npc>
  2. Gostei
    pinpao recebeu reputação de NighteyeTV em Matar monstro ganhe item!   
    Ola, estava conversando com meu amigo vodkart, e ele me falou que era mod aqui no tibiaking então resolvi vim pro forum!

    Como de custume quando sou novo no forum gosto de entrar apresentando algum script, estava sem ideia e sem tempo então fiz esse bem rapido e um script noob mais ta valendo!

    O player so ira ganhar 1 item, so ira ganhar outro se o servidor cair cada player ganha 1 item apenas!

    Data/Creaturescript/Crie um arquivo lua com qualqer nome e adicione:


    monster = { ["Nomedomonstro"] = {itemid = ID_DO_ITEM, count = QUANTIDADE_DE_ITEM} } function onKill(cid, target, lastHit) if monster[getCreatureName(target)] then monster = monster [getCreatureName(target)] doPlayerAddItem(cid, monster.itemid, monster.count) end return true end Data/Creaturescript/Creaturescript.xml <event type="kill" name="MonsterKill" event="script" value="Nome_do_arquivo.lua"/> Data/CreatureScript/Login.Lua registerCreatureEvent(cid, "MonsterKill")

    Desculpem pelo script noob, o proximo sera melhor

    flw.
  3. Gostei
    pinpao recebeu reputação de Axion Nitron em Matar monstro ganhe item!   
    Ola, estava conversando com meu amigo vodkart, e ele me falou que era mod aqui no tibiaking então resolvi vim pro forum!

    Como de custume quando sou novo no forum gosto de entrar apresentando algum script, estava sem ideia e sem tempo então fiz esse bem rapido e um script noob mais ta valendo!

    O player so ira ganhar 1 item, so ira ganhar outro se o servidor cair cada player ganha 1 item apenas!

    Data/Creaturescript/Crie um arquivo lua com qualqer nome e adicione:


    monster = { ["Nomedomonstro"] = {itemid = ID_DO_ITEM, count = QUANTIDADE_DE_ITEM} } function onKill(cid, target, lastHit) if monster[getCreatureName(target)] then monster = monster [getCreatureName(target)] doPlayerAddItem(cid, monster.itemid, monster.count) end return true end Data/Creaturescript/Creaturescript.xml <event type="kill" name="MonsterKill" event="script" value="Nome_do_arquivo.lua"/> Data/CreatureScript/Login.Lua registerCreatureEvent(cid, "MonsterKill")

    Desculpem pelo script noob, o proximo sera melhor

    flw.
  4. Gostei
    pinpao recebeu reputação de Gabrielk em Npc de Informações   
    Pelo o que eu entendi,não manjo muito em npc e fiz pelo celular mas tá ai !
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "Yes") then npcHandler:say(" Eu posso te ajudar com informações , como Aol, Hunts, VIP, Houses e Task o que deseja?",cid) elseif msgcontains(msg, "Aol") then npcHandler:say(" Certo você deseja saber sobre o aol, então vamos la, o aol é um amuleto sagrado que vai te proteger em caso de morte, com ele você não ira perder o seus items da sua backpack, e pode ser comprado por 10k!", cid) elseif msgcontains(msg, "Hunts") then npcHandler:say(" Quer saber sobre as hunts, as hunts são lugares onde você pode avançar de nivel, existe varias hunts no mapa , você precisa apenas explorar!", cid) elseif msgcontains(msg, "Vip") then npcHandler:say("A VIP é uma Premium que sua conta ganha quando você compra, com a VIP você pode acessar novas hunts e ter mais vantagens !", cid) elseif msgcontains(msg, "Houses") then npcHandler:say(" Houses são casas que você pode comprar no servidor por um custo basta escolher uma casa, fique na frente da porta e diz !buyhouse, é claro que precisara de dinheiro e um nivel necessário!", cid) elseif msgcontains(msg, "Task") then npcHandler:say("Task são missões que você completa para um certo npc, e com a task completa ganhara exp e items!", cid) return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) <?xml version="1.0" encoding="UTF-8"?> <npc name="Arquivo" script="data/npc/scripts/arquivo.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|!, posso ajudar?" /> </parameters> </npc>
  5. Gostei
    pinpao recebeu reputação de Vodkart em Save Character   
    Ola, estava aqui em casa de bobeira e resolvi brincar um pouco com lua novamente, resolvi fazer um talk que salva seu char você pegou um item e você digita !savechar, seu char sera salvo se cair o servidor sem querer você não perde o item você estava salvo :]

    Data/talkactions/crie um arquivo lua e adicione:


    local waittime = 60 local storage = 5560 function onSay(cid, words, param, channel) if exhaustion.get(cid, storage) == FALSE then doPlayerSave(cid) exhaustion.set(cid, storage, waittime) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Character saved.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "wait " .. exhaustion.get(cid, storage) .. " seconds.") end return TRUE end data/talkactions/talkactions.xml adicione : <talkaction words="/saveme;!saveme" event="script" value="Nome_do_arquivo.lua"/> Depois vai em lib e procure por004-database.lua e adicione: dofile(getDataDir() .. "lib/exhaustion.lua")

    Se estiver duvida na onde adc post seu 004-database.lua que ajudarei :]

    Flw.
  6. Gostei
    pinpao deu reputação a Vodkart em [Talk] Comando Mute/Desmute   
    Em talkactions/script

    muteplayer.lua

    local v = {} for k = 1, 100 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000) end function onSay(cid, words, param) if (words == "/mute") then local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player,time,pid = getPlayerByName(t[1]),t[2],getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você mutou o jogador "..t[1].." por "..time.." minutos.") doAddCondition(player, v[tonumber(time)]) setPlayerStorageValue(player, 90000, os.time()+time*60) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi mutado por "..time.." minutos.") elseif (words == "/desmute") then if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(param) if(not player)then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true end if getCreatureCondition(player, CONDITION_MUTED) == false then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "este jogador não está mutado.") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você desmutou o jogador "..param..".") doRemoveCondition(player, CONDITION_MUTED) setPlayerStorageValue(player, 90000, -1) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi desmutado.") end return true end talkactions.xml <talkaction log="yes" words="/mute;/desmute" access="2" event="script" value="muteplayer.lua"/> Comando: /mute NOME,MINUTOS /desmute NOME Em creaturescript/script mute_check.lua local v = {} for k = 1, 100000 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*1000) end function onLogin(cid) if getPlayerStorageValue(cid, 90000) >= os.time() then doAddCondition(cid, v[tonumber(getPlayerStorageValue(cid, 90000) - os.time())]) end return TRUE end creaturescript.xml <event type="login" name="MutePlayer" event="script" value="mute_check.lua"/>
  7. Gostei
    pinpao recebeu reputação de Vodkart em Matar monstro ganhe item!   
    Ola, estava conversando com meu amigo vodkart, e ele me falou que era mod aqui no tibiaking então resolvi vim pro forum!

    Como de custume quando sou novo no forum gosto de entrar apresentando algum script, estava sem ideia e sem tempo então fiz esse bem rapido e um script noob mais ta valendo!

    O player so ira ganhar 1 item, so ira ganhar outro se o servidor cair cada player ganha 1 item apenas!

    Data/Creaturescript/Crie um arquivo lua com qualqer nome e adicione:


    monster = { ["Nomedomonstro"] = {itemid = ID_DO_ITEM, count = QUANTIDADE_DE_ITEM} } function onKill(cid, target, lastHit) if monster[getCreatureName(target)] then monster = monster [getCreatureName(target)] doPlayerAddItem(cid, monster.itemid, monster.count) end return true end Data/Creaturescript/Creaturescript.xml <event type="kill" name="MonsterKill" event="script" value="Nome_do_arquivo.lua"/> Data/CreatureScript/Login.Lua registerCreatureEvent(cid, "MonsterKill")

    Desculpem pelo script noob, o proximo sera melhor

    flw.
  8. Gostei
    pinpao deu reputação a 3visan em [Aula 3] Primeiros Passos   
    Primeiros Passos
    Aula 3



    Relembrando o que eu disse na primeira aula, você precisará de um interpretador Lua e é muito recomendado que possua também um bom editor com suporte à sintaxe Lua, então nosso primeiro passo será obter o editor e o interpretador.

    As aulas serão voltadas ao scripting para Open Tibia Servers, então nada melhor do que um bom OTServer para testar seus scripts, mas ficar testando os scripts em um OTServer pode ser uma tarefa cansativa e demorada, então vamos usar também scripts fora de OTServers para praticar. Para isso, você pode fazer o download de qualquer um dos seguintes programas:


    Editores + Interpretadores:

    SciTE Scintilla [Avançado]
    OTScript Live! [Recomendado]



    Editores:

    Notepad++



    Interpretadores:

    Lua [Oficial]



    Depois que você tiver seu editor e interpretador Lua (Recomendo o OTScript Live!), instale ele. No caso do OTScript Live!, depois de descompactar, vá em "Help", no menu, e clique em "Register To Lua". Abrirá uma caixa confirmando a alteração, basta apertar "OK" e todos os seus scripts irão abrir com o OTScript Live!.




    testando seus scripts!
    No caso do SciTE, para testar o seu script você deve primeiro salvá-lo com a extensão Lua (*.lua). No caso do SciTE e do OTScript Live! você pode testar seu script apenas apertando F5, sendo que no OTScript Live! não é necessário salvar o script antes de testar.

    Após pressionar F5, o SciTE irá abrir uma área de textos abaixo da área de edição com as informações do teste, e o OTScript Live! vai abrir uma janela.

    Para testar se o seu SciTE ou OTScript Live! está funcionando, use o seguinte script:



    print("Hello world!") Nas informações mostradas pelo interpretador deve estar escrito "Hello world!". Se aparecer, parabéns, você testou o seu primeiro script Lua...(Ou não >.<) O que o script fez? o0 Uma das coisas mais importantes nos scripts são as funções. Uma função é "um bloco de código previamente pronto", uma subrotina, que quando chamada executa esse bloco. Imagine as funções como um atalho para executar alguma coisa. Pode ser usada, por exemplo, para encurtar scripts que tenham alguma parte do codigo que se repita muitas vezes. Criando uma função você pode usar esse código que se repete muitas vezes somente uma vez (Dentro da função), então em vez de usar esse bloco várias vezes, você só precisaria chamar a função várias vezes. Você pode criar suas próprias funções, mas isso veremos mais para frente. Tudo o que importa agora é aprender a chamar funções. O "Nome da Função", na verdade, é o nome da variável em que está armazenada a função, mas não se preocupem com isto ainda... O "Nome da Função" é o nome que você deve chamar para que a função ocorra, pois há vária funções (Obviamente), então você deve especificar qual função quer chamar. É a mesma coisa do que ter 3 pessoas. Quando quiser chamar uma das pessoas, deve dizer o nome dela. Os argumentos são as "Respostas" para as "Perguntas" da função chamada. A maioria das funções faz "perguntas". No caso da função "print", ela nos "perguntou" o que queriamos escrever na tela, e "respondemos": "Hello world!". É importante lembrar que cada pergunta deve ser respondida adequadamente, por exemplo, se alguém te pergunta: "Que horas são?" você não pode responder: "Sim.". A mesma coisa acontece com as funções, você deve responder exatamente o que ela está perguntando. Outra observação importante é que você deve responder as perguntas da função na ordem em que foram perguntadas. Se a pergunta nº 1 for "Que horas são?" e a nº 2 for "Quer um biscoito?", você deve responder respectivamente que horas são e se você quer um biscoito. OBS: Algumas funções fazem "perguntas" opcionais, ou seja, você pode ou não responder. Se você não "responder", a própria função atribuirá um valor padrão para a resposta. Os parâmetros são simplesmente o conjunto de todos os argumentos. OBS: Todos os argumentos (Respostas) do parâmetro devem estar entre parênteses e ser separados por vírgulas! Tipos de valores! Bem, como eu disse, cada resposta deve seguir o tipo da pergunta, então vou citar aqui os tipos destes valores. OBS: Existe uma função para descobrir o tipo de cada valor! Esta função é a função type(valor)... Numbers Como o nome diz, numbers são números, não há muito o que falar sobre eles... Exemplo: print(1) print(2) print(3) OBS: A função print aceita todos os tipos como resposta. Strings As strings devem iniciar com um símbolo especial e deve terminar com o mesmo caractere que foi usado para iniciar a string. Esses símbolos são: Apóstrofo: Começa com ' e termina com '. Aspas: Começa com " e termina com ". Colchete-Colchete: Começa com [[ e termina com ]]. Colchete-Igual-Igual-Colchete: Começa com [==[ e termina com ]==]. As strings são conjuntos de caracteres, como letras, números (Não são numbers, pois se houver um número entre os símbolos especiais será tomado como string!!!), acentos, espaços, etc... Se você quiser escrever uma frase na tela, por exemplo, não pode deixá-la solta pelo script. Esta frase deve ser uma string, ou o script dará erro. Exemplo: print('Apóstrofos') print("Aspas") print([[Colchete-Colchete]]) print([==[Colchete-Igual-Igual-Colchete]==]) OBS: 1 << Isto é um number. "1" << Isto é uma string. Booleanos Os booleanos podem assumir apenas dois valores: true e false. true: Valor verdadeiro. false: Valor falso. OBS: Os booleanos podem ser complicados de entender no começo, mas com o tempo você acostuma. Não se preocupe com eles agora... Exemplo: print(true) print(false) print(nil) Functions Exatamente o que o nome diz: é o que estamos vendo agora. Functions são nada mais nada menos do que funções. Exemplo: print(function() end) OBS: Não se preocupe com isso ainda! Tables ou Arrays São tabelas, ou seja, armazenam mais do que um valor dentro de uma "caixa". Tabelas podem armazenar outras tabelas e todos os valores dentro de uma tabela possuem um identificador, chamado "index" (índice). Tabelas começam com o símbolo { (Chave) e terminam com o símbolo } (Chave). Exemplo: print({}) Userdata Lua é uma linguagem de programação criada para dar extensão à linguagem de programação C e C++. Userdatas são ponteiros que indicam valores em C ou C++. Não se preocupe com eles. Nil Nil simboliza um valor nulo. Não deixa de ser um valor, mas é um valor sem conteúdo. Exemplo: print(nil) As funções retornam! Toda função retorna um ou mais valores, nem que sejam valores nulos (nil), portanto você pode usar uma função dentro do print para escrever os valores que a função retornar! Vamos usar como exemplo a função type(valor), que vai nos retornar uma string com o tipo do valor. Exemplo: print(type(1))




    O exemplo acima vai escrever em sua tela a frase: "Number", pois 1 é um number!

    Exercícios:
    Usando a função print para escrever na tela e type para pegar o tipo de algum valor, obtenha as seguintes frases na tela:







    Resposta no spoiler abaixo, tente fazer antes de ver.








    Creditos:



    99% Skyen Hasus



    1% Vittu


    Aula 4 Operadores e biblioteca

Informação Importante

Confirmação de Termo