Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 01/09/19 em todas áreas

  1. Olá ❤️ Ta Ai a minha primeira e ultima e unica contribuição para vocês ❤️ Esperem que gostem -Base otP -System Fly/surf/ordem/ride/tudo sem bugs.... -Novos Ataques Adicionado -Novos Pokemons -5Gen 60% Completa -Nova Saffron 2018 (ATUAL DO OTP) -Nova Battle City 2017 (ATUAL DO OTP) -Muito mais.... Caso não queira a saffron/battle city atual do otp tem a pasta World² na data com os remake antigo das cidades... Caso ache algum virus no server/source deve ser de DLL,pois tentei remover mas nao consegui... Bom Proveito ❤️ Meu Projeto: PokeZR ❤️ < > [PokeZR] Base otPokemon.com 2018 Completo < > [PokeZR] Server otPokemon.com By Kyyah Silva Scan:https://www.virustotal.com/#/file/5f96085a80b6224e1832a357cb0fedc06e4ac978b6fb626288551bf2af8a7d7f/detection Server: https://www.mediafire.com/file/1s6a2te5f1vpv23/[BASE]_PokeZR_By_Kyyah.rar/file ------------------------------------ [PokeZR] Source Server Completo By Kyyah Silva Scan:https://www.virustotal.com/#/file/62233eb2868d12b76086d4ae62e627958827119f82e9bb681c762c9015451a63/detection Source: https://www.mediafire.com/file/mgr0d5rwhvjqdxv/[SOURCE]_PokeZR_By_Kyyah.rar ------------------------------------ [PokeZR] Site Completo otPokemon 2017 Adapt PokeZR Scan:https://www.virustotal.com/#/file/1731a5cc9276096d9c17d8f728176d93b4aa378f80d6b005a304982f0424d21f/detection Htdocs: https://www.mediafire.com/file/oe89pel8k7mj6wy/[SITE]_PokeZR_By_Kyyah.rar ------------------------------------- [PokeZR] New Client PokeZR By Kyyah Silva Scan:https://www.virustotal.com/#/file/d40e0281057106f5aa34e0a4a274d067c607f0659503c09fbfb17fddf374c0fd/detection NewClient: https://www.mediafire.com/file/r24at4gdwchn7v8/[NEW]_PokeZR_By_Kyyah.rar ------------------------------------ [PokeZR] Old Client PokeZR By Kyyah Silva Scan:https://www.virustotal.com/#/file/7b86867aebed313dfc577eff3b01108a94d2eb99f63ac662e5cac78716afa9d1/detection OldClient: https://www.mediafire.com/file/qj5qzwz56w4bgcl/[OLD]_PokeZR_By_Kyyah.rar ------------------------------------ [PokeZR] Laucher Old Client Completo Scan:https://www.virustotal.com/#/file/30aba94f1ad678b40e1459c934921cef23240967e608b47478e9e7818bd61a22/detection LaucherOld: https://www.mediafire.com/file/wbtdr6q6j769lh2/[OLD]_Laucher_By_Kyyah.rar
    1 ponto
  2. Refe

    Adicionando mais tiles a visão do jogador!

    Hoje eu vim ensinar como aumenta a "tela" de jogo do OTCLIENT (Desculpe o merchant, era a unica imagem que eu tinha salvo) Testado em : 0.3.6pl1, Pode funcionar em 1.0 com alterações pequenas. Em protocolgame.cpp ache: return ((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && (y >= myPos.y - 6 + offsetz) && (y <= myPos.gety + 7 + offsetz)); e troque por: return ((x >= myPos.x - Map::maxClientViewportX + offsetz) && (x <= myPos.x + (Map::maxClientViewportX+1) + offsetz) && (y >= myPos.y - Map::maxClientViewportY + offsetz) && (y <= myPos.y + (Map::maxClientViewportY+1) + offsetz)); Agora, continuando em protocolgame.cpp ache: GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg); E troque por: GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg); Continuando em protocolgame.cpp ache a função: void ProtocolGame::sendMoveCreature(const Creature* creature, const Tile* newTile, const Position& newPos, uint32_t newStackpos, const Tile* oldTile, const Position& oldPos, uint32_t oldStackpos, bool teleport) Dentro da função encontre: A parte que começa em if (oldPos.y > newPos.y) { e Termina em GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } e troque por: if (oldPos.y > newPos.y) { // north, for old x msg->AddByte(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } else if (oldPos.y < newPos.y) { // south, for old x msg->AddByte(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y + (Map::maxClientViewportY+1), newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } if (oldPos.x < newPos.x) { // east, [with new y] msg->AddByte(0x66); GetMapDescription(newPos.x + (Map::maxClientViewportX+1), newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } else if (oldPos.x > newPos.x) { // west, [with new y] msg->AddByte(0x68); GetMapDescription(newPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); Agora ache: if(newPos.z == 7) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 5, 18, 14, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 4, 18, 14, 4, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 3, 18, 14, 5, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 2, 18, 14, 6, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 1, 18, 14, 7, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 0, 18, 14, 8, skip); Depedendo da Source, a parte será assim: Por: if(newPos.z == 7) //going to surface { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 5, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 4, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 4, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 5, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 6, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 7, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 0, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 8, skip); Agora ache: else if(newPos.z > 7) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.getZ() - 3, 18, 14, 3, skip); Depedendo da source será assim: Por: else if(newPos.z > 7) //underground, going one floor up (still underground) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, oldPos.z - 3, (Map::maxClientViewportX+1), (Map::maxClientViewportY+1)*2, 3, skip); Agora ache: //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - 8, oldPos.y - 5, newPos.z, 1, 14, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); E troque por: //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); Agora ache: if(newPos.z == 8) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 14, -1, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 1, 18, 14, -2, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); Dependendo da source poderá ser: e troque por: if(newPos.z == 8) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -1, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -2, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); Agora ache: else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); Depedendo da source pode ser assim: E troque por: else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); Agora em map.h edite essa parte como quiser: static const int32_t maxViewportX = 11; //min: maxClientViewportX + 1 static const int32_t maxViewportY = 11; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 8; static const int32_t maxClientViewportY = 6; O modo de Edição é assim: Agora em map.cpp do OTCLIENT Ache: void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } Troque por: { AwareRange range; range.left = 8; //Valor que colocou em maxClientViewportX range.top = 6; //Valor que colocou em maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } Créditos: Flatlander - OTLAND - Criação Ceetros - Tradução Agora vamos deixar o OTCLIENT lindão. Troque tudo de modules/game_interface/interface.lua (na pasta do OTCLIENT) por: http://pastebin.com/tH7qyreW (para o tutorial não ficar muito grande botei no pastebin, já que o spoiler tá bugando) Creditos dessa parte: Edubart (Criador do OTCLIENT) Ceetros Caso tenha ajudado, dê um rep+
    1 ponto
  3. local poke = {"Girafarig", "Misdreavus", "Exeggutor", "Shiny Espeon"} --alterado v1.9 local etele = 9 local cdtele = 1 local config = { premium = true, -- se precisa ser premium account (true or false) battle = false -- se precisa estar sem battle (true). Se colocar false, poderá usar teleport no meio de batalhas } local places = { [1] = {name = "Black Town", id = 7, sto = 897540}, [2] = {name = "White Town", id = 8, sto = 897541}, [3] = {name = "City Vip", id = 9, sto = 897542}, [4] = {name = "Flora Vip", id = 10, sto = 897543}, [5] = {name = "Castelia", id = 11, sto = 897544}, } function onSay(cid, words, param) if #getCreatureSummons(cid) == 0 then doPlayerSendCancel(cid, "You need a pokemon to use teleport.") return true end if not isInArray(poke, getCreatureName(getCreatureSummons(cid)[1])) then return 0 end if getPlayerStorageValue(cid, 22545) == 1 then --golden arena doPlayerSendCancel(cid, "You can't do that while the golden arena!") return true end if getPlayerStorageValue(cid, 212124) >= 1 then --alterado v1.6 return doPlayerSendCancel(cid, "You can't do it with a pokemon with mind controlled!") end if getPlayerStorageValue(cid, 52480) >= 1 then return doPlayerSendCancel(cid, "You can't do it while a duel!") --alterado v1.6 end if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then return doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7 end if exhaustion.get(cid, etele) and exhaustion.get(cid, etele) > 0 then local tempo = tonumber(exhaustion.get(cid, etele)) or 0 local min = math.floor(tempo) doPlayerSendCancel(cid, "Your pokemon is tired, wait "..getStringmytempo(tempo).." to teleport again.") return true end if config.premium and not isPremium(cid) then doPlayerSendCancel(cid, "Only premium members are allowed to use teleport.") return true end if config.battle and getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "Your pokemon can't concentrate during battles.") return true end if (param == '') then local str = "" str = str .. "Places to go :\n\nHouse\n" for a = 1, #places do str = str..""..places[a].name.."\n" end doShowTextDialog(cid, 7416, str) return true end local item = getPlayerSlotItem(cid, ? local nome = getPokeballName(item.uid) local summon = getCreatureSummons(cid)[1] local lastppos = getThingPos(cid) local lastspos = getThingPos(summon) local telepos = {} local myplace = "" local townid = 0 local citySto = 0 --alterado v1.7 if string.lower(param) == "house" then if not getHouseByPlayerGUID(getPlayerGUID(cid)) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You don't own a house.") return true end myplace = "our home" else for x = 1, #places do if string.find(string.lower(places[x].name), string.lower(param)) then townid = places[x].id myplace = places[x].name citySto = places[x].sto or -1 --alterado v1.7 end end if myplace == "" then doPlayerSendCancel(cid, "That place doesn't exist.") return true end end doSendMagicEffect(getThingPos(summon), 29) doSendMagicEffect(getThingPos(cid), 29) local pos2 = getClosestFreeTile(cid, getPosByDir(getThingPos(cid), SOUTH)) doTeleportThing(summon, pos2, false) doSendMagicEffect(getThingPos(cid), 29) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1) doCreatureSay(cid, ""..nome..", teleport to "..myplace.."!", 1, false, 0, lastppos) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER) doCreatureSay(summon, "TELEPORT!", TALKTYPE_MONSTER, false, 0, lastspos) doCreatureSetLookDir(cid, SOUTH) doCreatureSetLookDir(summon, SOUTH) doSendMagicEffect(getThingPos(summon), CONST_ME_TELEPORT) exhaustion.set(cid, etele, cdtele) setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) return true end
    1 ponto
  4. Kuro o Shiniga

    [Resolvido] NPC

    Testa ai : local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local pos1 = {x=82, y=339, z=7} -- posicao da pra onde ele vai ser teleportado depois de 5 minutos local pos2 = {x=79, y=335, z=7} --- posiçao da cidade local stora = 355222 -- não mexer local tempo = 300 -- tempo que vai demorar para ele ser teleportado para a posicao if msgcontains(msg, "teste") and getPlayerStorageValue(cid, stora) < os.time() then doTeleportThing(cid, pos1) doSendMagicEffect(getThingPos(cid), 10) setPlayerStorageValue(cid, stora, os.time() + tempo) selfSay("voce foi enviado para outro destino", cid) elseif msgcontains(msg, "teste") and getPlayerStorageValue(cid, stora) >= os.time() then doTeleportThing(cid, pos2) selfSay("voce esta na cidade", cid) doSendMagicEffect(getThingPos(cid), 10) end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
    1 ponto
  5. Precisa fazer um script para a porta abrir com o tal storage da quest, fiz um mais simples para você sem precisar da porta, você pode remover essa porta do mapa pelo mapa editor. Eu baixei um tyranic aqui no meu pc e encontrei o arquivo LUA da quest nessa posição, no seu pode ser diferente mas é so substituir por esse script meu. Lembrando que o jogador só vai conseguir fazer a quest se ele concluir todas as missões do npc ! você vai em Actions/Scripts/fiparadox Abre o arquivo Lua com o nome de dwarvarm.lua e substitui o script dele por esse : function onUse(cid, item, fromPosition, itemEx, toPosition) local strdwarven = 8586599 local str = 871658 if getPlayerStorageValue(cid, strdwarven) == 3 and getPlayerStorageValue(cid, str) < 1 then doPlayerAddItem(cid, 2503, 1) setPlayerStorageValue(cid, str, 1) doPlayerSendTextMessage(cid, 22, "You have found a Dwarven Armor.") doSendMagicEffect(getThingPos(cid), 12) elseif getPlayerStorageValue(cid, strdwarven) == 3 and getPlayerStorageValue(cid, str) == 1 then doPlayerSendTextMessage(cid, 22, "Quest Empty.") doSendMagicEffect(getThingPos(cid), 2) elseif getPlayerStorageValue(cid, strdwarven) < 3 then doPlayerSendTextMessage(cid, 22, "You do not have access to this quest.") doSendMagicEffect(getThingPos(cid), 2) end end
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...