JG6 44 Posted December 13, 2019 Share Posted December 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 to comment Share on other sites More sharing options...
AbuelaViolenta 0 Posted December 14, 2019 Share Posted December 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 to comment Share on other sites More sharing options...
Poke X Ice 52 Posted December 14, 2019 Author Share Posted December 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 to comment Share on other sites More sharing options...
AbuelaViolenta 0 Posted December 15, 2019 Share Posted December 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 to comment Share on other sites More sharing options...
Ayron5 40 Posted December 15, 2019 Share Posted December 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 to comment Share on other sites More sharing options...
AbuelaViolenta 0 Posted December 19, 2019 Share Posted December 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 to comment Share on other sites More sharing options...
Dilooow 6 Posted December 20, 2019 Share Posted December 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 to comment Share on other sites More sharing options...
Poke X Ice 52 Posted December 20, 2019 Author Share Posted December 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 to comment Share on other sites More sharing options...
Dilooow 6 Posted December 20, 2019 Share Posted December 20, 2019 5 minutos atrás, Poke X Ice disse: tem sim, já adaptei nela. poderia me ajudar nao tou conseguindo ? Link to comment Share on other sites More sharing options...
Poke X Ice 52 Posted December 20, 2019 Author Share Posted December 20, 2019 Agora, Dilooow disse: poderia me ajudar nao tou conseguindo ? abre um topico. Link to comment Share on other sites More sharing options...
Dilooow 6 Posted December 20, 2019 Share Posted December 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 to comment Share on other sites More sharing options...
M i s s 9 Posted January 1, 2020 Share Posted January 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 to comment Share on other sites More sharing options...
Poke X Ice 52 Posted January 1, 2020 Author Share Posted January 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 to comment Share on other sites More sharing options...
M i s s 9 Posted January 1, 2020 Share Posted January 1, 2020 C precisava ver minha cara dps de ter colocado td bonitinho e chega na parte da source '-' Link to comment Share on other sites More sharing options...
Poke X Ice 52 Posted January 1, 2020 Author Share Posted January 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 to comment Share on other sites More sharing options...
Recommended Posts