Líderes
-
-
-
Skydangerous
MembroPontos1432Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 01/11/12 em todas áreas
-
Crystal Server - Flags Calculator - V1.0
Crystal Server - Flags Calculator - V1.0
Augusto e 2 outros reagiu a Tryller por uma resposta no tópico
3 pontosOlá Você é uma daquelas pessoas que querem calcular as bandeiras para o groups.xml do Crystal Server, mas não sabem onde fazer isso? Esta é a ferramenta que eu criei para fazer os cálculos. É baseado na ferramenta Quickly OTServ, e originalmente criado por "Boleta", parte dos créditos a ele também. Algumas imagems do programa Download Click aqui para baixar Scan VirusTotal - Free Online Virus, Malware and URL Scanner PS: Para rodar esta ferramenta voce precida do Microsoft .Net Framework 4.0 Download: Microsoft .NET Framework 4 (Web Installer) - Microsoft Download Center - Download Details PS2: Voce pode usar para The Forgotten Server também.3 pontos -
[Spell] Sewing Straight
[Spell] Sewing Straight
japavrb15 e 2 outros reagiu a Jedian por uma resposta no tópico
3 pontosOlá galera, aqui eu denovo com outro post, que espero que seja útil pra vocês. Pois é, eu só posto spells, mas é que o resto, praticamente não tem o que inventar, sim, tem, mas o que está exatamente ao alcance de um scripter, nem fácil demais, nem impossível pra ele, é praticamente inexistente, por isso é difícil pra nós, scripters, na minha opinião, demonstrar exatamente o potencial de cada um, e em spells, cada um faz do seu jeito, ficando ruim ou não, é perfeita pra cada um que a faz, estou pensando muito em outros sistemas pra vocês, sério, mas tá difícil. Mudando de assunto, vamos a magia, pensei nela esfregando pedras a ideia seria uma magia que faz uma espada "costurar em linha reta"(como o nome diz) para frente do personagem de acordo com o tipo de arma usada, aí, se houver um target, ela vai até ele e dá "costuradas" conforme a distância que percorreu até chegar nele, quanto mais perto, mais "costuradas" e vice-versa. Vamos instalar: em data/spells/scripts copie um arquivo e cole-o, renomeie para algum nome, apague todo o conteúdo e cole isso dentro: salve e feche, agora em spells.xml adicione a seguinte tag: <instant name="Sewing Straight" words="sewing straight" lvl="35" mana="0" prem="0" needweapon="1" exhaustion="2000" needlearn="0" event="script" value="nome.lua"></instant> edite o nome do arquivo e ajeite conforme as preferências. Pronto, está instalado, nenhuma foto, pois não dá pra ter uma ideia muito boa com elas :S testem e critiquem aí.3 pontos -
Flags Calculator [Html]
Flags Calculator [Html]
Grilo reagiu a Bruno Carvalho por uma resposta no tópico
1 pontoBom, eu vim aqui postar o recurso de uma equipe que eu estava e fizemos para calcular o flags dos gms e balancear tudo. Os flags calculatos encontrados hoje na internet estão desatualizados e esse está junto com a versão mais recente da tfs. Download: Rev 4940+: Flags Calculator.rar Rev 4929 Até 4939: Flags Calculator.rar Rev 4893 Até 4928: Flags Calculator.rar Rev 4151 Até 4892: Flags Calculator.rar Como usar: Vá em data/xml/groups.xml e abra-o. Note que vai ter configurações dos tutores, gms, cms e gods. Lá você pode criar novos grupos dando uma estudada. (Depois farei um tutorial) Note que terá em quase todos uma linha assim: (ex.) flags="3845069447162" customFlags="50331647". Abra a pasta do Flags Calculator. Note que terá 2 arquivos html: Um chama Flags e corresponde com o (ex.) flags="3845069447162". E o outro Custom Flags que é com o (ex.) customFlags="50331647". Abra os dois. No Flags coloque o numero que está no grupo que você quer mudar e aperte Update, então ele ficará de acordo com o que vai estar no seu otserv. No Custom Flags faça a mesma coisa. Quando você mudar alguma coisa as opções vão mudar os numeros lá em baixo e troque na configuração. Creditos: Comedinhasss Gustavo Carvalho1 ponto -
[MoveEvent] Scripts para PokeTIBIA v2.0
Olá a todos! Como notaram-se eu tenho um tópico chamado Scripts para PokeTIBIA aonde passei a vocês um tipo de SHOP in-game utilizando a moeda como Small Diamonds, nesta nova versão estarei ensinando como botar unique item em potions, pokeball como é o caso do PXG, que no inicio as pokeballs e as potions estão como uniques. O problema é o seguinte, que ao selecionar um item para ser unique todos que obterem este item de alguma forma por exemplo em SHOP (NPC Mark) ele também ficará como unique item! Unique Item Primeiramente crie um arquivo em otserv/movements/scripts com o nome de uniqueitem.lua e adicione no arquivo: Agora adicione em movements.xml: 2 parte do Script Crie um arquivo em otserv/movements/scripts com o nome de tradeunique.lua e adicione no arquivo: Agora adicione em movements.xml: <movevent type="TradeAccept" itemid="XXXX" event="script" value="tradeunique.lua"/> OBS: Formatei o tópico em para solucionar alguns bugs! Bom é isso ai galera, qualquer dúvida ou sujestões postem aqui mesmo no tópico! E lembre-se, este e um script mais ou menos, estarei aperfeiçoando mais na medida do possível!1 ponto
-
Glossário - Pixel Art/Sprites
Glossário - Pixel Art/Sprites
Omanacleto reagiu a 3visan por uma resposta no tópico
1 pontoGlossário - Pixel Art/Sprites Significado dos termos Isso é meio que uma guia para iniciantes em Sprites, muitos não entenden os termos então aqui vou explicar cada significado. Glossario: Anti-Aliasing (AA): Efeito utilizado pra deixar o sprite com um ar menos serrilhado, suavizando as cores. A falta de AA é muito comum em sprites de novatos. Backside: Termo usado pra denominar determinado sprite de "costas". Normalmente usado em outfits de players e monstros. Contraste: É o efeito de deixar uma cor mais evidente deixando ela perto de outra que "não combine". Por exemplo deixar cores escuras perto de claras sem uma cor intermédiaria pra suavizar. Pode-se dizer que é o contrário de AA e Pillow Shadding. A Golden Armor do Tibia mostra bem isso: Lineart: Termo não muito usado, refere-se as linhas do sprite. Podem estar muito grossas, sujas, etc. Acontece de errar muito quando se trata de spriters preguiçosos que simplismente arrastam o mouse pelo espaço e fazem linhas quadradas, sem capricho. Aqui vai um exemplo disso e do lado a correção, eliminando os pixels indevidos e deixando a curva mais natural: Mask: São máscaras que cobrem seu outfit pra dar cor a ele quando adicionado ao cliente. Non-sense: Sem sentido. É utilizado quando você faz algo anormal, que não pode ser utilizado na prática. Uma espada de fogo congelado, por exemplo (lol). Outline: As linhas de fora do sprite, que formam sua estrutura. Normalmente são pretas, mas pode variar em certos casos. Na imagem abaixo o exemplo da outline de uma espada: Paint: Programa pra edição de imagens. Normalmente é mais utilizado por novatos, por já acompanhar o Windows. Como não tem muitos efeitos, é tudo feito de maneira muito natural. É mais trabalhoso, mas pode deixar seu trabalho mais valioso. Embora seja considerado por muitos simples demais, também é o preferido de grandes spriters. Paint.net: Programa pra edição de imagens. Perspectiva: É a direção com que o sprite é visto. No Tibia utilizamos a perspectiva em 45º inclinado pra esquerda. Exemplo da evolução de um rascunho fora da perspectiva. Pic (Tibia.pic): Arquivo que acompanha o cliente do Tibia. Nele estão as imagens do cliente, como aquela principal (de abertura), a cor do fundo, a barra de HP/Mana e outros. Pillow Shadding: Efeito que aparece quando se utiliza AA demais, dando suavidade em excesso nas transições de cores (sem contraste). Note no exemplo abaixo a quantidade de camadas de cinza até variar do claro pro escuro: Pixel: Cada "quadradinho" do sprite. Esse termo é utilizado pra descrever tamanho, como por exemplo "32x32 pixels" (32 quadrados de largura e 32 de altura) e pode ser abreviado como "px". Na imagem abaixo, o ponto branco central compreende a 1 pixel. Pixel Art: Estilo de arte que valoriza os pixels ao máximo. Por ser muito detalhista normalmente é feito de imagens pequenas, mas alguns artistas chegam a construir cidades só com pequenos pontos. É um estilo promissor, já que pode ser usado pra ilustrar diferentes áreas (inclusive jogos). Exemplo de Pixel Art feito por Jojow. Ripping: Nessa seção é o ato de postar um sprite que não foi feito por você sem a autorização do verdadeiro criador. É ilegal e está sujeito a punição. Serrilhado: Efeito comum pra novatos. Acontece quando o sprite não está muito "suave" nos seus traços, precisando adicionar AA. Em uma espada, acontece quando está com as laterais sem corte. Lembrando que em alguns casos é necessário deixar serrilhado, quando você quer fazer ums espada gasta, por exemplo. Smooth: Quando aplicado num sprite significa deixa-lo mais limpo, suave. Isso pode ser feito utilizando menos tons de cores e aumentando o contraste. Exemplo: Sprite muito poluído e depois mais limpo. Sombreado: Fase da pintura onde são adicionadas sombras no sprite. Elas dão forma e volume, realçando os detalhes e deixando sua criação mais natural. Exemplo: Na primeira imagem não da ver os detalhes do vestido, por exemplo. Depois de sombreado, pode-se notar os lugares onde tem mais e menos relevo. Sprite: Imagens que construem o gráfico dentro do jogo. Os itens, as casas, as árvores, os monstros... tudo é composto pelos sprites. Spriter: Pessoa que faz os sprites. Textura: É o aspecto visual que o material de determinado sprite passa. Quando tocamos ou olhamos para um objeto ou superfície sentimos se a sua pele é lisa, rugosa, macia, áspera ou ondulada... ou seja, a sua textura. Tibia.dat (dat): Arquivo que acompanha o cliente do Tibia. Nele ficam as informações que 'organizam' as sprites do arquivo Tibia.spr para que o cliente entenda. Tibia.spr (spr): Arquivo onde ficam compiladas todas as sprites do Tibia. Trabalha em conjunto com o Tibia.dat. Observações: - Muitos termos podem ser óbvios para uns, mas para outros pode ser algo esclarecedor. - É difícil lembrar de todos os termos, portanto não coloquei muitos... quem quiser dar uma sugestão de um termo desconhecido, fique avontade. Creditos: 99% K r e x | pelo glossário | 1% Vittu | por trazer para o forum e pela organização |1 ponto -
[TIBIA] Dirigindo seu carro.
[TIBIA] Dirigindo seu carro.
ferlations reagiu a GuuhTorres por uma resposta no tópico
1 pontoDirigindo seu carro. • autor: hudson/guuhtorres/pinpao/arkires/doggynub. • versão do distro: 8.60 O System é assim : quando você digitar o comando !car,aparecerá automaticamente um "carro" já em você,e sairá andando sozinho,para controlar basta usar control + as setinhas,assim que trombar aparece Crashed! e ele some.Você também poderá controlar a velocidade do carro usando !car slow ,para diminuir e !car speed ,para aumentar,e para parar o carro é !car stop ... Adicionando o script em seu ot : 1º-Em data/talkactions/script crie um arquivo .lua chamado car,e no script adicione : --<< Configurable >>-- local storages = { speed = 314622, status = 352993 } -- Empty storages local cfg = { min_speed = 300, -- better not increase than that [ the least speed for a car ] max_speed = 200, -- better not decrease than this [ the maximum speed for a car ] Increase_per_command = 100, -- The speed increase or decrease value per each command (!car speed // !car slow) Car_Explode = true -- Keep it true , so your map isnt filled with cars } -->> END <<-- --<< Functions >>-- function isWalkable(pos, creature, pz)-- if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function getCarSpeed(cid) return getPlayerStorageValue(cid,storages.speed) end function setCarSpeed(cid,value) return setPlayerStorageValue(cid,storages.speed, getPlayerStorageValue(cid,storages.speed) + value) end function setCarStatus(cid,value) return setPlayerStorageValue(cid,storages.status,value) end function carMove(cid) return getPlayerStorageValue(cid,storages.status) > 0 and true or false end function move(cid,time) local dir = getCreatureLookDir(cid) local id = isInArray({1,3},getCreatureLookDir(cid)) and 7267 or 7266 local place = getPositionByDirection(getThingPos(cid),dir,1) if isWalkable(place,true,true,true) then doRemoveItem( getTileItemById(getThingPos(cid),7267).uid > 0 and getTileItemById(getThingPos(cid),7267).uid or getTileItemById(getThingPos(cid),7266).uid ) doTeleportThing(cid,place,false) addEvent(doSendMagicEffect,time+10,place,34) doCreateItem(id,1,place) if carMove(cid) then addEvent(move,time,cid,getCarSpeed(cid)) else doRemoveItem( getTileItemById(getThingPos(cid),7267).uid > 0 and getTileItemById(getThingPos(cid),7267).uid or getTileItemById(getThingPos(cid),7266).uid ) end else doCreatureSetNoMove(cid, 0) doPlayerSendTextMessage(cid,27,"You have hit somthng.") setCarStatus(cid,0) if cfg.Car_Explode then doRemoveItem( getTileItemById(getThingPos(cid),7267).uid > 1 and getTileItemById(getThingPos(cid),7267).uid or getTileItemById(getThingPos(cid),7266).uid ) doSendAnimatedText(getThingPos(cid),"Crashed",TEXTCOLOR_RED) doSendMagicEffect(getThingPos(cid),31) end end end --<< Functions Ends <<-- function onSay(cid, words, param, channel) if param == "speed" then if carMove(cid) then if getCarSpeed(cid) > cfg.max_speed then setCarSpeed(cid,-(cfg.Increase_per_command)) addEvent(doSendAnimatedText,10,getThingPos(cid),"Speeding",TEXTCOLOR_GREEN) else setCarSpeed(cid,cfg.max_speed) doPlayerSendCancel(cid,"O carro está em máxima velocidade.") end else doPlayerSendCancel(cid,"You should start moving first.") end elseif param == "slow" then if carMove(cid) then if getCarSpeed(cid) < cfg.min_speed then setCarSpeed(cid,cfg.Increase_per_command) addEvent(doSendAnimatedText,10,getThingPos(cid),"Slowing",TEXTCOLOR_GREEN) else setCarSpeed(cid,cfg.min_speed) doPlayerSendCancel(cid,"O carro está em minima velocidade.") end else doPlayerSendCancel(cid,"You should start moving first.") end elseif param == "stop" then -- if carMove(cid) then setCarStatus(cid,0) doCreatureSetNoMove(cid, 0) else doPlayerSendCancel(cid,"O carro está parado.") end elseif param == "move" then if not carMove(cid) then if getTileItemById(getThingPos(cid),7267).uid < 1 and getTileItemById(getThingPos(cid),7266).uid < 1 then local item = isInArray({1,3},getCreatureLookDir(cid)) and 7267 or 7266 doCreateItem(item,1,getThingPos(cid)) end setPlayerStorageValue(cid,storages.speed,cfg.min_speed) setCarStatus(cid,1) doCreatureSetNoMove(cid, 1) move(cid,getCarSpeed(cid)) else doPlayerSendCancel(cid,"O carro está em movimento.") end end return true end 2º-Em data/talkactions.xml,adicione a seguinte tag : <talkaction words="!car" event="script" value="car.lua"/> FOTOS : PRONTO,sistema de carro adicionado com sucesso.1 ponto -
Bot está travando
1 pontoMas assim, é comum um pouco de lentidão para atacar e pegar loot, até pelo fato de simular artifícios manuais, mas se o lag estiver demais, como o rafuskao citou diminua o framerate e reduza o maior número possível dos programas de execução passiva (aqueles que iniciam com o pc e acabam sugando CPU), se persistir procure o suporte no site Oficial1 ponto
-
Bot está travando
1 pontoEu não uso redbot por causo disso, meu pc é meio antigo (é antigo ) e mesmo com o update que dizia consertar esse bug pra mim só melhorou 1 pouco, ainda trava, tente diminuir o framerate um pouco enquanto está caçando de bot porque diminuir quando estiver jogando na mão prejudica a jogabilidade.1 ponto
-
Bot está travando
1 pontoClassic Control deve estar habilitado, e atualize o bot, se não me engano, havia uma versão que estava realmente com esse problema.1 ponto
-
Bot está travando
Bot está travando
Peurigoso reagiu a Gabriel Dias por uma resposta no tópico
1 pontoJá que o bot simula o pressionar das teclas do teclado (para evitar um banimento) isto é necessário. Se você realmente quiser me reputar basta clicar no botão "Gostei", abaixo da minha mensagem no canto direito. Qualquer dúvida, estou pelo fórum.1 ponto -
Bot está travando
Bot está travando
Peurigoso reagiu a Gabriel Dias por uma resposta no tópico
1 pontoPara utilizar o RedBot o Tibia deve estar com o Classic Control ativado. Obs.: Se eu ajudei da um REP+1 ponto -
[CreatureEvent] Deixando um item forever
[CreatureEvent] Deixando um item forever
ferlations reagiu a Skydangerous por uma resposta no tópico
1 pontoScript: Deixando um item forever Função: Após morrer, não perderá o item, bom para items vip Testado: Versão 8.6 INSTALANDO vá na pasta creaturescript/scripts e cria um arquivo no formato .lua com o nome de forever e cole isto: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if (getPlayerSlotItem(cid,2).itemid == 2173) then end return true end em seguida, em login.lua adicione o evento registerCreatureEvent(cid, "forever") depois em creaturescript.xml adicione a tag: <event type="preparedeath" name="forever" event="script" value="forever.lua"/> Como Editar: itemid == 2173 No lugar de 2173, troque para o item. getPlayerSlotItem(cid,2) No lugar do 2, troque para a posição daonde o item irá ficar. CONST_SLOT_HEAD = 1 CONST_SLOT_NECKLACE = 2 CONST_SLOT_BACKPACK = 3 CONST_SLOT_ARMOR = 4 CONST_SLOT_RIGHT = 5 CONST_SLOT_LEFT = 6 CONST_SLOT_LEGS = 7 CONST_SLOT_FEET = 8 CONST_SLOT_RING = 9 CONST_SLOT_AMMO = 10 Script Exclusivo Tibia King1 ponto -
{AJUDA} Erro no server..
{AJUDA} Erro no server..
MatheusJoaozinho reagiu a Fabiano Alberto por uma resposta no tópico
1 pontoDiminuir nao tem como, mais como faço para compilar em mode 64bit?1 ponto -
[Tutorial]Framerate
[Tutorial]Framerate
Skydangerous reagiu a HolyField por uma resposta no tópico
1 pontoIntrodução Fala galerinha do TK, tenho visto em vários fóruns, principalmente no oficial, a galera pedindo pro desenvolvedor do RedBot, adicionar a opção de reduzir o framerate para diminuir consumo de CPU e aumentar a capacidade de MC's abertos em um mesmo PC, pelo fato do RedBot não possuir essa função, o uso do computador enquanto se mantêm MC's de bot acaba sendo comprometido. Foi ai que vi num fórum essa alternativa, que ja usava e percebi que grande parte dos botters não conhecia. Procedimento Fiz o tutorial com screenshot para ser mais prático, vale lembrar que esse procedimento serve para qualquer bot, e é uma boa alternativa pros bots que não possuem um redutor efetivo de framerate. Considerações Finais Para cavebot, é interessante não deixar no mínimo(10) pois no mínimo o char anda mas devagar e acaba deixando loots pelo caminho, recomendo deixar em 15~17, e mesmo quando se esta jogando "na mão" um ser humano é capaz de visualizar apenas 30 frames ao mesmo tempo, por isso quando se esta jogando deixe em 32~35, para ter uma boa qualidade de jogo sem comprometer o uso da CPU. Já para treinar 10 é mas do que suficiente. Grato HolyField~1 ponto -
[Resolvido] [PEDIDO] edite este script talkaction
[Resolvido] [PEDIDO] edite este script talkaction
1215171 reagiu a Skydangerous por uma resposta no tópico
1 pontoOlá 1215171 Você postou em lugar errado. Estarei movendo para o lugar correto.1 ponto -
[Resolvido] Traning Monk Falante
[Resolvido] Traning Monk Falante
Maik Oliveira reagiu a Skydangerous por uma resposta no tópico
1 pontoRetire esse yell=1 .. as vezes não existe essa função no seu servidor. Então, retire ele ficando assim <?xml version="1.0" encoding="UTF-8"?> <monster name="Training Monk" nameDescription="a training monk" race="blood" experience="0" speed="210" manacost="0"> <health now="99000" max="99000"/> <look type="57" corpse="3128"/> <targetchange interval="60000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="5000" min="0" max="-1"/> </attacks> <defenses armor="0" defense="0"> <defense name="healing" interval="10000" chance="100" min="24000" max="24000"/> </defenses> <immunities> <immunity physical="0"/> <immunity energy="0"/> <immunity fire="0"/> <immunity poison="0"/> <immunity lifedrain="0"/> <immunity paralyze="0"/> <immunity outfit="0"/> <immunity drunk="0"/> <immunity invisible="1"/> </immunities> <voices interval="2000" chance="5"> <voice sentence="Treine bastante para um dia ser um poderoso Guerreiro!"/> </voices> <loot> <item id="2148" countmax="20" chance="100000"/><!-- gold coin --> <item id="1949" chance="10000"/><!-- scroll --> <item id="2467" chance="10000"/><!-- leather armor --> <item id="2642" chance="6666"/><!-- sandals --> <item id="1987" chance="100000"><!-- bag --> <inside> <item id="2044" chance="6666"/><!-- lamp --> <item id="2689" countmax="3" chance="20000"/><!-- bread --> <item id="2401" chance="3333"/><!-- staff --> <item id="2166" chance="1428"/><!-- power ring --> </inside> </item> </loot> </monster>1 ponto -
[Resolvido] Traning Monk Falante
[Resolvido] Traning Monk Falante
Maik Oliveira reagiu a GuuhTorres por uma resposta no tópico
1 pontoTente assim : <?xml version="1.0" encoding="UTF-8"?> <monster name="Training Monk" nameDescription="a training monk" race="blood" experience="0" speed="210" manacost="0"> <health now="99000" max="99000"/> <look type="57" corpse="3128"/> <targetchange interval="60000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="5000" min="0" max="-1"/> </attacks> <defenses armor="0" defense="0"> <defense name="healing" interval="10000" chance="100" min="24000" max="24000"/> </defenses> <immunities> <immunity physical="0"/> <immunity energy="0"/> <immunity fire="0"/> <immunity poison="0"/> <immunity lifedrain="0"/> <immunity paralyze="0"/> <immunity outfit="0"/> <immunity drunk="0"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="Treine bastante para um dia ser um poderoso Guerreiro!"/> </voices> <loot> <item id="2148" countmax="20" chance="100000"/><!-- gold coin --> <item id="1949" chance="10000"/><!-- scroll --> <item id="2467" chance="10000"/><!-- leather armor --> <item id="2642" chance="6666"/><!-- sandals --> <item id="1987" chance="100000"><!-- bag --> <inside> <item id="2044" chance="6666"/><!-- lamp --> <item id="2689" countmax="3" chance="20000"/><!-- bread --> <item id="2401" chance="3333"/><!-- staff --> <item id="2166" chance="1428"/><!-- power ring --> </inside> </item> </loot> </monster>1 ponto -
[TASK] Natalino
[TASK] Natalino
Reds reagiu a GuuhTorres por uma resposta no tópico
1 ponto[TASK] Natalino Função: Neste script você devera fazer as tarefas do npc (Boneco de Neve) buscando peixes para o lago,assim você irá ganhar uma recompensa. Recompensa: 10 Crystal Coins/90000 EXP. • autor: guuhtorres/hardcorporation • versão do distro: 8.60 -SCRIPT : Entre nos Aquivos: OTserver/Data/NPC CRIE O ARQUIVO Snowman.XML : <?xml version="1.0" encoding="UTF-8"?> <npc name="Snowman" script="data/npc/scripts/Snowman.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look typeex="7172" head="96" body="19" legs="68" feet="95" addons="0"/> <parameters> <parameter key="message_greet" value="Preciso de Peixes. Voce tem todas os Peixes necessarios? Diga {tarefa}. Posso te {pagar} muito bem." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="hi;pagar" /> <parameter key="keyword_reply1" value="Irei precisar de voce para uma {tarefa}. Posso te {pagar} muito bem." /> <parameter key="keyword_reply2" value="Rapido me ajude a Recuperar os Peixes da Lagoa. Nao irei te dizer o que vou lhe dar em troca, mas posso garantir que sera util para sua Jornada. Voce so precisa confiar em mim." /> </parameters> </npc> -PRÓXIMA ETAPA : 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 crystalid = 7159 local storage = 7159 local getstorage = getPlayerStorageValue(cid, storage) local sorrymessage = "Desculpe, voce nao tem todos os Green Perches necessarios para completar as Tarefas..." local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'green perches') then if getstorage == 6 then npcHandler:say("Voce jah completou Esta Tarefa", cid) elseif getstorage < 6 then npcHandler:say("Ola. Green Perches. Voce tem todas os Green Perches necessarios? Diga {tarefa}. Posso te {pagar} muito bem. ", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, 'tarefa') then if getstorage < 1 then npcHandler:say("Voce precisa de 1 {Green Perches} para comecar.", cid) elseif getstorage == 1 then npcHandler:say("Voce esta na segunda missao e precisa de mais 5 {Green Perches} para continuar.", cid) elseif getstorage == 2 then npcHandler:say("Voce esta na terceira missao e precisa de mais 8 {Green Perches} para continuar.", cid) elseif getstorage == 3 then npcHandler:say("Voce esta na quarta missao e precisa de mais 10 {Green Perches} para continuar.", cid) elseif getstorage == 4 then npcHandler:say("Voce esta na quinta missao e precisa de mais 15 {Green Perches} para continuar.", cid) elseif getstorage == 5 then npcHandler:say("Voce esta na sexta e ultima missao e precisa de mais 20 {Green Perches} para Receber o Premio.", cid) elseif getstorage == 6 then npcHandler:say("Voce completou todas as Tarefas.", cid) end elseif msgcontains(msg, 'yes') then if talkState[talkUser] == 1 then if getstorage < 0 then if doPlayerRemoveItem(cid, crystalid, 1) == TRUE then npcHandler:say("Voce jah me deu 1 {Green Perches}. Agora irei precisar de mais {5}.", cid) setPlayerStorageValue(cid, storage, 1) doPlayerAddExp(cid, 1000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 1 then if doPlayerRemoveItem(cid, crystalid, 5) == TRUE then npcHandler:say("Voce jah me deu 5 {Green Perches}. Agora irei precisar de mais {8}.", cid) setPlayerStorageValue(cid, storage, 2) doPlayerAddExp(cid, 5000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 5) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 2 then if doPlayerRemoveItem(cid, crystalid, 8) == TRUE then npcHandler:say("Voce jah me deu 8 {Green Perches}. Agora irei precisar de mais {10}.", cid) setPlayerStorageValue(cid, storage, 3) doPlayerAddExp(cid, 7000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 7) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 3 then if doPlayerRemoveItem(cid, crystalid, 10) == TRUE then npcHandler:say("Voce jah me deu 10 {Green Perches}. Agora irei precisar de mais {15}.", cid) setPlayerStorageValue(cid, storage, 4) doPlayerAddExp(cid, 10000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 10) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 4 then if doPlayerRemoveItem(cid, crystalid, 15) == TRUE then npcHandler:say("Voce jah me deu 15 {Green Perches}. E por ultimo, irei precisar de mais {20}.", cid) setPlayerStorageValue(cid, storage, 5) doPlayerAddExp(cid, 15000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 15) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 5 then if doPlayerRemoveItem(cid, crystalid, 20) == TRUE then npcHandler:say("Obrigado, Por Recuperar os Green Perches Para o Lago Novamente, voce completou todas as Tarefas. Irei te dar uma Recompensa. 10 {Crystais Coins} e alguma experiencia.", cid) setPlayerStorageValue(cid, storage, 6) doPlayerAddExp(cid, 90000) doPlayerAddItem(cid, 2160, 10) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crystalid, 50) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end end end elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then npcHandler:say("OK, Volte quando estiver pronto.", cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -PRONTO,AGORA VOCÊ TEM UMA TASK NATALINA ! Obrigado.Att GuuhTorres.1 ponto -
Novas BBCodes
Novas BBCodes
Bookmarlucas654 reagiu a Renan por uma resposta no tópico
1 pontoExcelente Renato, com essas novas BB, o fórum irá ficar mais organizado.1 ponto -
Novas BBCodes
Novas BBCodes
Bookmarlucas654 reagiu a Private Sub Teste por uma resposta no tópico
1 pontoPor isso que eu gosto do TB.NET, sempre inovando õ/1 ponto -
Novas BBCodes
Novas BBCodes
Bookmarlucas654 reagiu a Arthur por uma resposta no tópico
1 pontoEntão, vamos começar a usar galera. Ficaram muito bons os BBCodes.1 ponto -
[Montanha] Primeira Vez, Novato
[Montanha] Primeira Vez, Novato
Gabriel Dias reagiu a arturmove por uma resposta no tópico
0 pontosok, ok parei '-' Sua montanha ta liinda0 pontos