Histórico de Curtidas
-
PsyMcKenzie deu reputação a 139 em CONDITION_BLEEDING erro com spell em ot 8.6Já tentou alterar para CONDITION_PHYSICAL?
-
PsyMcKenzie deu reputação a Cat em Tibia 8.60 v2 Map Editor Release (Corrige erro: Could not locate Tibia.dat and/or Tibia.spr, please navigate to your Tibia 8.60 installation folder)Tibia 860.rar
https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
-
PsyMcKenzie deu reputação a So volto tarde em Spell não pega em sqm da frentequal a versão do seu tfs? se for 1.x, peço desculpas mas não consigo te ajudar
tfs 0.4 protocolo 8.6 \/
-
PsyMcKenzie deu reputação a So volto tarde em Spell não pega em sqm da frentetenta com o código em spoiler na resposta que você citou
-
PsyMcKenzie deu reputação a So volto tarde em Spell não pega em sqm da frentedeixa eu entender como funciona a spell,
sairia 1 efeito por vez?
-
PsyMcKenzie deu reputação a So volto tarde em Spell não pega em sqm da frente
-
PsyMcKenzie deu reputação a Cat em Level máximo de 717217 para 1000000Já joguei o rozinx server, que tinha isso liberado, vc podia pegar lvl 10kk assim como hp/mp, o adm na época me informou que foi feito gambiarra pra isso funcionar com oldclient e o server tinha alguns bugs e crashs de vez enqt. Mesmo conseguindo fazer, vale ressaltar que o client old do Tibia tem um limite de caracteres para esses valores. Não digo que é impossível por que já vi fazerem, mas provavelmente vai ter que mexer com dlls e src.
Com otclient provavelmente de pra fazer mais tranquilo.
Apropósito:
-
PsyMcKenzie recebeu reputação de Cat em Level máximo de 717217 para 1000000Vou testar essa alteração para ver se da certo, o ot The Heroes of Time tem level 1000000 como level maximo e ainda usam cliente old, mas no meu caso pretendo usar o otclient.
Obrigado amigo, vou testar e posto aqui qualquer coisa.
-
PsyMcKenzie recebeu reputação de zero390 em Sistema de Pet V1.0 By PsyMcKenzieSistema de Pet V1.0
E ai Galera, suave?
Hoje venho trazer pra vocês, meu sistema de pet.
É bem do tipo pokemon, mas tenho certeza que irão gostar.
Vou liberá-lo porque gosto de compartilhar as coisas, e sei que alguém esta querendo
um sistema desses. Assim como eu quis um dia e nunca encontrei um que funcionasse.
O sistema está na versão 1.0, mas em em breve trarei um npc para healar o pet e algumas talks para o pet soltar spells.
Vamos lá!
Primeiramente, vá em data/action/scripts, crie um arquivo com o nome de CatchPet.lua e adicione:
local mtrs = { ["Rat"] = {hp = 1000, maxhp = 1000, corpse = 2813, chance = 100}, ["Rotworm"] = {hp = 1000, maxhp = 1000, corpse = 5967, chance = 100}, ["Skeleton"] = {hp = 1000, maxhp = 1000, corpse = 5972, chance = 100}, ["Dragon"] = {hp = 1000, maxhp = 1000, corpse = 3104, chance = 100}, ["Dragon Lord"] = {hp = 1000, maxhp = 1000, corpse = 5984, chance = 100}, } function onUse(cid, item, frompos, item2, topos) for pet_name, v in pairs(mtrs) do if item2.itemid == v.corpse then if math.random(0,100) <= v.chance then doPlayerSendTextMessage(cid, 27, "Você capturou um ".. pet_name .. ".") doRemoveItem(item2.uid, 1) doRemoveItem(item.uid, 1) local itemcatch = doPlayerAddItem(cid, 7632, 1) doItemSetAttribute(itemcatch, "namepet", pet_name) doItemSetAttribute(itemcatch, "description", "Contém um ".. pet_name ..".") doItemSetAttribute(itemcatch, "lifepet", v.hp) doItemSetAttribute(itemcatch, "maxlifepet", v.maxhp) else doPlayerSendTextMessage(cid, 27, "Falhou.") end end end return true end
Em seguida, duplique o arquivo, renomeie para VaiVolta e adicione:
function onUse(cid, item, frompos, item2, topos) local health = tonumber(getItemAttribute(item.uid, "lifepet")) local mhp = tonumber(getItemAttribute(item.uid, "maxlifepet")) if health <= 0 then return doPlayerSendCancel(cid, "Esse pet esta morto.") end local pet_name = getItemAttribute(item.uid, "namepet") if item.itemid == 7632 then if not getTilePzInfo(getPlayerPosition(cid)) then if #getCreatureSummons(cid) < 1 then doTransformItem(item.uid, 7633) local summon = doSummonCreature(pet_name, getThingPos(cid)) doConvinceCreature(cid, summon) setCreatureMaxHealth(summon, mhp) doCreatureAddHealth(summon, mhp) doCreatureAddHealth(summon, health - mhp) doSendMagicEffect(getCreaturePosition(summon), 67) doCreatureSay(cid, "Vai, ".. pet_name .. "!", TALKTYPE_SAY) else doPlayerSendCancel(cid, "Você já sumonou um Pet.") end else doPlayerSendCancel(cid, "Você não pode estar em Protection Zone para sumonar seu Pet.") end elseif item.itemid == 7633 then local hp, maxhp = getCreatureHealth(getCreatureSummons(cid)[1]), getCreatureMaxHealth(getCreatureSummons(cid)[1]) if #getCreatureSummons(cid) >= 1 then doSendMagicEffect(getCreaturePosition(getCreatureSummons(cid)[1]), 67) doRemoveCreature(getCreatureSummons(cid)[1]) doTransformItem(item.uid, 7632) doItemSetAttribute(item.uid, "lifepet", hp) doItemSetAttribute(item.uid, "maxlifepet", maxhp) doCreatureSay(cid, "Volta, " .. pet_name .. ".", TALKTYPE_SAY) end end return true end
Agora em Actions.xml, adicione as tags:
<action itemid="2149" event="script" value="CatchPet.lua"/> <action itemid="7632;7633" event="script" value="VaiVolta.lua"/>
Configurando
Nesta parte você irá editar:
Quote
["Rat"] = {hp = 1000, maxhp = 1000, corpse = 2813, chance = 100},
["Rotworm"] = {hp = 1000, maxhp = 1000, corpse = 5967, chance = 100},
["Skeleton"] = {hp = 1000, maxhp = 1000, corpse = 5972, chance = 100},
["Dragon"] = {hp = 1000, maxhp = 1000, corpse = 3104, chance = 100},
["Dragon Lord"] = {hp = 1000, maxhp = 1000, corpse = 5984, chance = 100},
NOME DO PET / HP / HP MÁXIMO / CORPSE ID ( AQUELE QUE FICA QUANDO O MONSTRO MORRE) / CHANCE DE CAPTURA DO PET.
Esse são os id's das "pokeballs":
Caso queira mudar, troque no script e na tag no actions.xml.
Este é o item de captura:
<action itemid="2149" event="script" value="CatchPet.lua"/>
Bom, é isso galera, espero que gostem e que façam um bom uso do sistema!
Aproveitem!
Dúvidas? Sugestões? Criticas?
Comentem!!
-
PsyMcKenzie deu reputação a Noninhouh em [Tutorial] Ajustando andar diagonalBom, vou mostrar a vocês como editar o andar diagonal no otclient da maneira que vocês preferirem...
Atualmente, creio que quando você anda diagonalmente, tem um delay até que você possa andar novamente. Vou ensinar tirar esse delay, e deixar a velocidade ao gosto de vocês.
Em creature.cpp do server, procure pela linha:
if(std::abs(newPos.x - oldPos.x) >= 1 && std::abs(newPos.y - oldPos.y) >= 1) lastStepCost = 3;
Esse lastStepCost será a velocidade que o player terá ao andar diagonalmente, em relação a velocidade de quando ele anda em uma direção reta, por exemplo, um player que demora 1 segundo para andar 1 sqm, demoraria 3 segundos para andar diagonalmente. Edite esse valor ao seu gosto!
Em creature.cpp do client, procure as linhas que tem isso:
getStepDuration(true) E deixe assim:
getStepDuration()
Agora procure por:
float factor = 3; if(g_game.getClientVersion() <= 810) factor = 2; Apague essa parte
Logo mais abaixo tem:
if(!ignoreDiagonal && (m_lastStepDirection == Otc::NorthWest || m_lastStepDirection == Otc::NorthEast || m_lastStepDirection == Otc::SouthWest || m_lastStepDirection == Otc::SouthEast)) interval *= factor; Em factor, deixe o mesmo valor que você deixou em lastStepCost no servidor.
Agora em localplayer.cpp no client, novamente procure por:
getStepDuration(true) E troque por:
getStepDuration()
Pronto, seu personagem andará diagonalmente mais suave, e com a velocidade que você escolheu.
-
PsyMcKenzie recebeu reputação de poko360 em (Resolvido)como coloco pra nao usar esse item na PZ?Basta usar:
if getTilePzInfo(getCreaturePosition(cid)) then doSendMagicEffect(getPlayerPosition(cid), 2) return doCreatureSay(cid, "[Error] nao pode usar em pz", TALKTYPE_ORANGE_1) end antes de iniciar a ação.
Esse código checa se o player está em pz, se estiver ele envia a mensagem de erro, se não estiver executa a ação.
-
PsyMcKenzie deu reputação a Leohige em [TFS 1.x] Forja/TrocaBom, comecei a aprender Lua hoje e como joguei Tibia a alguns anos atrás decidi desenvolver scripts pro joguinho. Este script é o meu primeiro trabalho com a linguagem, portanto está bem simples mas também funcional.
A ideia do NPC é que você possa definir um ou mais itens para serem trocados/forjados por/em um item X. Você também pode por uma ou mais storages para que o player possa efetuar a troca/forja, ou se precisa ser premium account.
Aqui tem um GIF demonstrando como o NPC funciona.
Se você gostou e quer usar em seu servidor, a instalação é bem simples.
Crie um arquivo chamado Marcus Vinicius.xml na pasta data/npc
Crie um arquivo chamado forge.lua na pasta data/npc/scripts
Agora vá até o arquivo data/npc/lib/npcsystem/modules.lua e antes do último end adicione o seguinte código
Depois de tudo isso o NPC já estará funcionando 100%.
Para adicionar novos itens na forja/troca é bem simples, logo nas primeiras linhas do forge.lua você encontrara a configuração do NPC.
Aqui tem uma breve explicação de como configurar o NPC:
Bom galera é isso ai, se vocês tiverem algum problema ou sugestão podem falar.
-
PsyMcKenzie deu reputação a murilao em [Tutorial] Colocando senha do novo XAMPPOlá pessoal do TK! vim aqui passar um tutorial de como colocar a senha no novo XAMPP versão 5.5.37. Pois quando entra ele nao pede a senha do root.
Eu procurei aqui no forum e não achei e então resolvi fazer uma pequena tutorial para a galera que não saiba colocar senha.
Vamos ao que interessa ficando de bla bla bla não vai adiantar nada..
1ª Passo
Abre pagina inicial digite localhost/phpmyadmin ou localhost:8090/phpmyadmin
Imagem:
2ª Passo
Clique no User accounts e depois em Edit privileges e depois em Alterar a palavra-passe e marque opção palavra-passe e ai você digita sua senha e executar.
Imagem:
3ª Passo
Agora vai na pasta do seu XAMPP abre ele e depois abre a pasta phpMyAdmin e procura por config.inc.php e abre.
E nessa configuração você muda:
/* Authentication type and info */ $cfg['Servers'][$i]['password'] = 'suasenha'; <-- aqui você coloca sua senha que criou. $cfg['Servers'][$i]['AllowNoPassword'] = true; <---- aqui você muda para "false"
E pronto fim do tutorial. Espero que ajude muito por ai. VLW
Créditos: @murilao
-
PsyMcKenzie deu reputação a Insaend em SPriting on InsaendBoa tarde Usuários do Fórum.
Mais um vídeo breve de Spriting.
-
PsyMcKenzie recebeu reputação de martimtiburcio em (Um npc qualquer)NPC1:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Npc um" script="NPC1.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="139" head="132" body="79" legs="97" feet="132" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá, |PLAYERNAME|. Você quer me {ajudar}? Eu posso te recompensar..."/> </parameters> </npc>
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, 'ajudar')) then selfSay('Você pode me ajudar? Preciso que mate um {boss} para mim e assim eu lhe darei uma recompensa!', cid) end --------------------------------------------------------- if(msgcontains(msg, 'boss')) then if (getPlayerStorageValue(cid,15001) == -1) then selfSay('Mate o boss e eu irei te recompensar!', cid) doTeleportThing(cid,{x=160, y=54, z=7}) elseif (getPlayerStorageValue(cid,15001) == 1) then selfSay('Você já matou o boss!', cid) end return true end --------------------------------------------------------- if(msgcontains(msg, 'recompensa')) then if (getPlayerStorageValue(cid,15001) == -1) then selfSay('Você ainda não matou o boss!', cid) elseif (getPlayerStorageValue(cid,15001) == 1) then local itemr = doPlayerAddItem(cid, 4863, 1) doSetItemActionId(itemr, 10213) selfSay('Parabéns, aqui está sua recompensa!', cid) end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Agora vai em creaturescripts/scripts, crie um arquivo com o nome de boss e adicione:
function onKill(cid, target, lastHit) if(isMonster(cid)) and getCreatureName(cid) == "NOMEDOBOSS") then setPlayerStorageValue(lastHit, 15001, 1) doTeleportThing(lastHit,{x=POS DO NPC, y=POS DO NPC, z=POS DO NPC}) end return true end
Em creaturescripts.xml adicione a tag:
<event type="kill" name="BossKill" event="script" value="boss.lua"/>
Em login.lua adicione:
registerCreatureEvent(cid, "BossKill")
NPC2:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Npc dois" script="NPC2.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="139" head="132" body="79" legs="97" feet="132" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá, |PLAYERNAME|!"/> </parameters> </npc>
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 local itemRemove = 105 -- Item que irár "perder" local Outfits = { ["citizen"]={136} } function Remove(cid) if doPlayerRemoveItem(cid,itemRemove, 1) then if(getPlayerSex(cid) == 0)then doPlayerAddOutfit(cid, Outfits[param][1], 3) selfSay("Parabéns, você ganhou um novo outfit!", cid) talkState[talkUser] = 0 else doPlayerPopupFYI(cid, "Você não pode receber o outfit, pois está faltando o item!") return false end end end if getPlayerStorageValue(cid, 15001) == -1 then selfSay("Fale com o outro NPC e volte depois!!") talkState[talkUser] = 0 elseif (msgcontains(msg, 'mission')) then selfSay("Você quer receber seu outfit?") talkState[talkUser] = 1 elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if Remove(cid) then elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("Bye!", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
O NPC3 vou tentar fazer e posto aqui. Testa esses e me diz se funcionou.
-
PsyMcKenzie recebeu reputação de Boush em [Ajuda] Talkaction /clean não limpa pzIsso tem que alterar nas sources em map.cpp
uint32_t Map::clean() { uint64_t start = OTSYS_TIME(); uint32_t count = 0, tiles = 0; if (g_game.getGameState() == GAME_STATE_NORMAL) { g_game.setGameState(GAME_STATE_MAINTAIN); } for (int32_t z = 0; z < (int32_t)MAP_MAX_LAYERS; z++) { for (uint32_t y = 1; y <= mapHeight; y++) { for (uint32_t x = 1; x <= mapWidth; x++) { Tile* tile = getTile(x, y, z); if (!tile || tile->hasFlag(TILESTATE_HOUSE) || !tile->getItemList()) { continue; } ++tiles; TileItemVector* itemList = tile->getItemList(); ItemVector::iterator it = itemList->begin(), end = itemList->end(); while (it != end) { if ((*it)->isCleanable()) { g_game.internalRemoveItem(*it, -1); it = itemList->begin(); end = itemList->end(); ++count; } else { ++it; } } } } } if (g_game.getGameState() == GAME_STATE_MAINTAIN) { g_game.setGameState(GAME_STATE_NORMAL); } std::cout << "> CLEAN: Removed " << count << " item" << (count != 1 ? "s" : "") << " from " << tiles << " tile" << (tiles != 1 ? "s" : "") << " in " << (OTSYS_TIME() - start) / (1000.) << " seconds." << std::endl; return count; }
-
PsyMcKenzie recebeu reputação de Sekk em [PEDIDO] PET System DiferenteO que to testando também, acho que até amanhã já terminei, mas não tem nada demais. Apenas o pet e o npc para revivê-lo.
Aí as alterações são com você.
-
PsyMcKenzie deu reputação a xWhiteWolf em New Library v. 1.2Fala galera, hoje vim trazer pra vocês uma nova biblioteca de funções que eu venho desenvolvendo, pretendo ir atualizando esse tópico constantemente sempre adicionando funções novas e explicando a utilização delas. Algumas funções que eu coloquei aqui estão presentes na OTAL também, porém algumas eu fiz pequenas correções de forma que essa lib poderia facilmente substituir a OTAL sem grandes problemas (pelo menos se você utilizava apenas as funções básicas da otal)
Todas as funções que não tem -- nome do autor do lado dela foram feitas por mim, xWhiteWolf ou Night Wolf (NW). O restante delas são créditos dos devidos autores, apenas coloquei pois considero funções vitais no server de cada um. Crie um arquivo em data/lib chamado 075 - White Wolf Functions.lua e coloque o seguinte código dentro:
Agora eu vou explicar oque cada função faz porque de nada adianta lançar uma lib e não explicar oque ela faz não é mesmo? hahaha
Obs inicial: quando uma função tiver em seus parametros um [] significa que oque está dentro do colchetes não é um parâmetro obrigatório.
Como usar: doShowTimeByPos(cid, getCreaturePosition(cid), 20, 20)
Irá fazer uma contagem regressiva na posição que o player se encontra começando de 20 e mandando a mensagem na mesma cor da fala dos monstros.
Essa função é bem útil em actions/spells para fazer contagem de tempo em runas como a magic wall e ver quanto tempo falta pra magic wall sumir)
Obs: Espero que ajude bastante pessoas a entender sobre funções, eu utilizei cid como o principal uid das funções nos exemplos mas você pode muito bem utilizar outros uids, fica a critério seu.
Qualquer dúvida comentem abaixo que eu vou tentar ajudar da melhor maneira.
Ahhh, isso daí foi testado em 8.54 mas deve funcionar em quase todas as versões que tenham as funções básicas do TFS.
EDIT: Pessoal, agora é sério, essa lib tem fácil umas 600 linhas, das quais umas 500 eu devo ter codado sozinho (na mão, linha por linha). Eu tive todo o trabalho de testar cada uma delas e oque eu peço é o mínimo de gratidão e respeito. Se eu te ajudei clique em Gostei, se você tiver alguma dúvida eu to me colocando a disposição de responder qualquer coisa relacionada ao tópico, mesmo que você não saiba nem oque é uma lib apenas venha aqui e escreva sua dúvida.
EDIT 2: Duas novas funções adicionas, espero que gostem!
EDIT 3: Três novas funções adicionadas juntamente com suas respectivas explicações.
-
PsyMcKenzie deu reputação a will096 em GrimOT - Alpha em desenvolvimentoOla, estou aqui para apresentar o GrimOT server. Servidor em AlphaTest, que traz um mapa totalmente autoral com características RPG e de exploração.
A equipe do GrimOT se resume por enquanto em duas pessoas, das quais as mesmas são responsáveis por desenvolver mapa, monstros, spells, quests, actions, scripts em geral incluindo site e trabalhando na parte de instalação e manutenção do servidor VPS.
Desenvolvimento do projeto: 20% relativos ao total final.
O que já esta funcionando dentro do servidor?
Uma cidade inicial. Hunts dispostas em volta da cidade. Hunts inferiores. Interações cenário e jogador. Vocações. Items. Monstros. Magias. Balanceamento de hunt e level, incluindo vocations. Ip para conferir: grimotgame.servegame.com
Port: 7171
Client: 8.60
Contato para interessados no projeto:
[email protected]
-
PsyMcKenzie deu reputação a WhiteBubble em Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]Dragon Ball
Rox
Servidor 100% estável com mais de 200 horas online.
38 Vocações sendo 9 delas vip que são:
Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame
Chilled,C8 e King Vegetta.
Spells de fast attack (Usa uma vez sai 10 hits).
Eventos automaticos como: Castle,Battlefield,Run event.
Reborn level maximo 600.
Vamos aos bugs que eu encontrei:
* Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra.
* Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo.
* Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora.
Update v2
Adicionado 7 novas vocações vips sendo elas:
Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo.
Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black.
Vocações que antes era vip no update v1 agora são free.
Fazer reborn não precisa mais fazer quest das esferas do dragão.
Adicionado cassino que se ganha small diamonds que se troca por:
Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet.
Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama.
Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama.
Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip.
Adicionado 3 bosses espalhados pelo mapa (Earth).
Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno.
Adicionado sistema de upgrade fazendo seu item ficar mais forte.
Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja.
Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars.
Area de evento pvp e dice/bag adicionada no Yama.
Area vip adicionada.
Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip.
Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo.
Algumas modificações no mapa, hunts, quest.
Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico.
Gostou ? Clique em Gostei logo abaixo.
Para consertar o erro da loteria só executar essa query na sua database:
CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
Downloads
Server (Distro para windows e linux já compilada) Scan
Cliente Scan
Sources Scan
Site (Modern Acc) Scan
Database Scan
Creditos server: Kramer, WhiteBubble
Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server
Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
-
PsyMcKenzie deu reputação a luangop em Problema com item que da vip e promotionaction
function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 29000) local timenow = os.time() if getPlayerStorageValue(cid, 29000) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 29000, time) local quantity = math.floor((getPlayerStorageValue(cid, 29000) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.") doPlayerAddAddons(cid, 1) local voc = getPlayerVocation(cid) if voc <= 4 then newvoc = voc + 8 elseif voc > 4 and voc <= 8 then newvoc = voc + 4 end doPlayerSetVocation(cid, newvoc) addEvent(doRemoveCreature, 5*1000, cid, true) end return TRUE end Creaturescript
function onLogin(cid) local temple = { x =156, y = 112, z = 7} if vip.hasVip(cid) == true then if getPlayerStorageValue(cid,29000) ~= 1 then setPlayerStorageValue(cid,29000,1) end else if getPlayerStorageValue(cid,29000) == 1 then doTeleportThing(cid, temple) doPlayerSendTextMessage(cid, 22, "Sua vip acabou!") local voc = getPlayerVocation(cid) if voc > 8 and voc < 13 then newvoc = voc - 4 doPlayerSetVocation(cid, newvoc) end db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `id` = ".. getAccountIdByName(getPlayerName(cid)) ..";") setPlayerPromotionLevel(cid, 1) setPlayerStorageValue(cid, 29000, 0) end end return true end function onLogin(cid) local name = string.gsub(""..getCreatureName(cid).."", ".VIP. ", "") if getPlayerStorageValue(cid, 29000) <= 0 then if getCreatureName(cid) ~= name then db.executeQuery("UPDATE `players` SET `name` = '"..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") addEvent(doRemoveCreature, 2*1000, cid, true) end end return true end
-
PsyMcKenzie deu reputação a Movie em BAIAK 8.6 NOVO - VIP15 - AURA SYSTEM - EVENTOS - MAGIAS NOVAS - REFINAMENTOOlá a todos, criei um OTServ a um tempo atrás e não deu muito certo então resolvi deixar disponível para vocês baixarem.
O que editei: - Implementação da Aura System - Boss Event diário 100% automático. - Magias novas (!spells) - Quests inéditas - Eventos funcionais - Implementado um sistema de reset 100% funcional - Áreas Donate, Supreme, Ultimate, Super UP (cave exclusiva) e Reset City. - Sistema de compra de itens no templo. - Dodge e Critical System - Refinamento System - E muito mais...
Algumas imagens:
Curtiu? dá um REP+ aí
Download: clique aqui
Scan: clique aqui
Site: clique aqui
O servidor vêm preparado para ser utilizado com MySQL.
Em breve colocarei o site que usei para download aqui.
Use a database que vêm junto com o arquivo.
Créditos:
75% Baiak Fusion
25% Movie
-
PsyMcKenzie deu reputação a Orochi Elf em Perfect Fly System - OrochiElfPerfect Fly System
autor: Tony Araújo (OrochiElf)
Olá pessoal, hoje eu vim mostrar a vocês meu novo sistema de voo. Ele utiliza a técnica de simulação de pisos andáveis e invisíveis apenas no client, ou seja, sem a necessidade de criar e destruir vários pisos o que acarreta bastante consumo de memória do servidor em dois pontos, no mapa (por inserir novos pisos) e na execução do servidor.
Bom, o sistema conta com várias funções super interessantes, tais como: Auto Walk (Ao clicar no mapa, o jogador vai até o local indicado), Follow (É possível utilizar o follow sem problemas no fly) e o melhor de todos na minha opinião No Walk Delay (Não existe delay nenhum na caminhada do jogador em qualquer lugar do mapa que ele esteja indo de fly)
Quaisquer dúvidas sobre o sistema, só perguntar
Um vídeo sobre o sistema. Espero que gostem:
-
PsyMcKenzie deu reputação a luangop em Problema com item que da vip e promotionSeu script de addvip está botando uma storage diferente.
Isso irá corrigir:
function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 30 -- dias que serão adicionados local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 29000) local timenow = os.time() if getPlayerStorageValue(cid, 29000) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 29000, time) local quantity = math.floor((getPlayerStorageValue(cid, 29000) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..getCreatureName(cid).."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos para mudança de nome.") doPlayerAddAddons(cid, 1) addEvent(doRemoveCreature, 5*1000, cid, true) end return TRUE end Sobre a promotion, vc já tem ela configurada no vocations.xml?
Se tiver, poste o ID das vocations que eu faço pra vc.
-
PsyMcKenzie recebeu reputação de wilkerankaro em Vps. Tibia 8.6Também to com essa dúvida, vou abrir um server 8.50, mas quero atingir 60, 80 até 100 players.