Ir para conteúdo

Lolksky

Barão
  • Total de itens

    211
  • Registro em

  • Última visita

Histórico de Reputação

  1. Upvote
    Lolksky deu reputação a guixap em [Magia] Meteor Rain   
    Já procurei tanto essa spell xD... Vlws Mano.
  2. Upvote
    Lolksky deu reputação a jedian1 em Kosheideathless Amulet   
    Primeiro: não to lembrado do global, mas nunca vi essa quest, se foi sua, Parabéns pelo RPG, isso ta faltando.

    function onUse(cid, item, fromPosition, itemEx, toPosition) local Ppos = {x = 38, y = 47, z = 7} if itemEx.itemid == 3025 then if getPlayerStorageValue(cid, 36205) == -1 then doRemoveItem(itemEx.uid, 1) doCreatureSay(cid, 'At least I have it back, my precious amulet. I am glad you didn\'t use it! I allow you to ...ahh....enter door.... ahh', 19, {x=toPosition.x, y=toPosition.y-1, z=toPosition.z}) doRemoveItem(cid, item.uid, 1) doTeleportThing(cid, Ppos) setPlayerStorageValue(cid, 36205, 1) end end end
    não testado
  3. Upvote
    Lolksky recebeu reputação de Mastershakke em Onde Por Os Scripts De Itens? '-'   
    Vai na pasta data/actions/scripts copia um arquivo qualquer lá e cola esse seu script dentro e renomeie o nome que desejar.
    Depois vai em data/actions.XML e add essa TAG no final:
     
    Aonde está em XXXX você coloca o Unique ID que voce vai colocar no uniqueID do bau ou qualquer outro objeto da quest no seu map editor. Lembrando que esse Unique ID não pode ser repetido.
    Onde está NOME DO SCRIPT você coloca o nome q vc renomeou o arquivo quando copiou e colou, EX: se vc renomeou o arquivo para "quest", vc coloca "quest.lua" também, sempre deixando o ".lua" depois do nome (script: NOME, TAG: NOME.lua)
     
    Feito isso, vamos as configurações desse script:
     
     
     
    Agora remova todas indicações onde eu mostrei onde editar "<-- bla bla bla" coloridos..."
    Prontinho, espero que tenha entendido
  4. Upvote
    Lolksky deu reputação a SkyDangerous em Material De Apoio Ii   
    Capítulo II - Onde tudo começa..


     
    Obs básica:


    -=> Tenha um programa sempre aberto


    -=> Leia atentamente
     
    Capítulo 2:


    ~>Case Sensitive


    ~>Analisando Programa


    ~>Introdução as Funções


    ~>Argumentos


    ~>Retornando Valores
     
    Case Sensitive:
    Resp: Antes de tudo a linguagem C é "Case Sensitive" ou seja letras ou palavras maiúsculas ou minusculas tem diferença.
     
    Exemplo:

    Xtibia - XTIBIA
    Se declararmos essas variáveis, elas serão diferentes por outro lado com o mesmo nome.
     
    Analisando Programa:
    Resp:
    Vamos analisar esse programa abaixo, porém não utilize CTRL + C e CTRL +V, é sempre melhor escrever para indo memorizar.
     

    #include <stdio.h> int main () { printf ("Meu primeiro Programa! \nEstou Feliz"); system("PAUSE"); return(0); }
     
    Compilando aparecerá assim:

     
    Explicação:
    Resp:
    #include <stdio.h> -> Isso é uma biblioteca, ou seja incluimos algumas funções dentro dela, cujo as funções são de Entrada e Saida (std= standard, io=Input/Output, entrada e saida) ou seja toda vez que for usar comandos que utilizam essas duas funções deve implementar.
    int main () -> esse comando significa a criação de uma função main (Principal), todos os programas deve existir pois é ela que será chamada primeiro de tudo.
    As funções são delimitadas por {}, o bloco de comando que estiver dentro dela será executado.
    A palavra INT significa que retornará um valor INTEIRO, iremos ver futuramente.
    int main(int argc, char *argv[])-> As vezes pode vir assim , argc e argv dão ao programador acesso a linha de comandos. Eu não sei muito, isso é mais utilizado no Terminal do Linux, e não programa para Linux
    system("PAUSE"); -> A função dele é simplesmente PAUSAR o programa , fazendo com que ele execute e não sai sem você ver o resultado.
    printf ("Meu primeiro Programa! \nEstou Feliz"); -> A função printf faz chamar a função passando a string(seguencia de caracteres) como um argumento. Por isso utilizamos aquele biblioteca stdio.h pois ele imprimirá na tela do computador.
    O "\n" conhecida como new line, a função dela é simplesmente pular uma linha, ou seja o cursos passará para a próxima linha.
     
    Observação Importante: A maioria dos comandos terminam com um ";"
     

    Introdução às Funções


    Resp:Uma função é um bloco de códigos que pode ser usado diversas vezes. A função torna o programa mais facil de intender e fica bem mais estruturado.
     
    Segue o exemplo:

    #include <stdio.h> int mensagem () { printf ("SkyDangerous "); return(0); } int main () { mensagem(); printf ("Ensinando Funcao!\n"); system("PAUSE"); return(0); }
    Mesma coisa que o primeiro programa, porém escrevi coisas novas.
     
    Compilando aparecerá assim:

     
    Explicação:
    Resp:
    int mensagem () -> Percebe-se que criamos uma função nova, nela você poderá um bloco de comandos qualquer.
    Um bom exemplo escrevemos uma frase "SkyDangerous" , e retornamos nada.
    mensagem(); -> Esse comando chama a função chamada mensagem passando nemhum parâmetro "()", como lá estava escrito "Skydangerous" ele printou a primeira função e logo em seguida mostrou o Ensinando Funcao na função principal.
     

    Argumentos


     
    Explicação:
    Resp:São as entradas que a função recebe.É atravez dele que passamos parâmetros para a função.As funções printf() e scanf()são funções que recebem argumentos.
     
    Segue o exemplo:

    #include <stdio.h> int square (int x) { printf ("O quadrado e %d",(x*x)); return(0); } int main () { int num; printf ("Entre com um numero: "); scanf ("%d",&num); square(num); printf ("\n"); system("PAUSE"); return(0); }
     
    Compilando aparecerá assim:

     
    Explicação:
    Resp:
    int square (int x) -> Nesse comando
     
     
     
     
    -=
    Terminarei mais tarde aguardem. !
  5. Upvote
    Lolksky recebeu reputação de Frandruid em Como Criar Uma Sala Onde So Pode Netrar Um Player De Cada Vez?   
    vai em actions/script copie e cole uma rquivo qualquer e cole isso dentro:
     
    agora vai em actions.XML e add essa TAG:
    laranja: mesmo UID que via colocar no script e no item a dar use no mapa.
     
    como colocar area:
    A______
    |...........|
    |...........|
    |...........|
    |_______B
     
    A : coloque o valor X e Y, onde esta grifado com cor azul no script
    B : coloque o valor X e Y onde esta grifado com cor vermelha no script
    e por ultimo o andar, onde esta em negrito vermelho (z=7)
  6. Upvote
    Lolksky deu reputação a Heitorzimnn em Advanced Reset System Para Tibia   
    Eae galerinha do :XTibia_smile: esse é o meu primeiro post e como é muito procurado por varios hosters de ot server aquele reset que aparece no look e hoje estou aqui postando.Chega de conversa e vamos ao que interessa:
     
    Primeiro Passo: vá na pasta de seu OT server e vá até talkactions depois Scripts e copie e cole um arquivo .lua apague tudo o que está dentro e coloca o seguinte:
     
     
     
    Depois vá até o talkactions.xml e la em players coloque:
     
     
     
    ~~Credits~~
     
    75% By MarcelloMkez(por ter feito o script)
    25% By Heitorzimn(por ter postado)
     
    Obrigado estarei me esforçando ao maximo para ajudar todos.
     

     
    Como mecher:
     
    Para editar o level etc...:
    --[Configurações do Reset]__
     
    resetStatus = {
     
    player = getPlayerGUID(cid), -- Não Mude.
    lvl = 717217 , -- Level Necessário para Resetar. [valor]
    lvlreset = 8, -- Level que retornará após o Reset. [valor]
    limite = 50, -- Máximo de resets que um player pode chegar. [valor]
    newClasse = 1, -- Id da Nova Vocação após o Reset. [valor]
    tempo= 2 -- Tempo para o Player deslogar para Resetar. Em segundos. [valor]
     
    Em Vermelho: Level que o player ira reset , que no caso resetara em 717217.
    Em Verde forte: Level que o player ficara apos resetar...
    Em Rosa: O Limite de resets , ou seja depois de 50 resets o player nao podera mais resetar...
    Em Laranja: A Vocacao que o player vooltara quando resetar...
    Em Roxo: O Tempo que o player levara para deslogar apos falar !reset ou !resetar...
     
     
    Vou continuar me esforçando para ajudar vocês! :weight_lift:
  7. Upvote
    Lolksky deu reputação a lolxd123 em [Actions] Ceremonial Ankh Mostrando As Blesses   
    Como todos sabem o item Ceremonial Ankh obtido na Pits of Inferno Quest é utilizado no Global para checar as Blesses de seu personagem, o script que eu irei postar faz com que o mesmo ocorra em seu OT.

     
    Em data\actions e em actions.xml debaixo da linha:
     

    <action itemid="2120" event="script" value="tools/rope.lua"/>
     
    Adicione:
     

    <action itemid="6561" event="script" value="tools/ceremonial_ankh.lua"/>
     
    Em data\actions\scripts\tools crie um arquivo chamado ceremonial_ankh.lua e coloque o seguinte dentro:
     

    local blessings = {"\nWisdom of Solitude", "\nSpark of the Phoenix", "\nFire of the Suns", "\nSpiritual Shielding", "\nEmbrace of Tibia"} function onUse(cid, item, fromPosition, itemEx, toPosition) local result = "Received blessings:" for i = 1, 5 do result = getPlayerBlessing(cid, i) and result .. blessings[i] or result end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 20 > result:len() and "No blessings received." or result) return TRUE end
     
    Se tudo der certo devera mostar as blesses quando o Player der use na Ankh

     
     
    Créditos: Não me lembro tutorial muito antigo, e lolxd123 por desenterralo e refaze-lo para postar
  8. Upvote
    Lolksky deu reputação a digo1040 em Slot System   
    eai, voce pode fazer assim:

    function getper() return math.random(0,10) end
     
    Troque o 0 pelo valor mínimo que você quer e o 10 pelo valor máximo.
     

  9. Upvote
    Lolksky deu reputação a NERTOM em [Com Video] 2 Novas Magias 8.6 [Com Video]   
    2 Magias novas para ot 8.6


     
    (não sei se esta na seção certa e meu portugues ta uma merda n dem bola para acentuação)
     
    Boa Noite a todos, estou trazendo 2 magias novas 8.6 que tem no tibia rpg brasil a exori mas flam e exori mas frigo é a minha primeira vez que estou postando e fazendo spells pq eu n sabia nada depois que eu li 500 topicos sobre como fazer scripts e magias foi que eu entendi bom vamos ao que intereça
     
    exori mas frigo
     
     
     
    exori mas flam
     
     
     

    Video mostrando as imagens





  10. Upvote
    Lolksky recebeu reputação de hique86 em Arrumando Item/armor   
    Vai em data/movements.XML
    procure pelo ID 7884, e add isso:
    <vocation id="3"/>
    <vocation id="7" showInDescription="0"/>
    <vocation id="4"/>
    <vocation id="8" showInDescription="0"/>
  11. Upvote
    Lolksky deu reputação a eduardo190696 em Auto Loot   
    CRIADOR : JANO
    Retirado: Outro forum
    Script: Auto Loot *-*
     
    creaturescripts.xml

    <event type="login" name="aloot_reg" event="script" value="aloot.lua"/> <event type="kill" name="aloot_kill" event="script" value="aloot.lua"/>
    creaturescripts/scritps
    aloot.lua

    function onLogin(cid) registerCreatureEvent(cid, "aloot_kill") return true end local stor = 7575 function autoloot(cid, target, pos) local function doStack(cid, itemid, new) local count = getPlayerItemCount(cid, itemid) if (count > 100) then count = count - math.floor(count / 100) * 100 end local newCount = count + new if (count ~= 0) then local find = getPlayerItemById(cid, true, itemid, count).uid if (find > 0) then doRemoveItem(find) else newCount = new end end local item = doCreateItemEx(itemid, newCount) doPlayerAddItemEx(cid, item, true) end local function scanContainer(cid, uid, list) for k = (getContainerSize(uid) - 1), 0, -1 do local tmp = getContainerItem(uid, k) if (isInArray(list, tmp.itemid)) then if isItemStackable(tmp.itemid) and (getPlayerItemCount(cid, tmp.itemid) > 0) then doStack(cid, tmp.itemid, tmp.type) else local item = doCreateItemEx(tmp.itemid, tmp.type) doPlayerAddItemEx(cid, item, true) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Looted ' .. tmp.type .. ' ' .. getItemNameById(tmp.itemid) .. '.') doRemoveItem(tmp.uid) elseif isContainer(tmp.uid) then scanContainer(cid, tmp.uid, list) end end end local items = {} for i = getTileInfo(pos).items, 1, -1 do pos.stackpos = i table.insert(items, getThingFromPos(pos)) end if (#items == 0) then return end local corpse = -1 for _, item in ipairs(items) do local name = getItemName(item.uid):lower() if name:find(target:lower()) then corpse = item.uid break end end if (corpse ~= -1) and isContainer(corpse) then scanContainer(cid, corpse, tostring(getPlayerStorageValue(cid, stor)):gsub('_', ''):explode(',')) end end function onKill(cid, target, lastHit) if not isPlayer(target) then local infos = getPlayerStorageValue(cid, stor) if (infos == -1) then return true end local list = tostring(infos):explode(',') if (#list == 0) then return true end addEvent(autoloot, 150, cid, getCreatureName(target), getCreaturePosition(target)) end return true end
    talkactios.xml

    <talkaction words="/aloot" hide="yes" event="script" value="aloot.lua"/>
     
    Talkaction/scrips

    local stor, limit = 7575, 5 --storage, limit to add. local allow_container = false --empty! not looted with items, atleast for now. function onSay(cid, words, param) local expl = param:explode(':') local action, rst = expl[1], expl[2] if (action:lower() == 'check') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):explode(',') end local txt = 'Autoloot List:\n' if (#list > 0) then for k, id in ipairs(list) do id = id:gsub('_', '') if tonumber(id) then txt = txt .. getItemNameById(tonumber(id)) .. ((k < #list) and '\n' or '') end end else txt = 'Empty' end doPlayerPopupFYI(cid, txt) elseif (action:lower() == 'add') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):gsub('_', ''):explode(',') end if (#list >= limit) then return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.') end local item = tonumber(rst) if not item then item = getItemIdByName(rst, false) if not item then return doPlayerSendCancel(cid, 'not valid item.') end end if not allow_container and isItemContainer(item) then return doPlayerSendCancel(cid, 'this item can not be autolooted.') end local attrs = getItemInfo(item) if not attrs then return doPlayerSendCancel(cid, 'not valid item.') elseif not attrs.movable or not attrs.pickupable then return doPlayerSendCancel(cid, 'this item can not be autolooted.') end if isInArray(list, item) then return doPlayerSendCancel(cid, 'already added.') end table.insert(list, tostring(item)) local new = '' for v, id in ipairs(list) do new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '') end doPlayerSetStorageValue(cid, stor, tostring(new)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< has been added to the autoloot list.') elseif (action:lower() == 'remove') then local infos, list = getPlayerStorageValue(cid, stor), {} if (infos ~= -1) then list = tostring(infos):gsub('_', ''):explode(',') end if (#list == 0) then return doPlayerSendCancel(cid, 'You dont have any item added.') end if (#list >= limit) then return doPlayerSendCancel(cid, 'You already have ' .. limit .. ' autolooting items.') end local item = tonumber(rst) if not item then item = getItemIdByName(rst, false) if not item then return doPlayerSendCancel(cid, 'not valid item.') end end if not isInArray(list, item) then return doPlayerSendCancel(cid, 'This item is not in the list.') end local new = '' for v, id in ipairs(list) do if (tonumber(id) ~= item) then new = new .. '_' .. id:gsub('_' ,'') .. ((v < #list) and ',' or '') end end doPlayerSetStorageValue(cid, stor, tostring(new)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Item >>' .. getItemNameById(item) .. '<< removed from the autoloot list.') end return true end
     
    Usando
     
    /aloot check
    Cheka a Lista dos Loots
     
    /aloot add:itemid ou nome do item
     
    Exemplo
    /aloot add:worm
    /aloot add:2170
     
    16:42 Item >>worm<< has been added to the autoloot list.
     
    Para remover
    /aloot remove:worm
    /aloot remove:2170
     
    Exemplo Testado:
    16:41 Looted 2 gold coin.
    16:41 Looted 1 cheese.
     
    é isso pessoal gosto da + Rep
  12. Upvote
    Lolksky deu reputação a Demonbholder em Script De Area Com Criatura   
    Primeiro:
     

    function onStepIn(cid, item, position, lastPosition, fromPosition) for posx = 16, 23 do for posy = 125, 133 do local thing = getThingFromPos({x=posx, y=posy, z=7, stackpos=253}).uid if isMonster(thing) then doRemoveCreature(thing) end end end return TRUE end
     
    Segundo:
     

    function onUse(cid, item) local id = 2160 if getPlayerStorageValue(cid, 34050) == -1 then if getGlobalStorageValue(34050) == -1 then if math.random(1, 100) == 50 then doPlayerAddItem(cid, id, 1) setGlobalStorageValue(34050, 1) else setPlayerStorageValue(cid, 34050, 1) end else doPlayerSendCancel(cid, "Este item já foi pego.") end else doPlayerSendCancel(cid, "Você já tentou pegar esse item.") end end
  13. Upvote
    Lolksky deu reputação a 951357 em [Creatureevents] Anunciador De Quem Mata E Quem Morre.   
    Olá XTibianos,
     
    Basicamente é isso:
     
    Se o player morrer automaticamente é enviada uma mensagem no BROADCAST para todos os jogadores dizendo quem matou e quem morreu.
    O sistema funciona tanto para mortes PvM(Player versus Monster) quanto para PvP (Player versus Player).
     
    Vou citar dois exemplos antes de exibir o script:
     
    Juanez tacou uma SD em Pedro e Pedro morreu.
    A seguinte mensagem é exibida:
    Juanez matou Pedro.
     
    Outro exemplo:
     
    Laurindo estava caçando Dragons quando de repente ele morre.
    A seguinte mensagem é exibida.
    Dragon matou Laurindo.
     
    Agora vamos ao script
     
    Em data/creaturescripts/scripts abra arquivo chamado playerdeath.lua, apague tudo que estiver nele e adicione o seguinte conteúdo:
     
    Salve e feche.
     
    OBS.¹: Faça o backup do arquivo playerdeath.lua antes de qualquer alteração em seu conteúdo.
     
    Créditos:
    Aman Kartholic - Eu - 50% de participação na elaboração do script.
    kydrai - Membro XTibia - 50% de participação na elaboração do script.
     
    Se for postar em outro fórum favor colocar os devidos créditos.
     
    Script testado na versão:
    TFS - 3.4 (Crying Damson)
     
    Problemas na inserção do script favor postar aqui.
    OBS.²: Responderei as dúvidas feitas somente 10 dias após a postagem do tópico.
     
    Cya ~
  • Quem Está Navegando   0 membros estão online

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