Jump to content
×
×
  • Create New...

Recommended Posts

► PokeZR com Level System ◄

Após receber inúmeras PMs de pessoas me pedindo esse servidor, resolvi liberar visto que não tem nenhum uso para mim. Que eu me lembre, a única modificação em comparação ao ZR original foi a adição do level system do PDA.

ATENÇÃO: o level system do PDA possui um bug onde a ball perde todos os atributos devido a algum erro no TFS 0.3.6 (ou talvez seja apenas uma limitação mesmo devido ao excesso de atributos). É possível também que em algumas situações, o level dos pokemons não apareça para todos os players na tela devido a um erro na função doCreatureSetNick, mas basta fazer a seguinte correção nas sources:

• Em luascript.cpp procure por:

int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L)

• Troque a função inteira por isso:

int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L)
{
    //doCreatureSetNick(cid, nick)
    ScriptEnviroment* env = getEnv();
    std::string nick = popString(L);
    Creature* creature = env->getCreatureByUID(popNumber(L));
    if (creature) {    
        SpectatorVec list;
        g_game.getSpectators(list, creature->getPosition());  
        Player* player = NULL;
        creature->Nick = nick;
        for (SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) {
           if (player = (*it)->getPlayer()) {
               player->sendCreatureNick(creature);
           }
        }
        lua_pushboolean(L, true);
    } else {
        lua_pushboolean(L, false);
    }
    return 1;
}

Download

MediaFire [30.77mb] - usem o client do PokeZR original mesmo disponível aqui.

MediaFire - executável do client e do servidor com maxView corrigidos. Créditos: @brazvct

 

Créditos ao @Kydrai pela correção na função doCreatureSetNick.

Edited by lSainty
Link to post
Share on other sites
  • Replies 34
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

► PokeZR com Level System ◄ Após receber inúmeras PMs de pessoas me pedindo esse servidor, resolvi liberar visto que não tem nenhum uso para mim. Que eu me lembre, a única modificação em comparaç

tava 15/15 ai eu deixei 20/20 e mandei o meu OTC junto

Posted Images

2 horas atrás, lSainty disse:

► PokeZR com Level System ◄

Após receber inúmeras PMs de pessoas me pedindo esse servidor, resolvi liberar visto que não tem nenhum uso para mim. Que eu me lembre, a única modificação em comparação ao ZR original foi a adição do level system do PDA.

ATENÇÃO: o level system do PDA possui um bug onde a ball perde todos os atributos devido a algum erro no TFS 0.3.6 (ou talvez seja apenas uma limitação mesmo devido ao excesso de atributos). É possível também que em algumas situações, o level dos pokemons não apareça para todos os players na tela devido a um erro na função doCreatureSetNick, mas basta fazer a seguinte correção nas sources:

• Em luascript.cpp procure por:


int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L)

• Troque a função inteira por isso:


int32_t LuaScriptInterface::luaDoCreatureSetNick(lua_State* L)
{
    //doCreatureSetNick(cid, nick)
    ScriptEnviroment* env = getEnv();
    std::string nick = popString(L);
    Creature* creature = env->getCreatureByUID(popNumber(L));
    if (creature) {    
        SpectatorVec list;
        g_game.getSpectators(list, creature->getPosition());  
        Player* player = NULL;
        creature->Nick = nick;
        for (SpectatorVec::const_iterator it = list.begin(); it != list.end(); ++it) {
           if (player = (*it)->getPlayer()) {
               player->sendCreatureNick(creature);
           }
        }
        lua_pushboolean(L, true);
    } else {
        lua_pushboolean(L, false);
    }
    return 1;
}

Download

MediaFire [30.77mb] - usem o client do PokeZR original mesmo disponível aqui.

 

Créditos ao @Kydrai pela correção na função doCreatureSetNick.

Estou com um erro no client 

Prints abaixo

image.thumb.png.59ef21a3691df4eebf168fc78c9b52bc.pngimage.thumb.png.ce0ee7c9d285d78ce907df26d0dddcc3.png 

Sobre o client bugado acho que sei o problema, seu amigo quando arrumou o level System tava usando um cliente com source e ele compilou por esse motivo fica desse jeito(se for possível veja se ele pode contribuir com o cliente que estava usando na época) o erro pode ser por outro motivo mas que eu saiba só consigo lembrar esse

