JG6 44 Postado Dezembro 13, 2019 Share Postado Dezembro 13, 2019 4 horas atrás, AbuelaViolenta disse: Por que eu recebo esse erro? Estou em um PDA Level System v2.9 Porque me sale este error? Estoy en un PDA Level System v2.9 [13/12/2019 04:48:34] [Error - Action Interface] [13/12/2019 04:48:34] data/actions/scripts/goback.lua:onUse [13/12/2019 04:48:34] Description: [13/12/2019 04:48:34] data/lib/some functions.lua:1886: attempt to call global 'DoSendPlayerExtendedOpcode' (a nil value) [13/12/2019 04:48:34] stack traceback: [13/12/2019 04:48:34] data/lib/some functions.lua:1886: in function 'doOTCSendPokemonHealth' [13/12/2019 04:48:34] data/actions/scripts/goback.lua:208: in function <data/actions/scripts/goback.lua:10> Tu servidor no tienes opcode Link para o comentário Compartilhar em outros sites More sharing options...
AbuelaViolenta 0 Postado Dezembro 14, 2019 Share Postado Dezembro 14, 2019 ¿Cómo puedo agregar opcode al servidor? es un pda con sistema de nivel v2.9 Como posso adicionar o opcode ao servidor? é um pda com sistema de nível v2.9 Link para o comentário Compartilhar em outros sites More sharing options...
Poke X Ice 52 Postado Dezembro 14, 2019 Autor Share Postado Dezembro 14, 2019 Em 13/12/2019 em 04:55, AbuelaViolenta disse: Por que eu recebo esse erro? Estou em um PDA Level System v2.9 Porque me sale este error? Estoy en un PDA Level System v2.9 [13/12/2019 04:48:34] [Error - Action Interface] [13/12/2019 04:48:34] data/actions/scripts/goback.lua:onUse [13/12/2019 04:48:34] Description: [13/12/2019 04:48:34] data/lib/some functions.lua:1886: attempt to call global 'DoSendPlayerExtendedOpcode' (a nil value) [13/12/2019 04:48:34] stack traceback: [13/12/2019 04:48:34] data/lib/some functions.lua:1886: in function 'doOTCSendPokemonHealth' [13/12/2019 04:48:34] data/actions/scripts/goback.lua:208: in function <data/actions/scripts/goback.lua:10> voce não tem opcode ativado na sua source Link para o comentário Compartilhar em outros sites More sharing options...
AbuelaViolenta 0 Postado Dezembro 15, 2019 Share Postado Dezembro 15, 2019 23 horas atrás, Poke X Ice disse: voce não tem opcode ativado na sua source e como eu poderia ativar o código na sua source? y como podria activar el codigo en el source? Link para o comentário Compartilhar em outros sites More sharing options...
Ayron5 40 Postado Dezembro 15, 2019 Share Postado Dezembro 15, 2019 9 minutos atrás, AbuelaViolenta disse: e como eu poderia ativar o código na sua source? y como podria activar el codigo en el source? Veja. opcodes 8.54+ Link para o comentário Compartilhar em outros sites More sharing options...
AbuelaViolenta 0 Postado Dezembro 19, 2019 Share Postado Dezembro 19, 2019 Em 15/12/2019 em 18:25, Ayron5 disse: Veja. opcodes 8.54+ Como posso compilar o source? Eu os abro com o caderno, mas ele não me deixa ficar com ele como puedo compilar los source? los abro con el bloc de notas pero no me deja guardarlo Link para o comentário Compartilhar em outros sites More sharing options...
Dilooow 6 Postado Dezembro 20, 2019 Share Postado Dezembro 20, 2019 Em 22/10/2019 em 16:01, Poke X Ice disse: Boa tarde, muito gente estava pedindo como adicionar essa pokemonbar ao jogo. então decidi postar testado na pokemon dash bolz 2.0 futura atualização: Mostrar conteúdo oculto depois vou atualizar esse tópico, poderá revive seu pokemon pela pokemonbar já tenho depois vou publicar. foto: Mostrar conteúdo oculto vamos começar? vá até servidor/data/action/goback.lua Ocultar conteúdo embaixo de: Ocultar conteúdo local effect = pokeballs[btype].effect if not effect then effect = 21 end adicione isso: Ocultar conteúdo if not getItemAttribute(item.uid, "tadport") and ballName then doItemSetAttribute(item.uid, "tadport", fotos[ballName]) end embaixo de: Mostrar conteúdo oculto doCreatureSay(cid, mgo, TALKTYPE_MONSTER) adicione isso: Mostrar conteúdo oculto if getItemAttribute(item.uid, "ballorder") then doPlayerSendCancel(cid, "KGT,"..getItemAttribute(item.uid, "ballorder").."|".."0") doPlayerSendCancel(cid, "") end embaixo de: Mostrar conteúdo oculto if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end adicione isso: Mostrar conteúdo oculto local owner = getCreatureMaster(cid) doOTCSendPokemonHealth(owner) agora em servidor/data/lib/ crie um arquivo chamado liferBar.lua Mostrar conteúdo oculto e coloque isso dentro: Mostrar conteúdo oculto function onPokeBarLife(cid) if isSummon(cid) and isPlayer(getCreatureMaster(cid)) then local itemBall = getPlayerSlotItem(getCreatureMaster(cid), CONST_SLOT_FEET) local hp = math.ceil((getCreatureHealth(cid) * 100) / getCreatureMaxHealth(cid)) local orde = getItemAttribute(itemBall.uid, "ballorder") if orde then doPlayerSendCancel(getCreatureMaster(cid), "pGS,"..hp.."|"..orde.."|"..getPokeName(cid)) doPlayerSendCancel(getCreatureMaster(cid), "") end end end agora em servido/data/lib/somefunctions.lua Mostrar conteúdo oculto procure por: Mostrar conteúdo oculto doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".") em baixo adicione: Mostrar conteúdo oculto doItemSetAttribute(item, "tadport", fotos[pokemon]) agora vá até ultima linha de dois espaços e adicione isso: Mostrar conteúdo oculto postado na pastebin pq aqui fica bugado: https://pastebin.com/qTd3dEzs agora vá em servidor/data/lib/catch system.lua Mostrar conteúdo oculto embaixo de Mostrar conteúdo oculto doItemSetAttribute(item, "description", description) adicione embaixo isso: Mostrar conteúdo oculto doItemSetAttribute(item, "tadport", fotos[poke]) agora vá em servidor/data/lib/cooldown bar.lua Mostrar conteúdo oculto troque por esse:https://pastebin.com/MLZsy8AK agora vá em servidor/data/lib/level system.lua Mostrar conteúdo oculto procure por: Mostrar conteúdo oculto doSendMagicEffect(getThingPos(item2.uid), 18) embaixo adicione isso: Mostrar conteúdo oculto doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[theevo]) doItemSetAttribute(pokeball.uid, "tadport", fotos[theevo]) doUpdatePokemonsBar(cid) agora vá em servidor/data/creaturescript/script/exp2.0.lua Mostrar conteúdo oculto embaixo de : Mostrar conteúdo oculto if isSummon(cid) and valor ~= 0 then adicione isso Mostrar conteúdo oculto local owner = getCreatureMaster(cid) doOTCSendPokemonHealth(owner) doUpdatePokeInfo(owner) onPokeBarLife(cid) ficando assim: Mostrar conteúdo oculto if isSummon(cid) and valor ~= 0 then local owner = getCreatureMaster(cid) doOTCSendPokemonHealth(owner) doUpdatePokeInfo(owner) onPokeBarLife(cid) agora vá em servidor/data/creaturescript/script/goback.lua Mostrar conteúdo oculto dentro da função: Mostrar conteúdo oculto if useOTClient then end deixe ela assim: Mostrar conteúdo oculto if useOTClient then doPlayerSendCancel(owner, '12//,hide') --alterado v1.7 doPlayerSendCancel(owner, "pGS,".."0".."|"..getItemAttribute(thisball.uid, "ballorder").."|"..getPokeName(cid)) doPlayerSendCancel(owner, "") end agora vá em servidor/data/creaturescript/script/login.lua Mostrar conteúdo oculto procure por: Mostrar conteúdo oculto function onLogin(cid) adicione embaixo Mostrar conteúdo oculto doUpdatePokemonsBar(cid) procure por: Mostrar conteúdo oculto registerCreatureEvent(cid, "task_count") adicione embaixo: Mostrar conteúdo oculto doUpdatePokemonsBar(cid) agora vá em servidor/data/talkactions/script Mostrar conteúdo oculto crie um arquivo chamado: poke.lua e adicione isso dentro Mostrar conteúdo oculto local EFFECTS = { ["Perfect Zygarde Full"] = 45, ["Mystic Mewtwo"] = 136, ["Groudon"] = 34, ["Shiny Groudon"] = 44, ["Arch Heatran"] = 105, ["Obscure Arceus"] = 55, ["Zygarde M1"] = 45, ["Zygarde M2"] = 45, ["Zygarde M3"] = 105, ["Tornadus"] = 152, ["Landorus"] = 152, ["Thundurus"] = 152, ["Majestic Lugia M1"] = 136, ["Majestic Lugia M2"] = 136, ["Majestic Lugia M3"] = 136, ["Mew"] = 136, ["Mewtwo"] = 136, ["Shiny Mew"] = 136, ["Shiny Mewtwo"] = 136, ["Giratina Star"] = 55, ["Giratina Star M1"] = 55, ["Giratina Star M2"] = 55, ["Giratina Star M3"] = 55, ["Raikou"] = 360, ["Kyogre"] = 17, ["Shiny Kyogre"] = 17, ["Rayquaza"] = 17, ["Suicune"] = 17, ["Ditto"] = 17, ["Phione"] = 17, ["Zoroak"] = 55, ["Shiny Zoroak"] = 55, ["Zygard"] = 55, ["Regigigas"] = 35, ["Shiny Regigigas"] = 26, ["Genesect"] = 26, ["Zekrom"] = 26, ["Shiny Zekrom"] = 26, ["Black Zygarde"] = 55, ["Black Alpha Zekrom"] = 55, ["Black Groudon"] = 55, ["Deoxys Lunar"] = 55, } local cd = 1 local function volta(cid, init) exhausted = 10 storage = 31332 if(getPlayerStorageValue(cid, storage) > os.time() and getPlayerStorageValue(cid, storage) < 100+os.time()) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You must wait another " .. getPlayerStorageValue(cid, storage) - os.time() .. ' second' .. ((getPlayerStorageValue(cid, storage) - os.time()) == 1 and "" or "s") .. " to use new pokemon.") return true end -- if getPlayerStorageValue(cid, 69891) >= 1 then -- doPlayerSendCancel(cid, "Voce nao pode chamar seu pokemon enquanto usa seu pet.") -- return false --alterado v1.5 -- end if getPlayerSlotItem(cid, CONST_SLOT_FEET).uid > 0 then local item = getPlayerSlotItem(cid, CONST_SLOT_FEET) if getPlayerStorageValue(cid, 912351) > os.time () then doPlayerSendCancel(cid, "Espere "..getPlayerStorageValue(cid, 912351) - os.time ().." segundo(s) para usar novamente") return true end if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true end if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true end local ballName = getItemAttribute(item.uid, "poke") local btype = getPokeballType(item.itemid) local usando = pokeballs[btype].use local effect = pokeballs[btype].effect if not effect then effect = 21 end if not getItemAttribute(item.uid, "tadport") and ballName then doItemSetAttribute(item.uid, "tadport", fotos[ballName]) end unLock(item.uid) --alterado v1.8 if item.itemid == usando then -- if getPlayerStorageValue(cid, 990) == 1 then -- GYM -- doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") -- return true -- end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end doReturnPokemon(cid, z, item, effect) end if init then if item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end local thishp = getItemAttribute(item.uid, "hp") if thishp <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local pokemon = getItemAttribute(item.uid, "poke") if not pokes[pokemon] then return true end --------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- ---if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited -- local left = getItemAttribute(item.uid, "transLeft") -- local name = getItemAttribute(item.uid, "transName") -- if left and left > 0 then -- setPlayerStorageValue(pk, 1010, name) -- doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) -- addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn")) -- doItemSetAttribute(item.uid, "transBegin", os.clock()) -- else -- setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited -- end -- end if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, true, true) -- doCureWithY(getCreatureMaster(pk), pk) doTransformItem(item.uid, item.itemid+1) local pokename = getPokeName(pk) --alterado v1.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1) if getItemAttribute(item.uid, "ballorder") then doPlayerSendCancel(cid, "KGT,"..getItemAttribute(item.uid, "ballorder").."|".."0") end setPlayerStorageValue(cid, 912351, os.time () + cd) doSendMagicEffect(getCreaturePosition(pk), effect) local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb, "addon") if not look then doSetItemAttribute(pb, "addon", 0) end if look and look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) end if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v1.7 end local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb,"addon") if not look then doSetItemAttribute(pb,"addon",0) end if look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) end end end end if useKpdoDlls then doUpdateMoves(cid) end return true end function onSay(cid, words, param, channel) if getPlayerSlotItem(cid, CONST_SLOT_FEET).uid > 0 then if getItemAttribute(getPlayerSlotItem(cid, CONST_SLOT_FEET).uid, "ballorder") == tonumber(param) then volta(cid, true) return true else volta(cid, false) end end doMoveBar(cid, tonumber(param)) volta(cid, true) return true end agora em servidor/data/talkactions.xml Mostrar conteúdo oculto adicione essa tag <talkaction words="!@pokebar@" script="poke.lua"/> agora vamos para source do jogo: Mostrar conteúdo oculto vamos em game.cpp embaixo de: Mostrar conteúdo oculto void Game::showHotkeyUseMessage(Player* player, Item* item) { int32_t subType = -1; if(item->hasSubType() && !item->hasCharges()) subType = item->getSubType(); const ItemType& it = Item::items[item->getID()]; uint32_t count = player->__getItemTypeCount(item->getID(), subType, false); char buffer[40 + it.name.size()]; if(count == 1) sprintf(buffer, "Using the last %s...", it.name.c_str()); else sprintf(buffer, "Using one of %d %s...", count, it.pluralName.c_str()); player->sendTextMessage(MSG_INFO_DESCR, buffer); } adicione isso: Mostrar conteúdo oculto bool Game::doMoveBar(uint32_t playerId, uint8_t opId) { Player* player = getPlayerByID(playerId); Container* container; for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { if(Item* item = player->getInventoryItem((slots_t)i)) { boost::any value = (item)->getAttribute("poke"); boost::any border = (item)->getAttribute("ballorder"); if(value.type() == typeid(std::string) && border.type() == typeid(int32_t)) { if(boost::any_cast<int32_t>(border) == opId && i == ? return false; if(boost::any_cast<int32_t>(border) == opId && i == 10) { Thing* bthing = player->__getThing(10); Thing* ballPoke = player->__getThing(8); if(ballPoke && !ballPoke->getItem()->isNotMoveable()) { if(bthing) { boost::any bbpb1 = ballPoke->getItem()->getAttribute("poke"); boost::any bbpb2 = bthing->getItem()->getAttribute("poke"); boost::any borderS = bthing->getItem()->getAttribute("ballorder"); if (!bbpb1.empty() && !bbpb2.empty() && borderS.type() == typeid(int32_t)) { int32_t pouitS = boost::any_cast<int32_t>(borderS); if(opId == pouitS) { Cylinder* acylinder = ballPoke->getItem()->getParent(); Cylinder* bcylinder = bthing->getItem()->getParent(); int32_t aitemIndex = acylinder->__getIndexOfThing(ballPoke->getItem()); int32_t bitemIndex = bcylinder->__getIndexOfThing(bthing->getItem()); internalRemoveItem(NULL, ballPoke->getItem()); internalRemoveItem(NULL, bthing->getItem()); Item* aa = Item::CreateItem(ballPoke->getItem()->getID(), ballPoke->getItem()->getItemCount()); aa->copyAttributes(ballPoke->getItem()); internalAddItem(NULL, acylinder, aa, INDEX_WHEREEVER, FLAG_NOLIMIT); int16_t stcpos; Position posa; Position posb; posb.x = 65535; posb.y = 10; posb.z = 0; internalGetPosition(aa, posa, stcpos); playerMoveThing(playerId, posa, aa->getClientID(), 0, posb, 1); Item* bb = Item::CreateItem(bthing->getItem()->getID(), bthing->getItem()->getItemCount()); bb->copyAttributes(bthing->getItem()); internalAddItem(NULL, acylinder, bb, INDEX_WHEREEVER, FLAG_NOLIMIT); internalGetPosition(bb, posa, stcpos); posb.y = 8; playerMoveThing(playerId, posa, bb->getClientID(), 0, posb, 1); return true; } } } }else { if(bthing) { boost::any bbpb1 = bthing->getItem()->getAttribute("poke"); boost::any borderS = bthing->getItem()->getAttribute("ballorder"); if (!bbpb1.empty() && borderS.type() == typeid(int32_t)) { int32_t pouitS = boost::any_cast<int32_t>(borderS); if(opId == pouitS) { int16_t stcpos; Position posa; Position posb; posb.x = 65535; posb.y = 8; posb.z = 0; internalGetPosition(bthing->getItem(), posa, stcpos); playerMoveThing(playerId, posa, bthing->getItem()->getClientID(), 0, posb, 1); return true; } } } } } } /////////////////////////////////////////////// if(item->getContainer()) { container = item->getContainer(); for(ContainerIterator sb = container->begin(), end = container->end(); sb != end; ++sb) { Item* ballSLot = (*sb)->getItem(); if(ballSLot); { boost::any value = ballSLot->getAttribute("poke"); boost::any border = ballSLot->getAttribute("ballorder"); if(value.type() == typeid(std::string) && border.type() == typeid(int32_t)) { int32_t pouit = boost::any_cast<int32_t>(border); if(opId == pouit) { Thing* ballPoke = player->__getThing(8); if(ballPoke && !ballPoke->getItem()->isNotMoveable()) { Cylinder* ballPokeCylinder = ballPoke->getItem()->getParent(); //slot8 Cylinder* ballOrderCylinder = ballSLot->getParent(); //slotbag int32_t ballPokeIndex = ballPokeCylinder->__getIndexOfThing(ballPoke->getItem()); //slot8 int32_t ballOrderIndex = ballOrderCylinder->__getIndexOfThing(ballSLot); //slotbag internalRemoveItem(NULL, ballPoke->getItem()); //slot8 internalRemoveItem(NULL, ballSLot); //slotbag Item* CreateBallSLot = Item::CreateItem(ballSLot->getID(), ballSLot->getItemCount()); //slotbag CreateBallSLot->copyAttributes(ballSLot); //slotbag internalAddItem(NULL, ballPokeCylinder, CreateBallSLot, INDEX_WHEREEVER, FLAG_NOLIMIT); //slotbag Item* CreateBallBag = Item::CreateItem(ballPoke->getItem()->getID(), ballPoke->getItem()->getItemCount()); //slot8 CreateBallBag->copyAttributes(ballPoke->getItem()); //slot8 internalPlayerAddItem(NULL, player, CreateBallBag, false);// return true; }else { Cylinder* ballOrderCylinder = ballSLot->getParent(); int32_t ballOrderIndex = ballOrderCylinder->__getIndexOfThing(ballSLot); internalRemoveItem(NULL, ballSLot); Item* CreateBallSLot = Item::CreateItem(ballSLot->getID(), ballSLot->getItemCount()); CreateBallSLot->copyAttributes(ballSLot); internalPlayerAddItem(NULL, player, CreateBallSLot, false); return true; } } } } } } } } return false; } agora em game.h: embaixo de: Mostrar conteúdo oculto bool playerCancelRuleViolation(uint32_t playerId); adicione isso: Mostrar conteúdo oculto bool doMoveBar(uint32_t playerId, uint8_t opId); agora em luascript.cpp: embaixo de : Mostrar conteúdo oculto //getCreatureSummons(cid) lua_register(m_luaState, "getCreatureSummons", LuaScriptInterface::luaGetCreatureSummons); adicione: Mostrar conteúdo oculto //doUpdatePokemonsBar(cid) lua_register(m_luaState, "doUpdatePokemonsBar", LuaScriptInterface::luaDoUpdatePokemonsBar); //doMoveBar(playerid, item) lua_register(m_luaState, "doMoveBar", LuaScriptInterface::luaDoMoveBar); agora em baixo de: Mostrar conteúdo oculto 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; } ou de int32_t LuaScriptInterface::luaBitUNot(lua_State* L) { uint32_t number = (uint32_t)popNumber(L); lua_pushnumber(L, ~number); return 1; } adicione isso: Mostrar conteúdo oculto int32_t LuaScriptInterface::luaDoMoveBar(lua_State* L) { ScriptEnviroment* env = getEnv(); uint8_t opId = popNumber(L); uint32_t playerId = popNumber(L); if(Player* player = env->getPlayerByUID(playerId)) lua_pushboolean(L, g_game.doMoveBar(playerId, opId)); else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaScriptInterface::luaDoUpdatePokemonsBar(lua_State* L) { //doUpdatePokemonsBar(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) { player->doUpdatePokemonsBar(); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } agora em luascript.h. embaixo de : Mostrar conteúdo oculto //lua functions adicione isso Mostrar conteúdo oculto static int32_t luaDoUpdatePokemonsBar(lua_State* L); static int32_t luaDoMoveBar(lua_State* L); agora em player.cpp: embaixo de : Mostrar conteúdo oculto void Player::updateInventoryWeight() { inventoryWeight = 0.00; if(hasFlag(PlayerFlag_HasInfiniteCapacity)) return; for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) inventoryWeight += item->getWeight(); } } adicione isso: Mostrar conteúdo oculto void Player::doUpdatePokemonsBar() { uint32_t slot = SLOT_FEET; const Container* container; std::stringstream s; s << "p#"; std::stringstream sd; int32_t bo = 1; for(int32_t i = SLOT_LAST-1; i >= SLOT_FIRST; --i) { if(Item* item = getInventoryItem((slots_t)i)) { boost::any value = (item)->getAttribute("poke"); if(value.type() == typeid(std::string)) { boost::any vanick = (item)->getAttribute("nick"); std::string pokename = boost::any_cast<std::string>(value); if(vanick.type() == typeid(std::string)) pokename = boost::any_cast<std::string>(vanick); boost::any tapot = (item)->getAttribute("tadport"); if(tapot.type() == typeid(int32_t)) { boost::any boostpo = (item)->getAttribute("boost"); boost::any hpPo = (item)->getAttribute("hp"); int32_t boost = 0; int32_t hpPok = 0; if(boostpo.type() == typeid(int32_t)) boost = boost::any_cast<int32_t>(boostpo); if(hpPo.type() == typeid(float)) hpPok = (int32_t)std::ceil((boost::any_cast<float>(hpPo)*100)); else if(hpPo.type() == typeid(int32_t)) hpPok = (int32_t)std::ceil((boost::any_cast<int32_t>(hpPo)*100)); (item)->setAttribute("ballorder", bo); const ItemType* foto; if(!(foto = Item::items.getElement(boost::any_cast<int32_t>(tapot)))) foto = Item::items.getElement(2395); if(hpPok <= 0) { sd << "," << foto->clientId << "|" << pokename << "|" << bo << "|" << hpPok << "|" << boost; bo += 1; continue; } s << "," << foto->clientId << "|" << pokename << "|" << bo << "|" << hpPok << "|" << boost; bo += 1; }else { (item)->setAttribute("ballorder", bo); const ItemType* foto = Item::items.getElement(2395); s << "," << foto->clientId << "|" << " " << "|" << bo << "|" << 0 << "|" << 0; bo += 1; } } if(container = item->getContainer()) { for(ContainerIterator it = container->begin(), end = container->end(); it != end; ++it) { boost::any value = (*it)->getAttribute("poke"); if(value.type() == typeid(std::string)) { boost::any vanick = (*it)->getAttribute("nick"); std::string pokename = boost::any_cast<std::string>(value); if(vanick.type() == typeid(std::string)) pokename = boost::any_cast<std::string>(vanick); boost::any tapot = (*it)->getAttribute("tadport"); if(tapot.type() == typeid(int32_t)) { boost::any boostpo = (*it)->getAttribute("boost"); boost::any hpPo = (*it)->getAttribute("hp"); int32_t boost = 0; int32_t hpPok = 0; if(boostpo.type() == typeid(int32_t)) boost = boost::any_cast<int32_t>(boostpo); if(hpPo.type() == typeid(float)) hpPok = (int32_t)std::ceil((boost::any_cast<float>(hpPo)*100)); else if(hpPo.type() == typeid(int32_t)) hpPok = (int32_t)std::ceil((boost::any_cast<int32_t>(hpPo)*100)); (*it)->setAttribute("ballorder", bo); const ItemType* foto; if(!(foto = Item::items.getElement(boost::any_cast<int32_t>(tapot)))) foto = Item::items.getElement(2395); if(hpPok <= 0) { sd << "," << foto->clientId << "|" << pokename << "|" << bo << "|" << hpPok << "|" << boost; bo += 1; continue; } s << "," << foto->clientId << "|" << pokename << "|" << bo << "|" << hpPok << "|" << boost; bo += 1; }else { (*it)->setAttribute("ballorder", bo); const ItemType* foto = Item::items.getElement(2395); s << "," << foto->clientId << "|" << " " << "|" << bo << "|" << 0 << "|" << 0; bo += 1; } } } } } } s << sd.str(); sendCancel(s.str()); sendCancel(""); } agora em player.h embaixo de: Mostrar conteúdo oculto void updateItemsLight(bool internal = false); adicione isso: Mostrar conteúdo oculto void doUpdatePokemonsBar(); Download: Mostrar conteúdo oculto poke_bar.rar 32 kB · 51 downloads scan:https://www.virustotal.com/gui/file/43988896fa6ff61225182a6c713395cede7153bfb4ff31e63dc48ca69fba1575/detection Creditos: Mostrar conteúdo oculto Marshmello eu por posta no xtibia na base zr nao tem como por '-' eu tentei porem ela nao tem a maioria das coisas que ai pede tipo '' doCreatureSay(cid, mgo'' Link para o comentário Compartilhar em outros sites More sharing options...
Poke X Ice 52 Postado Dezembro 20, 2019 Autor Share Postado Dezembro 20, 2019 Agora, Dilooow disse: na base zr nao tem como por '-' eu tentei porem ela nao tem a maioria das coisas que ai pede tipo '' doCreatureSay(cid, mgo'' tem sim, já adaptei nela. Link para o comentário Compartilhar em outros sites More sharing options...
Dilooow 6 Postado Dezembro 20, 2019 Share Postado Dezembro 20, 2019 5 minutos atrás, Poke X Ice disse: tem sim, já adaptei nela. poderia me ajudar nao tou conseguindo ? Link para o comentário Compartilhar em outros sites More sharing options...
Poke X Ice 52 Postado Dezembro 20, 2019 Autor Share Postado Dezembro 20, 2019 Agora, Dilooow disse: poderia me ajudar nao tou conseguindo ? abre um topico. Link para o comentário Compartilhar em outros sites More sharing options...
Dilooow 6 Postado Dezembro 20, 2019 Share Postado Dezembro 20, 2019 3 minutos atrás, Poke X Ice disse: abre um topico. sou novo na comunidade nao entendo muito sobre nada na real Link para o comentário Compartilhar em outros sites More sharing options...
M i s s 9 Postado Janeiro 1, 2020 Share Postado Janeiro 1, 2020 Oi, então na parte do Goback ainda diz pra encontrar doCreatureSay(cid, mgo, TALKTYPE_MONSTER) eu só encontrei doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1) seria a mesma coisa? Link para o comentário Compartilhar em outros sites More sharing options...
Poke X Ice 52 Postado Janeiro 1, 2020 Autor Share Postado Janeiro 1, 2020 1 minuto atrás, R e d disse: Oi, então na parte do Goback ainda diz pra encontrar doCreatureSay(cid, mgo, TALKTYPE_MONSTER) eu só encontrei doCreatureSay(cid, mgo, TALKTYPE_ORANGE_1) seria a mesma coisa? Sim é a mesma coisa ,-, Link para o comentário Compartilhar em outros sites More sharing options...
M i s s 9 Postado Janeiro 1, 2020 Share Postado Janeiro 1, 2020 C precisava ver minha cara dps de ter colocado td bonitinho e chega na parte da source '-' Link para o comentário Compartilhar em outros sites More sharing options...
Poke X Ice 52 Postado Janeiro 1, 2020 Autor Share Postado Janeiro 1, 2020 2 horas atrás, R e d disse: C precisava ver minha cara dps de ter colocado td bonitinho e chega na parte da source '-' n tem source? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados