Ir para conteúdo

Todas Atividades

Atualizada automaticamente     

  1. Recentemente
  2. Esse erro ai é que vc tenta passar uma string no 1º parâmetro do tmpPlayer->getStorage e no caso o 1º parâmetro é um tipo inteiro e não string, removendo as aspas deve para de ocorrer esse erro que você está tendo, veja a forma correta: if ( tmpPlayer->getStorage(58678, strValue) )
  3. Today
  4. Eu estava vendo aqui, ela é 90% feita pelo cliente.... Tem algumas funções na DB e um arquivo na pasta rais do servidor mas sla deve ta faltando função ainda
  5. Brunds

    Procuro VPS

    melhor empresa é a 4youstart que te da suporte com otserv
  6. vinicius231

    Procuro VPS

    Olha, eu to usando as vps da Positive Host, os preços são otimos Se quiser dar uma olhada eu recomendo muito http://positivehost.com
  7. Kevin Vittar

    Base

    Galera, me da uma ajudinha aí, alguém tem alguma base limpa ou que não contenha muitos erros e que o mapa seja pequeno também, que possa disponibilizar?? Aaah, a base tem que conter as sources se possível !! Grato des de já pela atenção
  8. Muito Legal, Parabéns. Poderia fazer um tutorial como compilar o otclient? Rep+ "Obs: Fiz do mesmo jeito agora distro não quer abrir."
  9. JulianoZN

    Procuro VPS

    apartir de 5 GB ram ta bom e tem que ser linux www.v4host.com
  10. Obs: ja tem tutoriais aqui no xtibia porem estão tendo problemas entao vamos lá Antes de começar lembre-se esse codigo nao da de usar o old cliente depois Oque Precisa ? Source do Servidor e Source do OtClient Source usada: Para nao dar bug na hora de subir escada ou desce, aumente o máximo de tiles que poderá ser carregado const.h procure por #define NETWORKMESSAGE_MAXSIZE 15360 mude para #define NETWORKMESSAGE_MAXSIZE valor que voce quer <OBS isso e para a quantidade de pixel será possivel receber sem bugar> #define NETWORKMESSAGE_MAXSIZE 1000000000 --- Valor que coloquei no meu protocalgame.cpp procure por bool ProtocolGame::canSee(uint16_t x, uint16_t y, uint16_t z) const { #ifdef __DEBUG__ if(z < 0 || z >= MAP_MAX_LAYERS) std::cout << "[Warning - ProtocolGame::canSee] Z-value is out of range!" << std::endl; #endif const Position& myPos = player->getPosition(); if(myPos.z <= 7) { //we are on ground level or above (7 -> 0), view is from 7 -> 0 if(z > 7) return false; } else if(myPos.z >= 8 && std::abs(myPos.z - z) > 2) //we are underground (8 -> 15), view is +/- 2 from the floor we stand on return false; //negative offset means that the action taken place is on a lower floor than ourself int32_t offsetz = myPos.z - z; return ((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && (y >= myPos.y - 6 + offsetz) && (y <= myPos.y + 7 + offsetz)); } Substitua por bool ProtocolGame::canSee(uint16_t x, uint16_t y, uint16_t z) const { #ifdef __DEBUG__ if(z < 0 || z >= MAP_MAX_LAYERS) std::cout << "[Warning - ProtocolGame::canSee] Z-value is out of range!" << std::endl; #endif const Position& myPos = player->getPosition(); if(myPos.z <= 7) { //we are on ground level or above (7 -> 0), view is from 7 -> 0 if(z > 7) return false; } else if(myPos.z >= 8 && std::abs(myPos.z - z) > 2) //we are underground (8 -> 15), view is +/- 2 from the floor we stand on return false; //negative offset means that the action taken place is on a lower floor than ourself int32_t offsetz = myPos.z - z; 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)); } procure por if(newPos.z > oldPos.z) MoveDownCreature(msg, creature, newPos, oldPos, oldStackpos); else if(newPos.z < oldPos.z) MoveUpCreature(msg, creature, newPos, oldPos, oldStackpos); if(oldPos.y > newPos.y) // north, for old x { msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, newPos.y - 6, newPos.z, 18, 1, msg); } else if(oldPos.y < newPos.y) // south, for old x { msg->AddByte(0x67); GetMapDescription(oldPos.x - 8, newPos.y + 7, newPos.z, 18, 1, msg); } if(oldPos.x < newPos.x) // east, [with new y] { msg->AddByte(0x66); GetMapDescription(newPos.x + 9, newPos.y - 6, newPos.z, 1, 14, msg); } else if(oldPos.x > newPos.x) // west, [with new y] { msg->AddByte(0x68); GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } } } } Substitua por if(newPos.z > oldPos.z) MoveDownCreature(msg, creature, newPos, oldPos, oldStackpos); else if(newPos.z < oldPos.z) MoveUpCreature(msg, creature, newPos, oldPos, oldStackpos); 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); } } } } Procure por ////////////// Add common messages void ProtocolGame::AddMapDescription(NetworkMessage_ptr msg, const Position& pos) { msg->AddByte(0x64); msg->AddPosition(player->getPosition()); GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg); } Substitua por ////////////// Add common messages void ProtocolGame::AddMapDescription(NetworkMessage_ptr msg, const Position& pos) { msg->AddByte(0x64); msg->AddPosition(player->getPosition()); GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg); } Procure por void ProtocolGame::MoveUpCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBE); //floor change up if(newPos.z == 7) //going to surface { 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > 7) //underground, going one floor up (still underground) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.z - 3, 18, 14, 3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - 8, oldPos.y + 1 - 6, newPos.z, 1, 14, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); } Substitua por void ProtocolGame::MoveUpCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBE); //floor change up 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //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); } Procure por void ProtocolGame::MoveDownCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBF); //floor change down if(newPos.z == 8) //going from surface to underground { 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) //going further down { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving down a floor makes us out of sync //east msg->AddByte(0x66); GetMapDescription(oldPos.x + 9, oldPos.y - 1 - 6, newPos.z, 1, 14, msg); //south msg->AddByte(0x67); GetMapDescription(oldPos.x - 8, oldPos.y + 7, newPos.z, 18, 1, msg); } Substitua por void ProtocolGame::MoveDownCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBF); //floor change down if(newPos.z == 8) //going from surface to underground { 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) //going further down { 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); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving down a floor makes us out of sync //east msg->AddByte(0x66); GetMapDescription(oldPos.x + Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); //south msg->AddByte(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y + Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } Agora no Map.h Procure por static const int32_t maxViewportX = 11; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 11; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 8; static const int32_t maxClientViewportY = 6; Substitua por static const int32_t maxViewportX = 15; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 15; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 14; static const int32_t maxClientViewportY = 8; Agora no map.cpp do Otclient Procure por void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } Substitua por { AwareRange range; range.left = 15; //Change this to = maxClientViewportX range.top = 15; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } ou por { AwareRange range; range.left = 14; //Change this to = maxClientViewportX range.top = 8; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); }
  11. Ontem
  12. Não olhei muito mas essa pokedex parece estar desnecessariamente complexa (fora alguns bugs como não mostrar as informações de primeira ao dar dex no pokemon), recomendo aproveitarem o design mas refazerem as funções dela por opcodes passando as informações dos pokemons, a lista dos pokemons já descobertos e etc
  13. Isso foi no meu caso, procura no stackoverflow por Linker Error Dev Cpp que alguma hora acha algo que resolve seu problema xD (ou o seu dev cpp ta com problema e vc precisa de outro, tenta com esse)
  14. Também to querendo, me falaram que as functions seria na source do Server e na database, na database é sim, mas no server não sei se é.
  15. Sinto muito em lhe dizer isso... mas não funcionou
  16. Já tive esse erro em 2 situações. Na primeira, eu estava usando o dev cpp 32 bits, usar o 64 bits resolveu. Na segunda, as bibliotecas para compilar o OTC estavam entrando em conflito com as do dev cpp, bastou mover a pasta mingw do diretório C:/ para a área de trabalho (ou qualquer outro lugar) que resolveu
  17. Algumas respostas atrás eu mencionei quais arquivos são relacionados a pokedex (só não mencionei o game_interface para iniciar o módulo se não me engano). Teria que olhar todos aqueles arquivos e copiar as partes referentes a pokedex para adaptar no seu servidor. Da um trabalho maneiro kkk
  18. Não corrigi, ningúem responde nada aqui tô tentando corrigir faz tempo, mas pelo que eu entendi, é o dev q tá com problema eu uso windows 7 64 bit alguém podia ajudar aí né
  19. Gengo

    [OtClient] Auto-Loot

    Não é que eu não queira resolver ou não o problema, a questão é que se não seguir direto o tutorial, vai ocorrer esses erro mesmo. 1º O erro dá no getName linha 185, se você não seguir o passo 1 e 2 do tutorial apresentado que é para carregar os items, esse metodo do getName do item realmente não vai funcionar e retornara como nulo conforme descrito no erro que você apresentou. Você pode criar outro tópico de suporte apresentando o erro, porem alguem que também entenda de OTC vai dizer que o getName dos items ele retornará nulo, ao menos que vc altere nas sources ou você carregue os itens com g_things.loadOtb e g_things.loadXml
  20. Poke X Ice

    [OtClient] Auto-Loot

    Boa Tarde,Gengo! Eu fiz o tutorial corretamente como está no post. Única parte que esta tendo problema é no modulo. Por isso eu vim pedir ajudar nesse tópico.. Se não quiser ajudar a resolver problema do modulo "ok" Vou na Área de suporte.... adeus.
  21. Boa tarde galera! estou precisando do código fonte pra compilar o emoted spells, achei um mas sem sucesso ao compilalo... Explicando: você consegue ativar o emoted spells ON (MAGIAS SEM SPAWNAR O CHAT EM LARANJA) e desativar !emotedspells OFF (MAGIAS NO CHAT AMARELO). Segue o código que eu tentei compilar: game.h bool internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators = NULL, Position* pos = NULL, bool isSpell = false); game.cpp bool Game::internalCreatureSay(Creature* creature, SpeakClasses type, const std::string& text, bool ghostMode, SpectatorVec* spectators/* = NULL*/, Position* pos/* = NULL*/, bool isSpell/* = false*/) for(it = list.begin(); it != list.end(); ++it) { if(!(tmpPlayer = (*it)->getPlayer())) continue; if(!ghostMode || tmpPlayer->canSeeCreature(creature)) { if(isSpell) { // to jest spell std::string strValue; if(tmpPlayer->getStorage("58678", strValue)) { // storage jest ustawione int32_t intValue = atoi(strValue.c_str()); if(intValue) { // storage jest liczba i ma wartosc inna niz 0, typ tekstu 'monster' tmpPlayer->sendCreatureSay(creature, SPEAK_MONSTER_SAY, text, &destPos); } else { // storage rowne 0, domyslny typ tekstu tmpPlayer->sendCreatureSay(creature, type, text, &destPos); } } else { // storage nie ustawione, domyslny typ tekstu tmpPlayer->sendCreatureSay(creature, type, text, &destPos); } } else { tmpPlayer->sendCreatureSay(creature, type, text, &destPos); } } } spells.cpp return g_game.internalCreatureSay(player, type, ret, player->isGhost(), NULL, &pos, true) ? RET_NOERROR : RET_NOTPOSSIBLE; Talkaction para ativar o comando function onSay(cid, words, param) if param == "emote" and getCreatureStorage(cid, 58678) < 1 then doCreatureSetStorage(cid, 58678, 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have enabled emoted spells.") elseif param == "normal" and getCreatureStorage(cid, 58678) == 1 then doCreatureSetStorage(cid, 58678, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have disabled emoted spells.") end return false end ERRO AO COMPILAR:
  22. JulianoZN

    [AJUDA] Pokedex

    irei por os script da dex um momento Pode marca como resolvido , achei onde tava o erro
  23. Gengo

    [AJUDA] Pokedex

    Como alguém vai te ajudar se nem o código você posta, é necessário do script já que não se sabe no que você fez de errado.
  24. JulianoZN

    [AJUDA] Pokedex

    Não sei se esta na área correta. Vamos la Tipo minha pokedex so esta funcionando se o pokemon estiver do lado do player [Meio impossivel o player conseguir ficar do lado] exemplo: Mais quando eu estou a um pouco longe dele ja da erro, OBS: não da erro na distro nem nada actions local rate = 20 function onUse(cid, item, fromPos, item2, toPos) if not isCreature(item2.uid) then return true end local poke = getCreatureName(item2.uid) if isMonster(item2.uid) then local this = newpokedex[getCreatureName(item2.uid)] local myball = 0 if isSummon(item2.uid) then myball = getPlayerSlotItem(getCreatureMaster(item2.uid), 8) end if not getPlayerInfoAboutPokemon(cid, poke).dex then local exp = this.level * rate doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Parabéns, você desbloqueou ".. getCreatureName(item2.uid).." em sua Pokédex.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você ganhou "..exp.." pontos de experiência.") doSendMagicEffect(getThingPos(cid), 210) doPlayerAddExperience(cid, exp) doAddPokemonInDexList(cid, poke) else doShowPokedexRegistration(cid, item2, myball) end return true end if not isPlayer(item2.uid) then return true end local kanto = 0 local johto = 0 local hoen = 0 local sinooh = 0 --alterado v1.6 local player = getRecorderPlayer(toPos, cid) return true end lib local skills = specialabilities --alterado v1.9 \/ peguem tudo! function doAddPokemonInDexList(cid, poke) if getPlayerInfoAboutPokemon(cid, poke).dex then return true end local a = newpokedex[poke] local b = getPlayerStorageValue(cid, a.storage) setPlayerStorageValue(cid, a.storage, b.." dex,") end function getPokemonEvolutionDescription(name, next) local kev = poevo[name] local stt = {} if isInArray(specialevo, name) then elseif kev then if next then table.insert(stt, "\n"..kev.evolution..", Nível: "..kev.level..".") return table.concat(stt) end local id = tonumber(kev.stoneid) local id2 = tonumber(kev.stoneid2) local stone = "" if tonumber(kev.count) == 2 then stone = doConvertStoneIdToString(id).." (2x)" else stone = id2 == 0 and doConvertStoneIdToString(id) or doConvertStoneIdToString(id).." and "..doConvertStoneIdToString(id2) end table.insert(stt, "-- Evolução --\n\n"..kev.evolution..", Nível: "..kev.level..".") table.insert(stt, getPokemonEvolutionDescription(kev.evolution, true)) table.insert(stt, "\n\nStone: "..stone.."\n") end return table.concat(stt) end local function getMoveDexDescr(cid, name, number) local x = movestable[name] if not x then return "" end local z = "\n" local tables = {x.move1, x.move2, x.move3, x.move4, x.move5, x.move6, x.move7, x.move8, x.move9, x.move10, x.move11, x.move12} local y = tables[number] if not y then return "" end if getTableMove(cid, y.name) == "" then print(""..y.name.." faltando") return "unknown error" end local txt = "\nMove "..number.."\n Nome: "..y.name.."\n Nível: "..y.level.."\n Tipo: "..y.t.."\n" return txt end --alterado v1.8 local skillcheck = {"fly", "ride", "surf", "teleport", "rock smash", "cut", "dig", "light", "blink", "control mind", "transform", "levitate_fly"} local passivas = { ["Electricity"] = {"Electabuzz", "Shiny Electabuzz", "Elekid", tpw = "electric"}, ["Lava Counter"] = {"Magmar", "Magby", tpw = "fire"}, ["Counter Helix"] = {"Scyther", "Shiny Scyther", tpw = "bug"}, ["Giroball"] = {"Pineco", "Forretress", tpw = "steel"}, ["Counter Claw"] = {"Scizor", tpw = "bug"}, ["Counter Spin"] = {"Hitmontop", "Shiny Hitmontop", tpw = "fighting"}, ["Demon Kicker"] = {"Hitmonlee", "Shiny Hitmonlee", tpw = "fighting"}, ["Demon Puncher"] = {"Hitmonchan", "Shiny Hitmonchan", tpw = "unknow"}, --alterado v1.6 ["Stunning Confusion"] = {"Psyduck", "Golduck", "Wobbuffet", tpw = "psychic"}, ["Groundshock"] = {"Kangaskhan", tpw = "normal"}, ["Electric Charge"] = {"Pikachu", "Raichu", "Shiny Raichu", tpw = "electric"}, ["Melody"] = {"Wigglytuff", tpw = "normal"}, ["Dragon Fury"] = {"Dratini", "Dragonair", "Dragonite", "Shiny Dratini", "Shiny Dragonair", "Shiny Dragonite", tpw = "dragon"}, ["Fury"] = {"Persian", "Raticate", "Shiny Raticate", tpw = "normal"}, ["Mega Drain"] = {"Oddish", "Gloom", "Vileplume", "Kabuto", "Kabutops", "Parasect", "Tangela", "Shiny Vileplume", "Shiny Tangela", tpw = "grass"}, ["Spores Reaction"] = {"Oddish", "Gloom", "Vileplume", "Shiny Vileplume", tpw = "grass"}, ["Amnesia"] = {"Wooper", "Quagsire", "Swinub", "Piloswine", tpw = "psychic"}, ["Zen Mind"] = {"Slowking", tpw = "psychic"}, ["Mirror Coat"] = {"Wobbuffet", tpw = "psychic"}, ["Lifesteal"] = {"Crobat", tpw = "normal"}, ["Evasion"] = {"Scyther", "Scizor", "Hitmonlee", "Hitmonchan", "Hitmontop", "Tyrogue", "Shiny Scyther", "Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Hitmontop", "Ledian", "Ledyba", "Sneasel", tpw = "normal"}, ["Foresight"] = {"Machamp", "Shiny Hitmonchan", "Shiny Hitmonlee", "Shiny Hitmontop", "Hitmontop", "Hitmonlee", "Hitmonchan", tpw = "fighting"}, ["Levitate"] = {"Gengar", "Haunter", "Gastly", "Misdreavus", "Weezing", "Koffing", "Unown", "Shiny Gengar", tpw = "ghost"}, } function doShowPokedexRegistration(cid, pokemon, ball) local item2 = pokemon local virtual = false if type(pokemon) == "string" then virtual = true end local myball = ball local name = virtual and pokemon or getCreatureName(item2.uid) local v = fotos[name] local stt = {} table.insert(stt, "Nome: "..name.."\n") if pokes[name].type2 and pokes[name].type2 ~= "no type" then table.insert(stt, "Tipo: ("..pokes[name].type..") & ("..pokes[name].type2..")") else table.insert(stt, "Tipo: ("..pokes[name].type..")") end if virtual then table.insert(stt, "\nNível Mínimo: "..pokes[name].level.."\n") else table.insert(stt, "\nNível Mínimo: ".. getPokemonLevel(item2.uid, true) .."\n") --alterado v1.9 end table.insert(stt, "\n-- Habilidades Especiais --\n\n") local abilityNONE = true --alterado v1.8 \/ for b, c in pairs(skills) do if isInArray(skillcheck, b) then if isInArray(c, name) then table.insert(stt, (b == "levitate_fly" and "Levitate" or doCorrectString(b)).."\n") abilityNONE = false end end end if abilityNONE then table.insert(stt, "Não tem\n\n") end table.insert(stt, ""..getPokemonEvolutionDescription(name).."") table.insert(stt, "\n-- Ataques --\n") if name == "Ditto" then if virtual then table.insert(stt, "\nIt doesn't use any moves until transformed.") elseif getPlayerStorageValue(item2.uid, 1010) == "Ditto" or getPlayerStorageValue(item2.uid, 1010) == -1 then table.insert(stt, "\nIt doesn't use any moves until transformed.") else for a = 1, 15 do table.insert(stt, getMoveDexDescr(item2.uid, getPlayerStorageValue(item2.uid, 1010), a)) end end else for a = 1, 15 do table.insert(stt, getMoveDexDescr(item2.uid, name, a)) end end if string.len(table.concat(stt)) > 8192 then print("Error while making pokedex info with pokemon named "..name..".\n Pokedex registration has more than 8192 letters (it has "..string.len(stt).." letters), it has been blocked to prevent fatal error.") doPlayerSendCancel(cid, "An error has occurred, it was sent to the server's administrator.") return true end doShowTextDialog(cid, v, table.concat(stt)) end
  25. Gengo

    [OtClient] Auto-Loot

    Tenha a certeza que você seguiu o tutorial corretamente, favor refazer o tutorial. Eu lhe garanto que módulo não tem esse tipo de erro que você apresentou. O módulo é independente de qualquer versão de servidor, portanto não faz sentido você postar a base que está utilizando. Qualquer erro de script da parte do servidor que você esteja tendo problemas, favor contatar a pessoa que fez o script, deixei os créditos deles no final do tutorial.
  1. Mais Resultados
×
×
  • Criar Novo...