Link to post
Share on other sites
1 hora atrás, Marcos VMA disse:

Estou com um erro no client 

Prints abaixo

image.thumb.png.59ef21a3691df4eebf168fc78c9b52bc.pngimage.thumb.png.ce0ee7c9d285d78ce907df26d0dddcc3.png 

Sobre o client bugado acho que sei o problema, seu amigo quando arrumou o level System tava usando um cliente com source e ele compilou por esse motivo fica desse jeito(se for possível veja se ele pode contribuir com o cliente que estava usando na época) o erro pode ser por outro motivo mas que eu saiba só consigo lembrar esse

oq deu para perceber esse cliente está com tela Estendida

Edited by Poke X Ice
Link to post
Share on other sites
1 hora atrás, Marcos VMA disse:

Estou com um erro no client 

Prints abaixo

image.thumb.png.59ef21a3691df4eebf168fc78c9b52bc.pngimage.thumb.png.ce0ee7c9d285d78ce907df26d0dddcc3.png 

Sobre o client bugado acho que sei o problema, seu amigo quando arrumou o level System tava usando um cliente com source e ele compilou por esse motivo fica desse jeito(se for possível veja se ele pode contribuir com o cliente que estava usando na época) o erro pode ser por outro motivo mas que eu saiba só consigo lembrar esse

Coloca esse TFS na pasta do seu sv e substitui o otclient.exe e dlls
https://www.mediafire.com/file/44ufql7somz5fnb/PokeZR+++OTC+exe.rar/file
https://www.virustotal.com/gui/file-analysis/NzNhOWM2NTZlNjBhOWU3NDEzMDNiZTU1ZTQwZWZkYzc6MTU5NjkzMzUyNQ==/detection

Ai é só apertar CTRL (Ponto) no jogo e controlar com CTRL + e CTRL -, se não der certo é pq apagaram os hotkeys do Gameinterface, ai é só colocar la denovo

Edited by brazvct
Link to post
Share on other sites
1 hora atrás, Marcos VMA disse:

Sobre o client bugado acho que sei o problema, seu amigo quando arrumou o level System tava usando um cliente com source e ele compilou por esse motivo fica desse jeito(se for possível veja se ele pode contribuir com o cliente que estava usando na época) o erro pode ser por outro motivo mas que eu saiba só consigo lembrar esse

Que amigo? Eu que fiz as alterações o.O

E sobre o client, não lembrava de ter colocado tela estendida, mas é só voltar os valores em map.h para os valores originais do tibia, salvo engano ficaria assim:

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;

 

Edited by lSainty
Link to post
Share on other sites
56 minutos atrás, lSainty disse:

Que amigo? Eu que fiz as alterações o.O

E sobre o client, não lembrava de ter colocado tela estendida, mas é só voltar os valores em map.h para os valores originais do tibia, salvo engano ficaria assim:


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;

 

tava 15/15 ai eu deixei 20/20 e mandei o meu OTC junto

Link to post
Share on other sites
15 horas atrás, kamus9629 disse:

@lSainty

e agora oque eu fasso nao apareceu levle sistem n

image.png.e5eb8ca416cf45b033e129e8704d9153.png

 

image.png.6ad2fdf9ba02410033fa6de112baa89f.png

Tenho certeza que esse servidor é o Zring, o outro que eu postei, que é diferente do ZR que se encontra nesse tópico. O look do ZR por exemplo mostra os status do pokémon como pode ser visto em look.lua:

table.insert(str, "[Status]")    
table.insert(str, "\nOffense: "..math.floor(getItemAttribute(thing.uid, "offense")).." Defense: "..math.floor(getItemAttribute(thing.uid, "defense")).."\n")
table.insert(str, "Agility: "..math.floor(getItemAttribute(thing.uid, "speed")).." Sp. Attack: "..math.floor(getItemAttribute(thing.uid, "specialattack")).."\n")
table.insert(str, "Vitality: "..math.floor(getItemAttribute(thing.uid, "vitality")).."")

 

Link to post
Share on other sites
10 horas atrás, Davy Returns disse:

Como coloco poke bar no level system dessa base,  os tutorias nao dao certo , e poderia me arrumar um poke info , nessa base n consegui por um n sei fazer

