Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 05/04/12 em todas áreas

  1. Vodkart

    Lógica De Programação - Algoritmos

    ~~> O que é uma lógica de programação? Somente após aprender lógica de programação, você estará apto a estudar e aprender as linguagens de programação, seja ela qual for. Então por isso temos aprender a desenvolver algoritmos. ~~> O que é um Algoritmo? Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, um algoritmo é o caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos. ~~> E como devemos aprender algoritmos? Esse aprendizado de algoritmos não se consegue a não ser através de muitos exercícios. Lembre-se que você não irá aprender se apenas: copiar algoritmos, estudar algoritmos, Você só vai aprender algoritmos só se: construir um algoritmo, testar alguns algoritmos. ~~> Exemplos de Algoritmos Ir ao Shopping Fritar um Ovo Para que uma pessoa possa seguir esse algoritmo, é necessário que ela saiba o significado das palavras como "colocar", "retirar", "quebrar"... E que nenhuma instrução possua mais de um significado (não ambiguidade) um algoritmo nada mais é do que uma receita que mostra passo a passo os procedimentos necessários para a resolução de uma tarefa, ele não responde a pergunta “o que fazer?”, mas sim “como fazer”. Agora vamos analisar o script: - Para começar, você pode ver que as ordens são dadas em sequência de cima para baixo (como fazemos a leitura). - A pessoa tem que fazer exatamente o que está descrito ao longo do script - Em vermelho, vemos que em certos momentos a pessoa deve tomar algumas decisões de acordo como anda a situação descrita Bom vamos estudar um script agora, irei deixar em spoiler alguns identificadores léxicos 1 - function onSay(cid, words, param) 2 - doPlayerAddItem(cid,2173,1) 3 - if doPlayerRemoveMoney(cid, 1000) then 4 - doSendPlayerTextMessage(cid,"Você comprou um aol!",23) 5 - else 6 - doPlayerSendCancel(cid,"Você não tem dinheiro.") 7 - end 8 - return TRUE 9 - end Podemos perceber que temos um erro de algoritmo neste script, na linha 2 percebemos que: Ele adiciona o item ao jogador sem ter checado que iria remover ou não o dinheiro, enquanto o correto seria: 1 - function onSay(cid, words, param) 2 - if doPlayerRemoveMoney(cid, 1000) then 3 - doPlayerAddItem(cid,2173,1) 4 - doSendPlayerTextMessage(cid,"Você comprou um aol!",23) 5 - else 6 - doPlayerSendCancel(cid,"Você não tem dinheiro.") 7 - end 8 - return TRUE 9 - end Pois agora na linha 2 ele irá checar se o jogador tem o dinheiro então só assim será executado um bloco de comandos pré definidos. ~~> Exercícios: 1° - Faça um algoritmo para ir para escola 2° - Faça um algoritmo para tomar banho
    3 pontos
  2. @Patrickstrela local function damage(cid, area, eff) if not isCreature(cid) then return true end doAreaCombatHealth(cid, DARKDAMAGE, getThingPositionWithDebug(cid), area, -min, -max, eff) end addEvent(damage, 400, cid, wtf2, 136) addEvent(damage, 800, cid, wtf3, 133) addEvent(damage, 1200, cid, wtf4, 136) addEvent(damage, 1600, cid, wtf5, 133) soh um exemplo... ^^ colocando como parametro o 'eff' dai tu pode colocar o efeito q queres no addEvent ^^
    2 pontos
  3. Iai Xtibianos vim trazer meu Poketibia Erondino Site Server v11 com varios sistemas novos,bugs corrigidos etc.... vamo ver o que fiz de novo nessa versao 11.2 v11.2 (1 a 49 itens listados) 1-Colocado boost sistema (Boost sistema aumenta o ataque dos pokemon pelos moves m1,m2,m3 etc.. n aumenta vida speed etc... 2-Colocada novas sprites nos itens: >Lendaria box >Shiny box >Johto Box >Shiny rod 2 >Shiny rod 1 >Box Thirty 3-Colocado sistema m1 a m12 nos pokemon: >Shiny aerodactyl >Shiny Snorlax >Shiny victreebel >Shiny Beedrill >Shiny Alakazam >Shiny Dragonair >Shiny Dragonite 4-Concertado pokemon que vinha ne box bugado: >Shiny zubat >Shiny Seadra >Shiny Muk 5-Acrescentado na shiny box >Shiny aerodactyl >Shiny Snorlax >Shiny victreebel >Shiny Beedrill >Shiny Alakazam >Shiny Dragonair >Shiny Dragonite 6-Tirado o bug da invisibiladade do gengar 7-Concertado loot: >Eevee 8-Acrescentado ou concertado moves nos pokemon: >Abra >Beedrill >Clefairy >Chansey >Blissey >Dratini >Dodrio >Eevee >Exeggcute 9-Concerta o bug das novas ball que n dava para heala 10-Colocado um npc de boost no 1 andar de cada templo 11-Posto um npc de task por itens no laboratorio do bill onde o player tem q dar para ele 30 feather e em troca ele da 10 hd e 500 de exp 12-Colocado um npc de task por itens na cabana indo para pewter quest onde o player tem q levar 100 stone orb e em troca recebera 1 rock stone e 5000 de exp 13-Adicionados novas mensagens no global events que ira ajudar os players durante o jogo 14-Colocado shiny estaca magica no server... 15-Trocado os itens das estacas magicas agora a estaca magica é o msm iten so q sem o brilho e a shiny estaca magica contem brilho 16-Colocado Scyther na estaca magica 17-Trocado o premio da quest das ball pois ninguem vai fazer ela posto para ganhar 15 ultra ball e 30 super ball 18-Fortalecido os pokemons >Shiny Scyther >Elite Hitmonlee >Elite Hitmonchan 19-Concertado o loot e a exp nos pokemon johto (nas hunts) >Aipom >Ampharos >Ariados >Azumarill >Bellossom >Crobat >Croconaw >Delibird >Donphan >Dunsparce >Elekid >Feraligatr >Flaaffy >Furret >Girafarig >Granbull >Hoothoot >Houndoom >Larvitar >Ledian >Ledyba >Mareep >Marill >Meganium >Misdreavus >Noctowl >Phanpy >Pichu >Pineco >Politoed >Scizor >Sentret >Snubbull >Spinarak >Stantler >Steelix >Sunkern >Totodile >Typhlosion >Tyranitar obs-Essas sao as hunts de johtos ja existentes no 1 continente... 20-Facilitado a quest da box 2... 21-Dificultado a quest de lvl 30 e tirado o tp para ir embora pois pela porta da para ir embora... 22-Adicionado um segundo continente com novas cidades onde os pokemons e as ilhas q fica ao redor das cidades sao johtos obs-As casas das cidades n da para comprar obs2-Mapa feito por betinhowz666 tirei as hunts kanto q tinha e posto hunts johtos 23-Adicionado um bloco de notas para saber quais johtos tem nos 2 continentes 24-Adicionado um npc que joga 21 e jogo dos 6 em cima do cassino em celadon e umas placas explicando como jogar (o jogo n ganha nem pede muita grana é mais para diversao ) 25-Colocado evoluçoes nos pokemons johto que adicionei sistema m1 na v10 26-Colocado control mind no haunter 27-Colocado para vim pokemons johto nas rods: >Old rod >Advanced Rod >Shiny rod 1 >Shiny Rod2 28-Agora os npcs saffari da 30 saffari ball ao entrar no saffari 29-Aumentado o preço para o saffari kanto de 300dl para 500dl 30-Colocado para fearow pidgeotto e pidgeot para pegar a pena brilhosa 31-Feito equipe rocket quest onde o giovanni pede uma pena brilhosa em troca de uma box 2 32-Colocado um buero com um caixote em cima no cassino em saffron para dar acesso ao esconderijo da equipe rocker 33-Colocado o giovanni no esconderijo da equipe rocket 34-Deletado a ilha da quest da venom stone quest e posto agua 35-Feito um npc de quest de venom stone ele pede 50 bat wing e em troca ele da 1 venom stone 36-Posto o npc da quest da venom stone em lavender 37-Modificado a area de dodou e dodrio de fuchsia e posto hunts de: >Ponyta >Rapidash >Doduo >Dodrio >Tauros 38-Trocado a localizaçao do npc do saffari johto agora ele se localiza em uma ilha la no continente johto 39-Feito uma ponte na entrada da pewter quest ate uma cidade do 2 continente 40-Expandido a ponte que vai de lavender ate a floresta de vermilion agora ela pode ir tbm ate a floresta de fuchsia 41-Feito uma ball chamada "mega ball" ela pega todos pokemon de primeira a fomra dela é de pokeball o efeito on e fail cath tbm mas quando captura vira uma dark ball (Como minha equipe viajo e me mando uma master ball inutil foi o unico jeito q achei espero que compreendem e aguarde a proxima versao com ela arrumada ) obs- Id dela é 2149 42-Configurado o arquivo cath para fica mais facil pega os pokemons 43-Concertado o comando /town pois algumas cidades n tinha ficando... /town 1 --> Saffron /town 2 --> Cerulean /town 3 --> Lavender /town 4 --> Fuchsia /town 5 --> Celadon /town 6 --> Viridian /town 7 --> Cinnabar /town 8 --> Pewter /town 9 --> Vermilion /town 10 --> Pallet /town 11 -->Ilha inicial 44-Trocado a first city que era parllet por uma ilha obs-Essa ilha so server para pega o pokemon inicial e o kit ao sair dela nao tem volta 45-Feito uma ponte de pallet ate cinnabar 46-Feito quest da shiny estaca magica 47-Colocado um navio na praia de cerulean com acesso para a ilha de pigeotto 48-Colocado um navio na ilha de pigeotto para ir para a praia de cerulean obs-Ao ir na direçao do navio se vai direto para a ilha depois fasso um sistema para demorar chega um pouco 49-Tirado a lendaria box quest Download do Poketibia Erondino Site Server v11.2: clike aki Scan do server: Aki Versao Atualizada v13.1: http://www.xtibia.com/forum/topic/210168-poketibia-erondio-site-e-suas-versoes/page__fromsearch__1 Créditos v11.2: Erondino Nic Loeher Urbanchaos Caioo Gazulina (Pelo client) betinhowz666 (usei seu mapa para o 2 continente) obs-Vlw ai ekipe versao fico muito mais massa com suas ajudas obs2-Urbanchaos que pena que vc tem q sair da ekipe mas vc sempre será bem vindo de volta obg pelo seu trabalho na v11
    1 ponto
  4. Esse servidor é o melhor global 8.60 da atualidade, ele é vendido pelo site da otprojects, eu o comprei porém a primeira pessoa que divulgou foi o Guizinhoo então irei da os créditos a ele. O servidor é bem completo, com muitas funções boas e com o mapa mais completo, vocês podem aproveitar várias coisas do servidor.. Quem tem problemas com site, aconselho usar este.. Junto com database e outros.. eu não o baxei, e nen testei.. eu tenho ele aqui em casa pois eu também o comprei, se for ele mesmo, vocês estão conseguindo o melhor global disponível no momento. de graça. Global Pack FULL Servidor: * War System * Addon Bonus * Task completas (quest log) * Paralyze exaust * Raids completas e com horário * 5 eventos automáticos e com horário (Coliseum, Zombie, Loterry, Dota e War of Emperium) * Mapa COMPLETO * Todas as quests * Uptime +400h * Arena Hunting (VIP) * Recompensa lvl 45 * 11 Cidades + 12 Ilhas (VIP) * 120+mb * Sha1 ~> password é salvo em códigos * Database completa Site: * Proteções * Informaçoes sobre, task, raids, 5 eventos, addon bonus, War System * Melhor gesior da atualidade Downlaods: Download Servidor http://www.4shared.c...OTProjects.html Download WebSite http://www.4shared.c...or_extreme.html Download tfs+dll 4.0 ~> http://speedy.sh/dKCC9/DLLS-DISTRO.rar Download Dll [opção 2] http://www.4shared.c...s_e_Distro.html ____________________________________________________ Downlaod somente Mapa http://www.xtibia.co...me-world-118mb/ Download somente Db http://speedy.sh/9WDFh/database.sql ____________________________________________________ Scans: * Não sei se ja colocaram o servidor aqui no xtibia, qualquer coisa contate-me __________________________________ Eu estou usando o site no meu yurots, caso queiram da uma olhada é esse: pvp24h.servegame.com <- click
    1 ponto
  5. Vodkart

    [Talk] Deathlist [Fixed/no Crash]

    Atualizado V1.0: Mostra últimas mortes do servidor: você pode usar o comando !deathlist NOME ex: !deathlist Carlin: in your db execute this query: CREATE TABLE death_list ( id INTEGER NOT NULL, player_id INTEGER NOT NULL, date INTEGER NOT NULL, level INTEGER NOT NULL, killer_name INTEGER NOT NULL, PRIMARY KEY ( id ) ); creaturescript death_list.lua function onDeath(cid, corpse, deathList) local str = "" for _, pid in ipairs(deathList) do if isCreature(pid) == true then str = str.."".. (str == "" and "" or ",") ..""..getCreatureName(pid) else str = str.."".. (str == "" and "" or ",") .." a field item" end end str = str.."." death = str .. " ".. (getPlayerBlessing(cid, 5) and "[Blessed]" or getPlayerSlotItem(cid, 2).itemid == 2173 and "[AOL]" or "") db.executeQuery("INSERT INTO `death_list` (`player_id`, `date`, `level`, `killer_name`) VALUES ('".. getPlayerGUID(cid).."', '".. os.time() .."', '".. getPlayerLevel(cid) .."', '".. death .."');") return true end creaturescript.xml <event type="death" name="DeathList" event="script" value="death_list.lua"/> creaturescript/script/login.lua registerCreatureEvent(cid, "DeathList") talkactions deathlist.lua limit = 5 function onSay(cid, words, param, channel) str = "" if param == "" then local qry = db.getResult("SELECT `player_id`, `date`, `level`, `killer_name` FROM `death_list` ORDER BY `date` DESC LIMIT 0, " .. limit) if(qry:getID() ~= -1) then repeat str = str .."\n "..os.date("%d %B %Y %X ", qry:getDataInt("date")).." "..getPlayerNameByGUID(qry:getDataString("player_id")).." died at level "..qry:getDataInt("level").." by:\n"..qry:getDataString("killer_name") until not(qry:next()) qry:free() else str = "Não há mortes no servidor." end doPlayerPopupFYI(cid, "Last Deaths:\n\n" .. str) return true end local getGuid = getPlayerGUIDByName(param:lower()) if not getGuid then doPlayerSendCancel(cid, "Este Player não existe.") return true end local qry = db.getResult("SELECT `id`, `date`, `level`, `killer_name` FROM `death_list` WHERE `player_id` = " .. getGuid .." ORDER BY `date` DESC LIMIT 0, " .. limit) if(qry:getID() ~= -1) then repeat str = str .."\n "..os.date("%d %B %Y %X ", qry:getDataInt("date")).." died at level "..qry:getDataInt("level").." by:\n"..qry:getDataString("killer_name") until not(qry:next()) qry:free() else str = "Não há mortes." end doPlayerPopupFYI(cid, "Last Deaths of: " .. param .. ".\n\n" .. str) return true end talkactions.xml <talkaction words="!deathlist" script="deathlist.lua"/>
    1 ponto
  6. [Oficial] Real Global Map hello Galerinha do Xtibia, Venho aqui desponibilizar o mapa do Doidin (8.57 Só que editado com minhas ideias e na versão 8.60 OBS: Para rodar esse servidor No seu pc voce tem que ter 2GB+ de memória ram e em bom estado. ( nao recomendo abrir o otserv com o mapa editor aberto junto). Real Global Map: - Versão do Tibia:8.60 - Mapa global 95% full. - Quase todos os NPC's do Tibia Global. - Servidor com o mínimo de bugs possíveis. - Scripts arrumados. - Entre outros... Cidades: Quest's: Oque tem de melhor que o servidor do Doidin? Quase nada pois ele copio minhas coisas x) Algumas Print Screen: para quem nao conseguiu abrir o spolier e gostaria de ver as SS link abaixo: print screen.txt Créditos: - Doohz Rush - Doidin - Alissow - DoidinMapper - RenanSdc - TFS Team - Styller Team - Alissow Team - Feragon - Viana! - Azevedo ATUALIZADO DIA 28/10/2010 Scan: Arquivo Muito grande para fazer scan. Remeres Mapa Editor 2.0 ( nao use outra versão ou vai bugar o mapa: Download Aqui! Doohz Rush Server : Download Aqui! OBS: FOI ARRUMADO TODOS OS LOOT'S DOS MONSTROS, E FOI ADICIONADO A NOVA AREA DE ZÃO (OS Draken elite etc, todos configurados perfeitamente ) Atualização 2.2; Arrumado os Teleport's dos Drakens; Editado os seal's da POI (+ parecido com global); adicionado 1 npc de runa em northern de ZAO; arrumada as Houses, e bugs de Cormaya; Retirado BUG de money; Arrumado detalhes do mapa. MSN: Doohz_rush@hotmail.com Gostou? REP+ Ali do lado :arrow:
    1 ponto
  7. Vodkart

    Level Protection

    Serve para que o jogador até determinado level não perca Skill,Exp,Loot ao morrer(configurável) creaturescript/script levelprotection.lua V1 é uma versão totalmente configurável,magic,exp,skills! V2 -- é uma versão já configurada, false para não perder skills e level e true vai perder tudo. creaturescript.xml <event type="death" name="ProtectLevel" event="script" value="levelprotection.lua"/> creaturescript/script/login.lua adicione: registerCreatureEvent(cid, "ProtectLevel")
    1 ponto
  8. Fala galera do XTibia, tudo na paz ? Venho aqui apresentar meu novo trabalho. Um mapa 70% próprio. Eu estava sem nada para fazer, entao resolvi criar um mapa de bobeira, e depois de um tempim fazeno ele, comecei a gostar dele e o aprimorei. Bom, então vamos deixar de papo e vamos conhecer o mapa. Informações sobre o Map: Existem 2 cidades no Servidor. 1 city free e uma vip. 9 Hunt's Free e 5 VIP's 2 Novas Vocation's 2 Quest's. Apenas para as vocations (1 quest free e a outra vip) Fast Atk adicionado no servidor Sistema de Compra de Iten vip por baú. (Voce tendo os VIP Coins, apenas de use no Bau e voce recebe o item) Compra de Points VIP por comando (!coin) Comandos novos para VIP's (Ex.: !b \ fala para todos os players online com a sigla [VIP] antes do nome) As 2 novas vocations para adquiri-las precisa ser feito quest (First Promotion: level 300k+ = Free \ Second Promotion: level 650k+ = VIP) Bom, vamos deichar de lado o nosso papo e vamos ver as SS. Temple: Temple VIP: Amostra VIP: Comprando item vip pelo bau: Comprando item vip de 1 mes: Link de Download da Pasta: (Link Arrumado) http://www.4shared.com/rar/5IGA4_CP/86_Lumast_Server_V100_3.html? Scan: https://www.virustot...sis/1336047521/ Link de Download do Distro e Dlls: http://www.4shared.c...ro_e_Dlls.html? Scan: https://www.virustot...sis/1336049191/ Senha do GOD: god/god Gostou do Map ? Da um REP+ ai nao custa nada ^^ Créditos: 90% Meu 5% Doidin (Pelo Distro e Dlls) 5% de alguns membros do XTibia pelos Scripts (Peço desculpas por ter postado pela primeira vez e ter vindo com virus, mas ele era nas Dlls, então as troquei)
    1 ponto
  9. Sir Picaralhos

    Quer Aprender A Ser Scripter?

    Dividi em fases Entaum vamos lah ensinalo a ser um scripter: NPC'S vou ensinar a base de um npc seller,passa o script de comando, Npc Seller: vá em data>Npcs> Copie qualquer um cole na pasta abra com bloco de notas, Vai estar Assim: <?xml version="1.0"?> <npc name="NOME script="Diretorio/Arquivo.lua" access="3"> <look type="look" head="head" body="body" legs="legs" feet="57"/> </npc> Explicando: Npc Name= Nome do Npc script= é onde está localizado o script do npc,ponha na pasta scripts dentro da pasta npc,e no final ponha o nome do arquivo lua,e sempre ponha .lua no final Acces = é o acesso do npc,por exemplo se um player de acces 4 chega nele e fala "hi" dá um debug no server,portanto se o acces de seu gm é 10000 o acces do npc tem que ser 10000. Look: é o Look do Npc,exemplo: se a ordem de numeros estiver 0,0,0,0 o Npc será todo branco,alguns ot's vêem as cores do outfit(acho) _________________-Script do Npc_______________________ vai na pasta scripts copie qualquer um, e renomeie de acordo com o que vc pois no .xml do npc na pasta anterior no começo tem assim: target = 0 following = false attacking = false focus = 0itemid = 0 count = 0payback = 0talkcount = 0talk_start = 0function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(id) if id == target then target = 0 attacking = false selfAttackCreature(0) following = false endfocus = 0itemid = 0 end function onCreatureTurn(creature) end function onCreatureSay(cid, type, msg)msg = string.lower(msg) dist = getDistanceToCreature(cid)if dist >= 8 thenreturnendtalk_start = os.clock() if string.find(msg, 'hi') and string.len(msg) == 2 thenif focus == cid thenselfSay('I am talking to you.')else if focus > 0 then selfSay('Wait.') endendif(focus == 0) thenselfSay('Hello ' .. creatureGetName(cid) .. '! .')focus = cidendtalk_start = os.clock()endExplicando :Nesta Parte se vc fala hi para ele,ele fala: Hello ( e seu nome)[color=blue]' .. creatureGetName(cid) .. ' Esse comando Faz o Npc falar o nome do char(cid) que falou hi[/color]Sempre Use essa parte no começo,se um char,fala hi e depois fala hi denovo o npc fala: I'm Already Talking to You,Pode Ser Alterado nesta Parte:if string.find(msg, 'hi') and string.len(msg) == 2 thenif focus == cid thenselfSay('I am talking to you.')<---else if focus > 0 then selfSay('Wait.')<--neste é quando o npc está atendendo outra pessoas endend Continuando(vamos usar como exemplo um npc que vende um axe ring if string.find(msg, 'yes(%a*)') and cid == focus and talkcount == 1 then talkcount = 0 buy(focus,itemid,count,cost) end se o char,falar yes,ele responde ao talk 1 if string.find(msg, 'yes(%a*)') and cid == focus and talkcount == 1 se voce por 2,3,4,etc.. vc tem que por a resposta de acordo if string.find(msg, '(%a*)no(%a*)') and cid == focus then selfSay('Ok, is there something else you want? If so tell me.') itemid = 0 count = 0 cost = 0 talkcount = 0 end se o char falar no, ele fla: Ok, is there something else you want? If so tell me, e nao acontece nada,e nada parte final vc poe: _____________________________________________________- if string.find(msg, 'bye(%a*)') and cid == focus then selfSay('Farewell, ' .. creatureGetName(cid) .. '!') focus = 0 itemid = 0 talk_start = 0 talkcount = 0 end end function onCreatureChangeOutfit(creature) end function onThink() if (os.clock() - talk_start) > 10 then if focus > 0 then selfSay('Next please!') talkcount = 0 end focus = 0 itemid = 0 talk_start = 0 end if focus == 0 then cx, cy, cz = selfGetPosition() randmove = math.random(1,50) if randmove == 1 then nx = cx + 1 end if randmove == 2 then nx = cx - 1 end if randmove == 3 then ny = cy + 1 end if randmove == 4 then ny = cy - 1 end if randmove >= 5 then nx = cx ny = cy end moveToPosition(nx, ny, cz) --summons = 30 --summons2 = 30 end end _______________________________________________ ficando assim o script: target = 0 following = false attacking = false focus = 0itemid = 0 count = 0payback = 0talkcount = 0talk_start = 0function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(id) if id == target then target = 0 attacking = false selfAttackCreature(0) following = false endfocus = 0itemid = 0 end function onCreatureTurn(creature) end function onCreatureSay(cid, type, msg)msg = string.lower(msg) dist = getDistanceToCreature(cid)if dist >= 8 thenreturnendtalk_start = os.clock() if string.find(msg, 'hi') and string.len(msg) == 2 thenif focus == cid thenselfSay('I am talking to you.')else if focus > 0 then selfSay('Wait.') endendif(focus == 0) thenselfSay('Hello ' .. creatureGetName(cid) .. '! .')focus = cidendtalk_start = os.clock()endif string.find(msg, '(%a*)offer(%a*)') and cid == focus thenselfSay('I am selling all types of rings!')endif string.find(msg, '(%a*)rings(%a*)') and cid == focus thenselfSay('I Sell Axe Ring,Club Ring,Crystal Ring,Dwarven Ring,Esmerald Bagle,Energy Ring,Gold Ring,Life Ring.Might Ring,Power Ring,Ring of Healing,Ring of the Skies,Stealth Ring,Sword Ring,Time Ring and Weding Ring.')talk_start = os.clock()returnendif string.find(msg, '(%a*)axe ring(%a*)') and cid == focus thenselfSay('Do You want to buy an Axe Ring for 400gps?')talk_start = os.clock()itemid = 2208count = 1cost = 400talkcount = 1returnendif string.find(msg, 'yes(%a*)') and cid == focus and talkcount == 1 then talkcount = 0buy(focus,itemid,count,cost)endif string.find(msg, '(%a*)no(%a*)') and cid == focus thenselfSay('Ok, is there something else you want? If so tell me.')itemid = 0count = 0cost = 0talkcount = 0end if string.find(msg, 'bye(%a*)') and cid == focus thenselfSay('Farewell, ' .. creatureGetName(cid) .. '!')focus = 0itemid = 0talk_start = 0talkcount = 0end endfunction onCreatureChangeOutfit(creature)endfunction onThink() if (os.clock() - talk_start) > 10 then if focus > 0 then selfSay('Next please!') talkcount = 0end focus = 0 itemid = 0talk_start = 0 end if focus == 0 thencx, cy, cz = selfGetPosition()randmove = math.random(1,50)if randmove == 1 thennx = cx + 1endif randmove == 2 thennx = cx - 1endif randmove == 3 thenny = cy + 1endif randmove == 4 thenny = cy - 1endif randmove >= 5 thennx = cxny = cyendmoveToPosition(nx, ny, cz)--summons = 30--summons2 = 30endend pronto vc fez um npc seller,pelo menos a base,se vc quiser adicionar comando para vender,comando de respostas,vendas etc... LEMBRE-SE:SEMPRE PULE DUAS LINHAS(APERTE ENTER DUAS VEZES) Script de comando: _________________________________________________________________ elseif talk_state == <number> then if msgcontains(msg, 'yes') then if pay(cid,10000) then selfSay('/premmy 15 ' .. creatureGetName(cid)) selfSay('Now this character have some days of premium account.') else selfSay('Sorry, you do not have enough money.') end end talk_state = 0 _________________________________________________________________ Significados: esse comando é como funciona a premmy,onde está /premmy...vc troca pelo comando,exemplo: /m XxXxXXxXx,/promote e o outro selfsay é o que ele vai falar e aqui acaba a parte dos NPC'S Espero que entenderam qualquer duvidas msg me Ah Um exercicio para garantir,Faça um Npc Com o Nome E-plate,e ponham ele para vender uma e-plate e depois me falem os resultados, me falem error,error de concordancia,dificuldade em tal lugar etc... agora próxima fase: SPELLS Vá em Data>Spells,Copie e cole qualquer um e ponha o nome de Fire apague tudo dentro e ponha isso: Explicando: Atack Type: Physical o que eu puis neste é o melhor pois o unico monstro imune é o diptrah e o ghost needDirection: É se precisa de direção,se voce colocar true,vc vai pricisar por 1,2,3,4 nas direções exemplo: se voce por direção,voce vai ter que por assim: exemplo exori flam ____________________________________________________________ area = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } _______________________________________________________________ e se voce por false,só poe o numero 1,que vai acertar em tal area INDENPENDETE DA Posição esses quatro é onde mudamos a animação... areaEffect: é o principal tipo,esse explosion que está ai,vai sai fire,igual uma ue,mais se pode mudar,para mudar vá em outras spells,exemplo quero por de sd, Vai na runa de sd vai em areaEffect e copie o que está lá e cole na magia hitEffect = NM_ME_EXPLOSION_DAMAGE quando vc hitar,acertar algum char ou monstro é o que vai ficar,nesse caso ae vai suir um fogo,para mudar é igual o primeiro,faça a mesma coisa só que no comando diferente(claro) os Outros deixe do jeito que está pois senão pode dar debug onde está assim: _____________________________________________________________ UltimateExplosionObject.minDmg = (level * 3 + maglv * 4) * 3.4 - 40 UltimateExplosionObject.maxDmg = (level * 3 + maglv * 4) * 4.0 end _____________________________________________________________ o dano vai causar,por 3x seu lv e 3.4x seu ml, vc pode diminui para fazer uma spell mais fraca, e aumentar para fazer uma spell exagerada, Você Pode encontrar diferentes tipos de atacks,modos,efeitos,na pasta Lib do seu OTServer Spells.xml <spell name="Nome" words="palavras magicas" maglv="ml" mana="<mana>" enabled="1"><vocation id="2" /><vocation id="1" /></spell> Signs: spell name = Nome da Spell words = Palavras magicas)o que voê fala para soltar a magia) maglv = ml para soltar a spell mana = mana para soltar a magis enabled = Se a Magia é promovida ou não vocation id = é a vocação que a usa 1= sorc, 2= druid , 3= pally , 4= kina E Aqui Já Acabou a Parte das Spell Exercicio faça uma magia que saia,4 traços pros lados de qualquer tipo, e uma que saia 4 areas na sua frente para o lado que voce virar... MONSTERS Os monstros sao uns dos mais facéis Começando: Os monstros sao facéis por causa da ordem olhe no começo bem facil de editar Explicando: Monster name = Nome do Monstro(lembre-se ele tem que ser renomeado por fora tambem, Level = Nao precisa nem falar né? quanto mais level mais forte MgLevel,quando mais ml mais forte as magias canpushitems,se o monstro pode mover objetos changetarget = indica a dificuldae,facilidade para o monster trocar de alvo combat targetdistance = a distancia de quantos sqm o monster deverá ficar do player runonhealth = A life em que o monstro irá fugir defenses = imunes do monter voices = voz dos monstros(aquelas alaranjadas) tudo quanto maior, mais forte o monstro... Atacks <attack type="melee" maxdamage="60"/> isso ele irá atacar com melee(fist somente) a o maximo de dano será 60 vc pode adicionar para ele tacar bolts> <attack type="distance" name="bolts" mindamage="<minimo>" maxdamage="<maximo>"/> arrows: <attack type="distance" name="arrows" maxdamage="60"/> em maxdamage vc altera o maximo que irá causar <atack type ="distance" Significa ataque do tipo distance(arrow,bolt,power bolt,spear,stones,entre outros) Danos Com Runas: <attack type="rune" name="nome da runa" exhaustion="exaustion do monstro" cycleticks="8000" probability="chances de acertar"/> Loot: <item id="3288" chance="6666"/> item id = id do item que vai cair, chance é a chance de cair maximo 10000,que cai sempre,no forum>downloads de scripts,outros, tem um topico falando as chances Summons: <summons maxSummons="Quantos Summons"> <summon name="Nome do Monstro" chance="Chance"/> </summons> para atacar Spells: <attack type="instant" name="Spell" exhaustion="500" cycleticks="20000" probability="40"/> e aqui termina os monstros <loot> <item id="3288" chance="6666"/> item id = id do item chance = chance do item cair aqui temos a lista de chances: --100000= all time----50000= each 2 time----33333= each 3 time----20000= each 5 time----10000= each 10 time----6666= each 15 time----5000 = each 20 time----4000 = each 25 time----3333 = each 30 time----2857 = each 35 time----2500 = each 40 time----2222 = each 45 time----2000 = each 50 time----1818 = each 55 time----1666 = each 60 time----1538 = each 65 time----1428 = each 70 time----1333 = each 75 time----1000 = each 100 time----909 = each 110 time----833 = each 120 time----800 = each 125 time--666 = each 150 time----588 = each 170 time----555 = each 180 time----500 = each 200 time----400 = each 250 time----333 = each 300 time-- Quests Quests é nas Actions, e na verdade nem é tão dificil ai vai crie um arquivo .lua chamado hmm - Hmm Questfunction onUse(cid, item, frompos, item2, topos) if item.uid == 5003 then queststatus = getPlayerStorageValue(cid,5003) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") doPlayerAddItem(cid,2311,100) setPlayerStorageValue(cid,5003,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end elseif item.uid == 5004 then queststatus = getPlayerStorageValue(cid,5003) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have Found 100 uh to Hunt.") doPlayerAddItem(cid,2265,100) setPlayerStorageValue(cid,5003,1) else doPlayerSendTextMessage(cid,22,"It is empty.") endelseif item.uid == 5017 then queststatus = getPlayerStorageValue(cid,5003) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You have found 100 explosion to hunt.") doPlayerAddItem(cid,2305,1) setPlayerStorageValue(cid,5003,1) endelse return 0 end return 1end _______________________________________________________________ Explicando: ______________________________________________________________ if item.uid == <id> then queststatus = getPlayerStorageValue(cid,<id>) if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") doPlayerAddItem(cid,2311,100) setPlayerStorageValue(cid,5003,1) else _____________________________________________________________ if item.uid == <id> then onde está escrito <id> é a continuação exemplo vc vai em chest .lua(que se localiza na pasta actions) o ultimo foi 5010 o proximo deve ser 5011 e assim por diante if queststatus == -1 then doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") _________________________________________________________ if quest status == 1 traduzindo: se status de quest ==1 , traduzindo: se o player nao fez a quest -_____________________________________________________________- doPlayerSendTextMessage(cid,22,"You Have Found 100 hmm's to Hunt.") ____________________________________________________________ Recebe esta msg e recebe o item doPlayerAddItem(cid,2311,100) setPlayerStorageValue(cid,<id>,1) doPlayerAddItem(cid,2311,100 2311 é o id do item que o char recebe se voce quiser por level na quest add o seguinte antes de: _________________________________________________________ else doPlayerSendTextMessage(cid,22,"It is empty.") ________________________________________________________ add isso: Não Necessariamente level,essa é a mensagem que ele recebe se não tiver Level e depois de: if queststatus == -1 then add isso: if getPlayerLevel(cid) >= 20 then significa Se o player tiver Level <lv> ele passa na quest mais se for inferior doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.") e assim voce faz uma quest, depois é só ir no mapa editor,colocar o chets no lugar que vc quer,e clica com o direito e em uid add o numero da quest Lembre-se se a ultima foi 5010 a proxima é 5011 e assim por diante Próximo: e Ultimo (q demoro pakas heim muitos poukos devem estar lendo aki neh mais tudu bem) Lv Door ai vai: --Hmm function onUse(cid, item, frompos, item2, topos)doorpos = {x=frompos.x, y=frompos.y, z=frompos.z}playerpos = getPlayerPosition(cid)playerlevel = getPlayerLevel(cid)if item.itemid == 1234 and doorpos.x == 1 and doorpos.y == 1 and doorpos.z == 1 thenif playerlevel > 100 thendoTeleportThing(cid,doorpos)elseif playerlevel < 100 thendoPlayerSendTextMessage(cid,22,"Você precisa ser level 100 para passar.")endendreturn 1end __________________________________________________-- Explicando: Coisa que vc precisa Mudar: if item.itemid == <id> and doorpos.x == <xxx> and doorpos.y == <yyy> and doorpos.z == <z> then <id> = Id da porta doorpos.x,doorpos.y,doorpos.z, São as coordenadas da Porta,isso você vê no MapEditor você poe o mouse sobre o lugar,e embaixo,do lado direito aparecem as coordenadas. Ajuste Isso de acordo com o lugar de onde voce por a level door no ot Level if playerlevel > 100 then Onde Está Escrito 100 then <100> é o level necessario para passar na door voce poe o level que quiser doPlayerSendTextMessage(cid,22,"Você precisa ser level 100 para passar.") Mensagem que o Player Recebe ao nao ter Level para passar... Exemplo: if playerlevel > 200 then doPlayerSendTextMessage(cid,22,"Se acha que passa né?Ahhh Rapa!Pricisa de Level 200,Meia Volta.") ufa acabo ateh q enfim heim quase ngm deve ter vindo ateh aki se vc veio nossa como vc aguenta? hehe espero q tenhaum gostado Créditos: Dum amigo rl q axo na net na casa do primo dele dai ele sabia q eu ia volta aki e me deu pra eu posta e kramba demorei quase 2h pra escreve tudu issu hehe, e infelizmente os créditos não sao meus dinovu, mais eu to voltando agora e logo logo farei um como o meu ultimo q felizmente ao chegar aki fikei sabendo q ele foi fixado ainda num descobri onde neh hehe mais ele fo fixado! vlw ae comentem plz! Atenciosamente, Sir Picaralhos. :laughing:
    1 ponto
  10. Este tutorial é bastante extenso e tem MUITAS imagens (29), portanto pode demorar a carregar. Para começar, temos que fazer o download do aplicativo que gerencia máquinas virtuais. Existem vários sendo que os principais são o VMware Player, o Microsoft VirtualPC (que só funciona em Windows 7) e o Oracle Virtualbox. Neste tutorial vou usar o último. INSTALAçãO Para fazer o download, entre nesta página: https://www.virtualb.../wiki/Downloads Escolha a versão para o seu sistema operacional (vou usar Windows) e clique para fazer o download. Execute quando finalizar. Na instalação do Virtualbox, teremos várias opções para marcar ou desmarcar. Na primeira tela, apenas clique Next: Na segunda tela, usuários avançados podem escolher algumas opções, neste caso não é necessário desmarcar nada, vamos instalar diretamente: Na terceira tela, você pode escolher onde criar ícones. O Virtualbox cria uma pasta no menu Iniciar com os atalhos, então se você não desejar ter atalhos na área de trabalho ou barra de ferramentas, pode acessar pelo menu Iniciar: Na quarta tela, o Virtualbox mostra um aviso de que ele irá reiniciar os dispositivos de conexão temporariamente durante a instalação. Portanto, se estiver fazendo um download, espere-o acabar pois a conexão vai cair: A quinta tela é uma confirmação a mais. Você ainda pode voltar atrás para mudar alguma opção. Então, começará a instalação: Ao fim, o Virtualbox mostrará uma opção para iniciá-lo assim que a instalação terminar. Vou deixar marcado, porque irei configurar logo que terminar: CRIANDO MáQUINAS VIRTUAIS Esta é a tela inicial do Virtualbox. À esquerda, teremos uma lista de máquinas virtuais (que aparecem assim que forem criadas) e À direita, informações sobre a máquina selecionada (não há nenhuma, por enquanto). Vamos criar uma clicando em Nova: Vai abrir o assistente de criação de máquinas virtuais, uma interface intuitiva e fácil de usar que vai nos ajudar no processo: Para o exemplo, vou criar uma máquina chamada "XTibia" usando Windows XP. O Virtualbox aceita uma infinidade de sistemas operacionais, aceitando Windows desde a versão 3.1 até a versão 8 (que atualmente está na versão de testes), todas as distribuições de Linux, Solaris (que é da mesma empresa que faz o Virtualbox), BSD, Mac OS X Server e também tem uma opção de instalar outro sistema operacional, mas não é tão simples quanto as disponíveis por padrão. Ele também tem suporte tanto para 32 bits quanto para 64 bits: Na próxima tela, vamos definir quanta memória estará disponível para a máquina virtual. Como tenho 4 GB, vou disponibilizar 1 GB para a máquina virtual. Para o Windows XP, ele avisa que é recomendado ao menos 192 MB: Agora, ele vai perguntar qual disco rígido você quer utilizar. Como eu não tenho nenhum, vou criar um novo: Nesta tela, ele vai perguntar qual o tipo de imagem de disco será utilizado. Isso acontece porque o Virtualbox vai utilizar um arquivo no tamanho do disco rígido (que será escolhido em breve) e "mentir" para a máquina virtual dizendo que aquele arquivo é um disco rígido. A MV vai então trabalhar apenas dentro daquele espaço predefinido e não vai saber o que tem no resto do seu HD, pois vai ler apenas aquele espaço. Vou deixar na opção padrão, VDI, que é a opção que o Virtualbox tem melhor performance. O Virtualbox vai perguntar se você deseja utilizar um disco de tamanho dinamicamente alocado ou de tamanho fixo. Dinamicamente alocado fará com que o disco seja criado num tamanho pequeno e aumente (mas não diminua) de acordo com o necessário pela máquina virtual, até o limite escolhido. De tamanho fixo, o disco terá sempre o mesmo tamanho escolhido. A primeira opção leva menos tempo para ser criada, já a segunda opção tem um melhor desempenho: Agora, vamos escolher o tamanho do disco rígido. Vou usar o padrão de 10 GB porque estou com pouco espaço no HD: Então, o Virtualbox vai mostrar todas as opções que foram escolhidas para que você confirme: Wow! Foi fácil né? Está criada nossa máquina virtual: CONFIGURAÇÕES Vamos mexer em algumas configurações mais avançadas, para que nossa máquina virtual nova fique perfeita. Clique em Configurações. Não vou explicar tudo, apenas as coisas mais simples e necessárias, mas o Virtualbox dá uma gama enorme de opções, desde dar uma descrição para a máquina até escolher quais pastas o sistema da máquina virtual vai poder ler no seu HD (vai mostrar como uma pasta na rede): Na opção Sistema, na aba Placa-Mãe, você pode mudar novamente a memória disponível para o computador: Já na aba Processador, você pode modificar quandos núcleos do processador a máquina virtual pode acessar. Vou mudar para 2, pois tenho 4. Se você também deseja habilitar mais de um núcleo, deve voltar para a aba Placa Mãe e marcar Habilitar o IO APIC. A opção de Restrição de execução define quantos % do tempo de processamento podem ser utilizados pela máquina virtual, diminua se seu computador for lento: Na opção Monitor, podemos configurar o vídeo do sistema. Vou colocar bastante memória de vídeo, até 128 MB, habilitar aceleração 3D e 2D: Em armazenamento, vemos todos os controladores de discos rígidos e CDs/DVDs. Vou colocar o CD do Windows XP no controlador de CDs disponível. Também é possível adicionar mais discos e mais controladores: Em Rede, podemos configurar até 4 conexões para a internet diferentes, basta marcar "Habilitar Placa de Rede" em cada aba para ativar. Em "Conectado a", o VirtualBox nos oferece várias formas de conexão com a internet, são as seguintes: Não conectado: obviamente, sua máquina virtual não terá conexão com nenhuma rede NAT: é o modo padrão, onde o VirtualBox se encarrega de criar uma conexão à internet simples para que a máquina virtual acesse. Placa em modo Bridge: quando em modo bridge (ponte), o VirtualBox faz com que a máquina virtual acesse diretamente a placa de rede, então sua MV pode acessar diretamente a sua rede sem que seu sistema interfira. Placa Interna: neste modo, o VirtualBox cria uma rede virtual que pode ser acessada apenas por outras máquinas virtuais escolhidas, mas não pelo sistema hospedeiro ou pela internet Placa de rede exclusiva de hospedeiro: o host-only cria uma rede entre o sistema hospedeiro e todas as máquinas virtuais, mas não com a internet. Driver Genérico: neste modo, o VirtualBox cria uma arquitetura de rede aberta que pode ter suas funções modificadas e escolhidas (recomendada apenas para usuários com MUITO conhecimento) Por enquanto é só isso que vamos configurar. Dê OK e vamos ligar nossa máquina virtual clicando em Iniciar: DETALHES FINAIS O Virtualbox dá boot automaticamente no disco, que neste caso é um disco de instalação. Não vou abordar como se instala o sistema, porque você pode instalar qualquer um. Instale o sistema normalmente, como se estivesse formatando seu computador: Sua máquina virtual está pronta! Você já pode começar a instalar os programas e acessar a internet. Tudo deverá ter sido configurado automaticamente. Mas podemos ainda instalar o Virtualbox Guest Tools, que melhora o desempenho da máquina virtual no caso de usar Windows. Para isso, na máquina virtual aperte Ctrl direito + Escolha a pasta onde deve ser instalado: O suporte a Direct3D (para usar jogos e melhorar o desempenho com vídeos) só pode ser instalado se o Windows estiver em modo de segurança/safe mode: Durante a instalação, o Windows vai pausar várias vezes para perguntar se você deseja instalar drivers não assinados. Apenas aceite (Continuar assim mesmo) e prossiga com a instalação. Você deve reiniciar no final: O Virtualbox é bastante completo. Uma das funções úteis é que ele suporta múltiplas máquinas virtuais com sistemas diferentes executando ao mesmo tempo: Espero que tenham gostado pretendo fazer tutoriais do VMware Player também.
    1 ponto
  11. ElderPriest

    A História De Roan - Parte 003

    A História de Roan - Parte 003 Então Roan adentrou a floresta tenebrosa, nunca dante explorada por ele. Sua missão era entrar, pegar qualquer tipo de alimento e se afastar o mais rápido possível. Não conhecia o local, só sabia que era uma floresta morta, sem vida, quase que sem frutos nas árvores. Certas lendas reinavam sobre o local, como a das grandes aranhas que decepavam seus inimigos e acabavam por devorar cada membro. Os temídos minotauros, com certa de 3 metros de comprimento e com suas clavas exageradamente pesadas. Mas sem dúvida, o principal medo dele era os bárbaros que residiam do outro lado da floresta. Homens e mulheres, fortes, bem treinados junto a natureza. Os homens se especializavam na arte do machado, da espada, já as mulheres, na arte do uso de arcos, eram ótimas caçadores e tinham boa pontaria. Não se sabe ao certo se os bárbaros eram agressivos ou até mesmo se tinham algum interesse em atacar o reinado. - Descanse aqui! - Disse o menino removendo as rédeas de Hornus, seu cavalo, para que ele relaxasse. Enquanto isso foi procurar comida nos arredotes da floresta, já havia entrado na escuridão das árvores, mortas, pequenas, a bastante tempo. Não conseguia encontrar nenhum tipo de alimento devido à pouca fertilidade do local. Passado mais alguns minutos, avistou um cacho de bananas em cima de uma árvore, parecia ser a única árvore alta da floresta! Não hesitou em tentar escalar a árvore, mas sua armadura era pesada então falhou na missão. Teria que remover a armadura para conseguir subir na árvore, mas para tal ficaria vulnerável diante de um possível ataque. Logo voltou para seu cavalo, que para sua surpresa não estava mais no local onde ele havia deixado. Hornus era muito bem treinado, não poderia ter saido sozinho do local. Alguém havia passado por lá! A tarde começava a se despedir, estava cada vez mais escuro. O desespero tomou conta de Roan. Não conhecia nada sobre a floresta, ainda mais de noite. Começou a procurar seu cavalo de batalha, quando se aproximava de um rio foi surpreendido por um barulho próximo a uma moita, esta com folhas secas e soltas. Logo retirou sua espada e colocou-a em modo de batalha. Foi se aproximando vagarosamente até as folhas. Derrepente uma estranha criatura saiu de trás das folhas secas, em sua mão tinha uma parte do equipamento que estava sobre o cavalo de Roan. O desaparecimento do cavalo estava ligado diretamente à pequena criatura. - Ei, você! Volte aqui! A criatura era muito pequena, tinha feições humanas e orelhas bem pontiagudas. Sua pele era escura, um tom escuro de verde. Corria rápido e parecia conhecer muito sobre a floresta, parecia conhecer todos os atalhos para se afastar do garoto. Roan, sem hesitar, começou a correr atrás do monstro, que desesperado fez o mesmo. Os dois correram até uma estranha árvore enorme, que para a surpresa de Roan era a mesma que tinha os cachos de banana. Continua... Parte 001: http://www.xtibia.co...roan-parte-001/ Parte 004: http://www.xtibia.com/forum/topic/185694-a-historia-de-roan-parte-004/
    1 ponto
  12. PsyMcKenzie

    Caves

    Tu criou 2 tópicos iguais cara. Pra que isso? http://www.xtibia.com/forum/topic/185599-pedido-caves/ Reportado. Abraços!!
    1 ponto
  13. fredpadua

    Criando Portais...

    Area errada. Reportado.
    1 ponto
  14. Tenta ir no phpmyadmin e troca essa senha, você pode ter errado. Não vejo outro motivo para haver o bug. Se ocorrer de novo o erro, tente trocar o site =p
    1 ponto
  15. Olá a todos, respondendo algumas dúvidas e comentários: Prezado Vilden, a mensagem em questão é padrão em itens raros, de toda forma, como o próprio anuncio diz, temos demon legs a pronta entrega, portanto, neste momento o item está sim disponível. Olá Beeki, sobre alguém ser "bobo" ou não, é somente uma questão de ponto de vista, alguns sonham com um ipad, outros com uma moto, e alguns que já tem tudo isso, sonham com uma demon legs, e nestes casos, nós estamos aqui para isso, respeitando sempre os que tem sonhos diferentes e ajudando a quem nos procura. Olá filemon51 e MatheusVidaLoka, se vocês fizerem uma busca aqui mesmo no xtibia, verificarão que sempre deixamos claro que realmente o gold em nosso site é mais barato do que os itens, isto se deve ao custo de manter profissionais para aquisição e entrega dos itens, por isso, sempre indicamos a clientes com maior tempo livre a compra de ouro, já os itens são para aqueles que realmente não tem tanto tempo livre, e que o simples fato de procurar e adquirir um item atrapalharia a sua diversão. Olá gabrielf10, acredito que a resposta acima sirva também neste caso. Olá DiogoTemporario, a razão do anuncio é a promoção que estamos fazendo no item, portanto, se desejar, reveja o preço no link a seguir: http://gamerchants.c...legs-p-279.html Prezado butina3d, efetuamos as entregas dentro do prazo, possuímos um atendimento de excelência através de telefone gratuito, e-mail e live chat, emitimos nota fiscal e portanto oferecemos garantias legais de todos os produtos, possuimos uma sede fisica em um dos maiores centros comerciais de nossa região, onde os diversos setores da empresa trabalham das 8 as 23 horas para oferecer o melhor serviço possível a todos os nossos clientes, por tudo isso, acredito que afirmar que somos incompetentes devido ao nosso preço, seja no minimo injusto, pois para que toda esta estrutura que dá confiança ao consumidor exista, os custos não são irrelevantes. Olá SlipknotShadow, é bem provável que os consumidores que adquirem este item, já tenham feito a quest e optado por uma das outras opções. Em caso de novas dúvidas, não hesitem em nos contatar. Um abraço a todos.
    1 ponto
  16. Vodkart

    [Creaturescripts] Hit Message

    kk deixa assim: local color = 145
    1 ponto
  17. Zangemaru

    Outfit Por Vocation

    Cara, que estranho, eu tbm queria saber como faz isso pra ajudar um amigo meu num projeto parecido até
    1 ponto
  18. Vodkart

    Npc De Outfit (Rep+)

    Como eu vou saber? O pedido foi de npc, eu testei e funcionou. e outra, acho que não é nem outfit, você se confundiu, você quis dizer addon?
    1 ponto
  19. zesy

    [Encerrado] [Pokemon] Dúvidas? - Pda

    @brunin86 Ta aew, meu Spawn.LUA: E pra quem não tem, só pegar também EDIT: O q tá em azul e vermelho é a chance de dar o spawn, em negrito é a função interia do script do shiny. Pra editar a chance, só muda o primeiro nº: Ajudei? Gostou? Vai pega o Script? REP+
    1 ponto
  20. Vodkart

    [Pedido] Npc Verkal

    Eu posso até fazer o npc, mas não vou adicionar todos, ai você configura
    1 ponto
  21. Lucaswc15

    Npc De Outfit (Rep+)

    Voce quer receber outfit ou addon? Se for outfit voce precisa colocar uma storage no XML/outfits.xml Vou dar um exemplo com assassin outfit: <outfit id="14" quest="10023"> premium="yes"> <list gender="0" lookType="156" name="Assassin"/> <list gender="1" lookType="152" name="Assassin"/> </outfit> A storage é quest="10023"> Entao voce tem que criar um npc que de essa storage, entao o player poderá usar a outfit. Vai em data/npc e crie um npc chamado Assassin Brother.xml e coloque isso dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Assassin Brother" script="assassin.lua" floorchange="0" speed="460"> <health now="100" max="100"/> <look type="152" head="40" body="126" legs="114" feet="0" addons="2"/> </npc> Agora vá em npc/scripts e crie um arquivo chamado assassin.lua e coloque isso dentro: 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, 'itens')) then selfSay('Me traga 5k que lhe fa\ço a {outfit}.', cid) elseif(msgcontains(msg, 'outfit')) then selfSay('Voc\ê me trouxe 5k para o assassin outfit?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if getPlayerStorageValue(cid, 10023) == -1 then if(doPlayerRemoveMoney(cid, 5000) == true) then selfSay('Sua roupa esta pronta, pode vestir!', cid) setPlayerStorageValue(cid, 10023,1) talkState[talkUser] = 0 else selfSay('Voc\ê n\ão tem dinheiro.', cid) talkState[talkUser] = 0 end else selfSay('Voc\ê ja tem essa roupa.', cid) talkState[talkUser] = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
    1 ponto
  22. Mimic Spell: function onCastSpell(cid, var) local tempo = 30 -- tempo em segundos que vai durar o controle. local target = getCreatureTarget(cid) local position = getPlayerPosition(cid) doCreatureSetNoMove(target, true) setPlayerStorageValue(cid, 5421, os.time()+tempo) movePlayer(position, target, cid) return true end function movePlayer(position, target, cid) if isCreature(target) and isPlayer(cid) then local pos = getCreaturePosition(target) if getPlayerPosition(cid).x ~= position.x then pos = {x = getCreaturePosition(target).x+(getPlayerPosition(cid).x +(- 1 * position.x)), y = getCreaturePosition(target).y, z = getCreaturePosition(target).z} elseif getPlayerPosition(cid).y ~= position.y then pos = {x = getCreaturePosition(target).x, y = getCreaturePosition(target).y+(getPlayerPosition(cid).y +(- 1 * position.y)), z = getCreaturePosition(target).z} end if isWalkable(pos) then doTeleportThing(target, pos) end if (getPlayerStorageValue(cid, 5421) - os.time()) > 0 then addEvent(movePlayer, 100, getPlayerPosition(cid), target, cid) else doPlayerSendTextMessage(cid, 22, "Você perdeu o controle.") doCreatureSetNoMove(target, false) end end end function isWalkable(pos, creature, pz, proj) -- nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end local creature = getTopCreature(pos) if creature.type > 0 then return false end if getTilePzInfo(pos) and not pz then return false 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
    1 ponto
  23. Vodkart

    Simple Task 3.0

    obrigado por avisar, é fácil remover esse problema, acho que nem é um problema mas irei remover mesmo assim! obrigado
    1 ponto
  24. Windu

    Outfit Por Vocation

    @Vodkart creaturescripts.xml <?xml version="1.0"?> <creaturescripts> <event name="PlayerLogin" type="login" script="login.lua"/> <event name="SendLoginInfo" type="login" script="sendlogininfo.lua"/> <event name="RemoveBlesses" type="die" script="removeblesses.lua"/> <event name="Give_Bag_After_Death" type="die" script="give_bag_after_death.lua"/> <event name="ExpStage" type="advance" script="exp_stage.lua"/> <event type="login" name="Out" script="Vocation_Outfit.lua"/> <!--event name="PlayerLook" type="look" script="look.lua"/--> </creaturescripts> Vocation_Outfit.lua function onLogin(cid) local x = { [1] = 40850, -- sorc [2] = 40851, -- druid [3] = 40852, -- paladin [4] = 40853, -- kina [5] = 40854, -- master sorc [6] = 40855, -- elder druid [7] = 40856, -- royal paladin [8] = 40857 -- elite kina } local v = x[getPlayerVocation(cid)] if (not v) then return true end for i = 1, #x do setPlayerStorageValue(cid,x[i],0) end setPlayerStorageValue(cid, v, 1) return TRUE end outfits.xml <outfit id="28" quest="40852"> <list type="female" looktype="159" name="Elf"/> <list type="male" looktype="159" name="Elf"/> </outfit> Mesmo assim todas as vocations tem a opção de escolher o outfit elf =/ Ve se tem algo errado ae =( Valeu! Alguem ve algo errado?
    1 ponto
  25. valeu ae amiguinho e em breve eu trarei atualizações do servidor. =)
    1 ponto
  26. n deu pra testa aki masi ve se funciona, se de alguma erro posta aki vo posta o que eu fis pra runa va em spell.xml adicione essa tag,edita ela ao seu gosto <instant name="nome da magia" words="nome da magia" lvl="10" mana="250" prem="0" exhaustion="2000" needlearn="0" script="runas.lua"> <vocation name="vocation que usa"/> </instant> va em spell/scripts crie uma aquivo lua com nome runas.lua e coloque isto dentro items = { {idruna, maglevelnesesario}, {idruna, maglevelnesesario}, {idruna, maglevelnesesario} } ---runas tab = {} function onCastSpell(cid, var) x = getPlayerMagLevel(cid) for i = 1, #items do if items[i][2] <= x then table.insert(tab, items[i][1]) end end rad = math.random(1, #tab) rad2 = math.random(1,(15 + math.floor(x/2))) doPlayerAddItem(cid, tab[rad], rad2) return TRUE end
    1 ponto
  27. guilhermes26

    Peça Sua Sign

    Tópico sem respostas à 10 dias.
    1 ponto
  28. boors

    [Sistema] Guild Points

    Voce pode adicionar o que desejar. Um exemplo é por quests, mas pode ser implementado por kills, level....
    1 ponto
  29. ta ai: abraços. Gostou? Rep+ ;]
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...