-
Total de itens
702 -
Registro em
-
Última visita
-
Dias Ganhos
5
Tudo que BananaFight postou
-
Algum ninja da matemática pode me ajudar com um calculo ?
um tópico no fórum postou BananaFight Papo Cabeça
Tenho que desenvolver uma conta em que eu pegue 2 números, E com esses 2 números eu consiga calcular a porcentagem de que o 1° numero esta em relação ao 2°. Resposta : 100 * 1° / 2° Valeu ai pessoal até a próxima xD -
Tentei, mais não consegui, você poderia editar esse script deixando ele em .lua ai fazia de uma forma como se fosse uma lib, e puxaria os valores de dentro dessa lib.
-
Pode mandar esse xml, para que eu possa testar umas coisas antes ?
-
Acabei de testar e funcionou 100% Você deixou no diretório correto ? otclient-master\data\images\game\minimap E no nome da imagem você adicionou o flag antes ?, Deixando flagNomeDaImagem.png
-
Acabei de testar e nem um desses erros foram causados pelos arquivos referentes a esse tópico. E para quem ainda não conseguiu adicionar um novo spells, Um mini tutorial : SpellBar.Lua Ao final de elseif numeskill == '4' then Spell = 'progressSpellSpecial' GrpSpell = 'groupIconSpecial' TimeSpell = 1200 spellText = 'Exori Gran' level = 8 mana = 20 Você vai adicionar um novo elseif numeskill == '5' then Spell = 'progressSpellSpecial2' GrpSpell = 'groupIconSpecial2' TimeSpell = 1200 spellText = 'Novo Spell' level = 1 mana = 0 Agora na parte SpellBar.otui você vai no final e adiciona 2 novos itens, Como no Exemplo SpellGroupIcon id: groupIconSpecial2 image-source: moves_icon/Special.png anchors.top: parent.top anchors.left: groupIconSpecial.right margin-left: 5 SpellProgressSpell id: progressSpellSpecial2 anchors.fill: groupIconSpecial2 !tooltip: tr('Special2') @onClick: SpellSkill('5') E pronto acabou...
-
Nem um desses erros foram causados pelos arquivos referentes a esse tópico.
-
Não querendo ser chato, mais mesmo pra um baiak esta bem fraco de mapping, acho que você poderia usar itens mais coerentes com apenas 1 tema, e não juntar vários em 1 só causando essa poluição visual.
-
[ShowOFF] Biohazard Online Sprites.
tópico respondeu ao BrenoNeto de BananaFight em Exposições (Show Off)
Achei um pouco errado a pintura dos monstros, mais de resto ta legal. tirando os itens e o 1° e 2° monstros. -
[Creaturescripts]Function onSpawn(cid)
tópico respondeu ao PostadorHunter de BananaFight em Linguagens de Programação
Acabei de perceber quando tava tentando instalar esse código nas minhas source que ele tem um erro, Vá aonde você pegou ele e confira o tutorial de instalação. -
Vou mover ele e fechar pois acho que ja foi sanada a duvida, quais quer outra duvida relacionada a este tópico me envia pm que re-abrirei ele.
-
Não quis te desmereçer como programador, só que como você mesmo falou, não pode ser comparado a um programador em Python, pois sabe pouco, Você poderia tentar colocar junto com o data editor um item editor para que com 1 ferramenta ja consiga editar/criar novos itens e monstros.
-
Avatar - Assinatura - Banner - Sign - Background -
pergunta respondeu ao Alexclusive de BananaFight em Dúvidas e Pedidos
Perfeito :* Valeu mesmo. -
Avatar - Assinatura - Banner - Sign - Background -
pergunta respondeu ao Alexclusive de BananaFight em Dúvidas e Pedidos
Alex, eu queria algo nesse estilo, mais sem ser esse é claro, e com meu nome "Banana Fight" escrito. -
Porque os sistemas básicos são literalmente os mesmos.... E no DigiWo só tem eu e Max fazendo os sistemas... Ele manja um pouco de C++, mais também não é um Deus da programação, mais com o que ele sabe conseguimos fazer sistemas bons. E essa má fama que poketibia tem hoje é criada por vocês mesmo, começa com scripts em lua e aos poucos... Quando não tiver mais nada pra fazer parte pro C++, E se não tem conteúdo em c++ no xtibia, pode ter em outros fóruns então não se prenda no xtibia achando que se não tem aqui não vai ter em lugar algum.
-
Alex, eu posso pedir uma nova foto pro meu avatar do xtibia estilo a primeira *-* ?
-
Que eu saiba cristofer é "programador" em python. ~Stylo Falar é facil, e fazer é mais ainda, na equipe do digimon online temos sistemas mais avançados que seu pda e em bem menos tempo. Amigo C++ tem gente para ajudar sim, como Dalvo e kydrai que ja me ajudaram bastante com algumas duvidas. ~Cristofer E alem disso, acredito eu ele recebeu dinheiro pra isso, logo ele foi contratado, então não foi o PXG que fez o client. Cristofer quando você vai no mercado e compra 1 litro de leite, esse mesmo litro de leite é seu ou do fabricante ?
-
O que eu venho dizendo desde o começo pro pessoal ?, Larga esse PDA e vai fazer o seu poketibia.
-
^, Desde quando o EduBart fez o client deles.
-
[Encerrado] Pedido Ot Item Editor versão 9.81
tópico respondeu ao daniursolinoo de BananaFight em Tópicos Sem Resposta
1° - Melhore o português. 2° - Preste mais atenção na área em que esta postando. 3° - Use o tópico onde você baixou o programa para reportar erros ou tirar duvidas. -
Problema com conexão...
-
[duvida] Fonte Tachada (como coloco) // tamanho de fonte
pergunta respondeu ao drakylucas de BananaFight em Clients
Você pode adicionar novas fontes no otclient, dentro da pasta tools tem um mod pra um programa que te ajuda nisso, só que esqueci o nome do programa. -
Creio que não seja possível, pois o OtClient não tem acesso ao Otb do server.
-
Serve para comunicar servidor com client, Com isso é possível criar muitos sistemas, como de andar e soltar som etc.
-
Adaptação pra source 8.54+ LEMBRE-SE, ISSO É NA SOURCE DO SERVIDOR Vamos ao código. protocolgame.h Embaixo de void AddShopItem(NetworkMessage_ptr msg, const ShopInfo item); Adicione void parseExtendedOpcode(NetworkMessage& msg);void sendExtendedOpcode(uint8_t opcode, const std::string& buffer); protocolgame.cpp Embaixo de uint32_t key[4] = {msg.GetU32(), msg.GetU32(), msg.GetU32(), msg.GetU32()};enableXTEAEncryption();setXTEAKey(key); Adicione // notifies to otclient that this server can receive extended game protocol opcodesif(operatingSystem >= CLIENTOS_OTCLIENT_LINUX)sendExtendedOpcode(0x00, std::string()); Embaixo de void ProtocolGame::AddShopItem(NetworkMessage_ptr msg, const ShopInfo item){const ItemType& it = Item::items[item.itemId];msg->AddU16(it.clientId);if(it.isSplash() || it.isFluidContainer())msg->AddByte(fluidMap[item.subType % 8]);else if(it.stackable || it.charges)msg->AddByte(item.subType);elsemsg->AddByte(0x01);msg->AddString(item.itemName);msg->AddU32(uint32_t(it.weight * 100));msg->AddU32(item.buyPrice);msg->AddU32(item.sellPrice);} Adicione void ProtocolGame::parseExtendedOpcode(NetworkMessage& msg){uint8_t opcode = msg.GetByte();std::string buffer = msg.GetString();// process additional opcodes via lua script eventaddGameTask(&Game::parsePlayerExtendedOpcode, player->getID(), opcode, buffer);}void ProtocolGame::sendExtendedOpcode(uint8_t opcode, const std::string& buffer){// extended opcodes can only be send to players using otclient, cipsoft's tibia can't understand themNetworkMessage_ptr msg = getOutputBuffer();if(msg){TRACK_MESSAGE(msg);msg->AddByte(0x32);msg->AddByte(opcode);msg->AddString(buffer);}} Embaixo de case 0x1E: // keep alive / ping responseparseReceivePing(msg);break; Adicione case 0x32: // otclient extended opcodeparseExtendedOpcode(msg);break; enums.h Embaixo de enum GuildLevel_t{GUILDLEVEL_NONE = 0,GUILDLEVEL_MEMBER,GUILDLEVEL_VICE,GUILDLEVEL_LEADER}; Substitua o OperatingSystem por este enum OperatingSystem_t{CLIENTOS_LINUX = 0x01,CLIENTOS_WINDOWS = 0x02,CLIENTOS_OTCLIENT_LINUX = 0x0A,CLIENTOS_OTCLIENT_WINDOWS = 0x0B,CLIENTOS_OTCLIENT_MAC = 0x0C,};/ player.h Embaixo de void sendCreatureShield(const Creature* creature) Adicione void sendExtendedOpcode(uint8_t opcode, const std::string& buffer){if(client) client->sendExtendedOpcode(opcode, buffer);} luascript.cpp Embaixo de void LuaScriptInterface::registerFunctions(){ Adicione //doSendPlayerExtendedOpcode(cid, opcode, buffer)lua_register(m_luaState, "doSendPlayerExtendedOpcode", LuaScriptInterface::luaDoSendPlayerExtendedOpcode); Embaixo de SHIFT_OPERATOR(int32_t, LeftShift, <<)SHIFT_OPERATOR(int32_t, RightShift, >>)SHIFT_OPERATOR(uint32_t, ULeftShift, <<)SHIFT_OPERATOR(uint32_t, URightShift, >>)#undef SHIFT_OPERATOR Adicione int32_t LuaScriptInterface::luaDoSendPlayerExtendedOpcode(lua_State* L){//doSendPlayerExtendedOpcode(cid, opcode, buffer)std::string buffer = popString(L);int opcode = popNumber(L);ScriptEnviroment* env = getEnv();if(Player* player = env->getPlayerByUID(popNumber(L))) {player->sendExtendedOpcode(opcode, buffer);lua_pushboolean(L, true);}lua_pushboolean(L, false);return 1;} luascript.h Embaixo de virtual void registerFunctions(); Adicione static int32_t luaDoSendPlayerExtendedOpcode(lua_State* L); creatureevent.h . Substitua CREATURE_EVENT_PREPAREDEATH Por isso CREATURE_EVENT_PREPAREDEATH,CREATURE_EVENT_EXTENDED_OPCODE // otclient additional network opcodes Embaixo de uint32_t executePrepareDeath(Creature* creature, DeathList deathList); Adicione uint32_t executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer); creatureevent.cpp Embaixo de else if(tmpStr == "death")m_type = CREATURE_EVENT_DEATH; Adicione else if(tmpStr == "extendedopcode")m_type = CREATURE_EVENT_EXTENDED_OPCODE; Embaixo de case CREATURE_EVENT_DEATH:return "onDeath"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "onExtendedOpcode"; Embaixo de case CREATURE_EVENT_DEATH:return "cid, corpse, deathList"; Adicione case CREATURE_EVENT_EXTENDED_OPCODE:return "cid, opcode, buffer"; Embaixo de std::cout << "[Error - CreatureEvent::executeFollow] Call stack overflow." << std::endl;return 0;}} Adicione uint32_t CreatureEvent::executeExtendedOpcode(Creature* creature, uint8_t opcode, const std::string& buffer){//onExtendedOpcode(cid, opcode, buffer)if(m_interface->reserveEnv()){ScriptEnviroment* env = m_interface->getEnv();if(m_scripted == EVENT_SCRIPT_BUFFER){env->setRealPos(creature->getPosition());std::stringstream scriptstream;scriptstream << "local cid = " << env->addThing(creature) << std::endl;scriptstream << "local opcode = " << (int)opcode << std::endl;scriptstream << "local buffer = " << buffer.c_str() << std::endl;scriptstream << m_scriptData;bool result = true;if(m_interface->loadBuffer(scriptstream.str())){lua_State* L = m_interface->getState();result = m_interface->getGlobalBool(L, "_result", true);}m_interface->releaseEnv();return result;}else{#ifdef __DEBUG_LUASCRIPTS__char desc[35];sprintf(desc, "%s", player->getName().c_str());env->setEvent(desc);#endifenv->setScriptId(m_scriptId, m_interface);env->setRealPos(creature->getPosition());lua_State* L = m_interface->getState();m_interface->pushFunction(m_scriptId);lua_pushnumber(L, env->addThing(creature));lua_pushnumber(L, opcode);lua_pushlstring(L, buffer.c_str(), buffer.length());bool result = m_interface->callFunction(3);m_interface->releaseEnv();return result;}}else{std::cout << "[Error - CreatureEvent::executeRemoved] Call stack overflow." << std::endl;return 0;}} game.h Embaixo de int32_t getLightHour() {return lightHour;}void startDecay(Item* item); Adicione void parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer); game.cpp Embaixo de player->sendTextMessage(MSG_INFO_DESCR, buffer);} Adicione void Game::parsePlayerExtendedOpcode(uint32_t playerId, uint8_t opcode, const std::string& buffer){Player* player = getPlayerByID(playerId);if(!player || player->isRemoved())return;CreatureEventList extendedOpcodeEvents = player->getCreatureEvents(CREATURE_EVENT_EXTENDED_OPCODE);for(CreatureEventList::iterator it = extendedOpcodeEvents.begin(); it != extendedOpcodeEvents.end(); ++it)(*it)->executeExtendedOpcode(player, opcode, buffer);} /creaturescripts/creaturescrips.xml <event type="extendedopcode" name="ExtendedOpcode" event="script" value="extendedopcode.lua"/> /creaturescripts/extendedopcode.lua OPCODE_LANGUAGE = 1function onExtendedOpcode(cid, opcode, buffer)if opcode == OPCODE_LANGUAGE then-- otclient languageif buffer == 'en' or buffer == 'pt' then-- example, setting player language, because otclient is multi-language...--doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer)endelse-- other opcodes can be ignored, and the server will just work fine...endend Créditos : MaXwEllDeN 100% por adaptar o código
-
Tipo, não sei como o pessoal fez mais imagino que sejam 2 otui, então vc faz uma verificação igual ao do togge e fazer um deletar e criar o outro.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.