Nunca analisei o código dessas barras de pokemon do fórum, mas visto que a maioria dos servidores é baseado no PDA, provavelmente é só adaptar o sistema em cima dos erros que for dando. Se vai ficar bom já é outra história xd

Edited by lSainty
Link to post
Share on other sites
5 horas atrás, AsunaBr disse:

esse segue o mesmo que o, so que com level system, ele tem os mesmos sistemas?

o client ta dando isso nao aparece o login como resolver?

pq fica tudo escuro?

São servidores diferentes, você está utilizando o client do Zring

Edited by lSainty
Link to post
Share on other sites

postar um cliente atualizado seria bom to quebrano a cabeça pra logar

uppppp cliente compatível com essa base poke zr por favor alguém???

Old cliente da zr não tá pegando nessa sua source tem como corrigir?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By StardewMon
      Base Pokemasterx, estou editando para um novo projeto, espero que gostem!


    • By bruninho38
      Olá pessoal,

      Estou procurando a alguns dias e não consegui fazer da certo ate o momento, então acho que mais pessoas devem ter a mesma dificuldade.

      Atualmente alguns servidores de poketibia tem um autoloot que é ativado assim que o monstro morre, você não precisa ir lá click no corpo e nem ficar configurando qual item vc quer.

      Uso a base do PokemasterX, esse servidores já te um script que pega todos os loot's, porem precisa click no poke morto, se alguém conseguir fazer o scrip funcionar se click no corpo ou tiver outro script ajudaria muito.

      Obrigado!

      Script que uso hoje:
       
      function getContainerBackpack(containeruid) local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end end for i = 1, #containers do if #containers > 1 then table.remove(containers, containers[i+1]) end if #containers > 2 then table.remove(containers, containers[i+2]) end if #containers > 3 then table.remove(containers, containers[i+3]) end if #containers > 4 then table.remove(containers, containers[i+4]) end if #containers > 5 then table.remove(containers, containers[i+5]) end end for i = 1, #containers do for _, x in ipairs(getContainerBackpack(containers[i])) do table.insert(containers, x) end end return containers end function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items end function isCorpse(item) return string.find(getItemNameById(item.itemid), "fainted") or string.find(getItemNameById(item.itemid), "defeated ") end function getCorpsesPosition(position) local toret = { } -- table to return items position.stackpos = 1 while true do -- loop to catch the items and insert them in toret table local thing = getThingfromPos(position) if thing.itemid == 0 then -- thing doesn't exist, break the loop... break end if thing.uid > 0 and isContainer(thing.uid) and isCorpse(thing) then table.insert(toret,thing) end position.stackpos = position.stackpos + 1 -- get next item end return toret end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function doLoot(cid, corpse) if not isCollectAll(cid) then return true end if not isContainer(corpse.uid) then return false end local itemsToLootAllWindow = {} for _, loot in pairs(getContainerItems(corpse.uid)) do local slot = getPlayerSlotItem(cid, 3).uid local container = getContainerBackpack(slot) local item1 = getPlayerStorageValue(cid, 251461):explode("|") or 0 function configLoot() local itt = "".. tostring(getItemInfo(loot.itemid).clientId) .."|".. loot.type .."|" local ittt1, ittt2 = itt:explode("|")[1], itt:explode("|")[2] local itr = ittt1 .."-".. ittt2 .."-" table.insert(itemsToLootAllWindow, itr) doRemoveItem(loot.uid) doSendPlayerExtendedOpcode(cid, 69, table.concat(itemsToLootAllWindow)) end --// Sistema de Daily Itens \\-- if inDailyItens(cid) then if tonumber(item1[1]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[3]) - getPlayerItemCount(cid, item1[1])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[2]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[4]) - getPlayerItemCount(cid, item1[2])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[5]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[7]) - getPlayerItemCount(cid, item1[5])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end if tonumber(item1[6]) == loot.itemid then doPlayerSendTextMessage(cid, 20, "[Daily Itens]: Resta você coletar ["..(tonumber(item1[8]) - getPlayerItemCount(cid, item1[6])) - loot.type.."] "..getItemNameById(loot.itemid)..".") end end --// Sistema de Daily Itens \\-- if #container < 1 then doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end for i = 1, #container do if #container >= 1 then if getContainerSlotsFree(container[i]) >= 1 then doAddContainerItem(container[i], loot.itemid, loot.type) configLoot() break end else doPlayerAddItem(cid, loot.itemid, loot.type) configLoot() end end end end function checkLoot(cid, corpse, SemMensagem) if not isContainer(corpse.uid) then return false end local quemMatou = getItemAttribute(corpse.uid, "corpseowner") if quemMatou then local player = getCreatureByName(quemMatou) if isPlayer(player) then local isInParyWithPlayer = false if isInParty(cid) and isInParty(player) then isInParyWithPlayer = isPartyEquals(player, cid) end if getCreatureName(cid) ~= getCreatureName(player) and not isInParyWithPlayer then if not SemMensagem then doPlayerSendCancel(cid, "Você não pode abrir um loot que não é seu.") end return false end end end return true end function onUse(cid, item, frompos, item2, topos) if isWatchingTv(cid) then return true end if not isContainer(item.uid) then return true end if not isCollectAll(cid) then return false end local maxItem = 800 if isContainer(item.uid)then if (getPlayerTotalItem(cid) + #getAllItemsFromContainer(item)) > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end else if getPlayerTotalItem(cid) + 1 > maxItem then doPlayerSendCancel(cid, "Você não pode carregar mais itens pois já lotou a quantidade de slot's disponíveis") return false end end local openCorpse = #getContainerItems(item.uid) < 1 if checkLoot(cid, item, false) then doLoot(cid, item) end for _, corpse in pairs(getCorpsesPosition(getThingPosition(item.uid))) do if checkLoot(cid, corpse, false) then doLoot(cid, corpse) end end if openCorpse then return false end return true end  
    • By jenison06
      Alguem consegue adaptar sistema de contagem, o meu nao esta contando apenas no abra e msmo assim so conta 1 ball.
       
      Action ( Catch.lua)
       
      Lib (catch system.lua)
      Checatch (Talkaction)
      function onSay(cid, words, param, channel) if param == "" then return true end getBrokesIn(cid, param) return true end  
    • By KaboFlow
      Versão do Servidor: TFS - 0.3.4 Tipo de Script: actions Código: Ocupo um reviver com tempo de 10 minutos.
      para o nível 200+
    • By KaboFlow
      Como todos sabem existem milhares de servidores de poketibia para download aqui no fórum, mas nenhum esta 100%, quando eu falo 100% é dos sistemas principais e não das edições. Então resolvi pegar uma base PField OpenSource aqui do fórum mesmo e começar um projeto comunitário totalmente aberto, para tentarmos deixar a base 100% com os sistemas principais de um servidor de poketibia para quem quiser começar um projeto serio usar este server como base.
       Mas porque eu escolhi a base PField? Simples, por ela ser uma base mais antiga e mais limpa, sem todas as gambiarras, armadilhas e menos poluída. A minha meta é trabalharmos no server opensource,  criado do 0 tambem, e todos se ajudarem para quando ficar com os sistemas básicos 100% dai a galera começar a fazer suas edições
       
      ATENÇÃO: Não sou programador, sou meia boca em quase tudo e tenho esperança que com a ajuda de todos conseguiremos deixar a base perfeita para futuros projetos. Peço que não briguem aqui no tópico por causa de créditos, reps etc. Caso alguém tenha autoria em algo e não estiver nos créditos me avise que estarei adicionando. Não quero reputação, apenas quero fazer algo bom para a comunidade com a ajuda de vocês.
      Inicialmente estaremos corrigindo os bugs e adicionando os sistemas principais deixando a base mais atualizada, quem quiser pegar a base e já ir editando não fique perguntando aqui no tópico, porque como eu disse a prioridade inicial são os sistemas básicos.
       
       
      • Menu:
                       ├ Informações;
        ├ Prints;
      ├ Bugs;
                 ├ Download;
             └ Créditos.
       

       
       
       
       

      • Prints •
       
      • Informações Basicas •
       


       
       
       
      • Créditos •
      •ADM Kabo
      •Kevick
      •Aberos
      •Avronex
      •Lordbaxx
      •CipSoft
      •PxG
      •Nintendo
      Se faltar algum me avisem.
       
      Se tiver algo errado no tópico me avisem, não tenho muita experiencia em posts.