Ir para conteúdo

Slicer

Príncipe
  • Total de itens

    4014
  • Registro em

  • Última visita

  • Dias Ganhos

    47

Tudo que Slicer postou

  1. isso ela vai fazer... oq to perguntando eh se tu vai procurar por BPs usando as funçoes? -como itemid- pq a funçao vai entrando nas bps do player mas n olha o id delas... dai se for procurar por bps tem q editar a funçao pra verificar o id das bps antes de 'entrar' nelas para procurar pelo item...
  2. bota essas duas funçoes na tua lib e dai usa a 2* pra pegar os itens... exemplo: local uids = getPlayerItemsById(cid, itemid) for _, uid in ipairs(uids) do doRemoveItem(uid, 1) end soh uma duvida... vais usar essas funçoes para procurar por bags? se for, vai ter q alterar elas um bucadin... ;p
  3. se ele uso getPlayerItemCount ele deve ta querendo pegar os uids da bag do player... achu q oq ele quer eh essa funçao... function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end exemplo de uso: local uids = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) for _, uid in ipairs(uids) do doRemoveItem(uid, 1) end nesse caso vai remover todos os itens com o 'itemid' do player...
  4. Slicer

    Opcode

    sim, printaria isso ae...
  5. Slicer

    Opcode

    Server-side: Enviar: doSendPlayerExtendedOpcode(cid, opcode, buffer) Ex.: doSendPlayerExtendedOpcode(cid, 51, "oibls") Receber: Você deve ter visto a callback OPCODE_LANGUAGE = 1 function onExtendedOpcode(cid, opcode, buffer) if opcode == OPCODE_LANGUAGE then -- otclient language if buffer == 'en' or buffer == 'pt' then -- example, setting player language, because otclient is multi-language... --doCreatureSetStorage(cid, CREATURE_STORAGE_LANGUAGE, buffer) end else -- other opcodes can be ignored, and the server will just work fine... end end Client-side: Enviar: local protocol = g_game.getProtocolGame() protocol:sendExtendedOpcode(51, "oibls") -- opcode, buffer Receber: ProtocolGame.registerExtendedOpcode(opcode, callback) Ex.: ProtocolGame.registerExtendedOpcode(51, function (protocol, opcode, buffer) print(buffer) end) isso foi oq o bananaFight me mando uma vez a um tempo atras... talvez ajude...
  6. @zipter doSendPlayerCancel retorna true quando consegue enviar a msg, entao isso ainda vai deixar da o trade n? ;x
  7. essa linha serve exatamente pra n da erro quando desloga com addEvent... esse erro ae eh de outro script... e ta dizendo q eh do onLogin...
  8. --configuração-- local enter = {x=938,y=1595,z=15} local voltar = {x=938,y=1595,z=15} local monsters = { [1] = { {"cyclops", {x=157, y=35, z=7}}, {"Demon", {x=161, y=38, z=7}}, {"Hydra", {x=155, y=38, z=7}}, {"Dragon", {x=160, y=39, z=7}}, }, [2] = { {"cyclops", {x=157, y=35, z=7}}, {"Demon", {x=161, y=38, z=7}}, {"Hydra", {x=155, y=38, z=7}}, {"Dragon", {x=160, y=39, z=7}} }, [3] = { {"cyclops", {x=157, y=35, z=7}}, {"Demon", {x=161, y=38, z=7}}, {"Hydra", {x=155, y=38, z=7}}, {"Dragon", {x=160, y=39, z=7}} }, [4] = { {"cyclops", {x=157, y=35, z=7}}, {"Demon", {x=161, y=38, z=7}}, {"Hydra", {x=155, y=38, z=7}}, {"Dragon", {x=160, y=39, z=7}} } } local function doSummonMonsters(cid) if not isCreature(cid) then return end local t = monsters[getPlayerClanRank(cid)] if not t then return end for _, tab in ipairs(t) do doCreateMonster(tab[1], tab[2], false) end doTeleportThing(cid, enter, false) doSendMagicEffect(enter, 21) end function onUse(cid, item, frompos, item2, topos, uid) if getPlayerStorageValue(cid, 12345) >= 1 then if getPlayerStorageValue (cid, 54321) >= 1 then addEvent(doSummonMonsters, 1000, cid) else doPlayerSendTextMessage(cid, 20, "Desculpe mas vc ainda nao tem a missao ...") end else doPlayerSendTextMessage(cid, 20, "Desculpe mas vc ainda nao e do clan ...") end return true end se vai ser sempre os mesmos monstros e posiçoes pra todos os clans da pra reduzir mais ainda o script...
  9. isso ae eh pra algum game? pq usar onThink pra isso eh meio loko kk' se o player loga e ja entra em um time, o melhor eh usar onLogin e onLogout... se o player tem q clicar/andar em algu ou flar algu pra entrar no time o melhor eh usar isso e tb onLogout... se o evento eh iniciado por alguma talk/globalevent tb da pra fazer uma funçao q fica checando a cada 20~30seg por exemplo... -ou ate ms usar uma funçao pra checar isso a cada 20~30s no onStartup...-
  10. function getHighestSkillLvl(cid) local highest, tmp = {s = -1, l = 0}, 0 for i = 0, 5 do tmp = getPlayerSkillLevel(cid, i) if tmp > highest.l then highest = {s = i, l = tmp} end end tmp = getPlayerMagLevel(cid, true) if tmp > highest.l then highest = {s = 7, l = tmp} end return highest end essa funçao retorna uma tabela com o id e lvl da maior skill do player... exemplo de uso: local highest = getHighestSkillLvl(cid) --highest.s == id da maior skill --highest.l == nv da maior skill 2 detalhes... 1* caso todas as skills estiverem com lvl 0, vai retornar {s = -1, l = 0}... -quer dizer q n tem nenhuma com 'maior lvl'... 2* caso tenha skills com ms lvl ele vai pegar a 1* q ele passar... sao coisas q da pra mudar dependendo doq tu quer fazer com essa funçao...
  11. /\ n faço nem ideia kkk' antes de mexer com otc eu nem sabia q existia .apng kkk'
  12. @aberos por img eh simples... quero ve converter as .gif pra .apng kkk' @topic eh inovando tao, mas q ja sairam da ideia principal de 'pokemon' ja sairam faz tempo... ;/ -sem fla q esse sistema ae eh bem inutil kk'-
  13. ta se o cara usar solar beam vai ter q esperar 60s pra usar outra skill? cade o sentido nisso? ;x -sem fla q coitado do bulba, vai ser triturado nesses 60s-
  14. eh.. eh uma alternativa.. oq normalmente se faz eh mandar as informaçoes ja por opcode ou sendCancel pra n deixar elas assim expostas pra todos... mas realmente botando a tabela no otc deixa tudo mais simples xD ainda mais pra quem ta começando agora a fazer scripts... e tb n sao informaçoes la muito importantes...
  15. o banana pq usasse for pra pegar a tabela do poke? for _, atk in ipairs(pokemons[name]) do print("m"..atk) end[code] e pra fazer a interface basica eh bem isso ae ms a logica.. problema eh quando quer por cd, img, nome dos atks e blablabla kk'
  16. local monster = doCreateMonster("....", pos) dai depois podes usar essa variavel monster para saber aonde ele ta... normalmente, tu usaria uma funçao com addEvent tpw... local function removeCreature(cid) if isCreature(cid) then doRemoveCreature(cid) end end local monster = doCreateMonster("....", pos) addEvent(removeCreature, 30*1000, monster) no caso, criaria o monstro e depois de 30s removeria ele... clr q podes salvar a variavel monster numa storage ou sei la pra usar depois de outro jeito...
  17. talvez assim? local function ReAtive() local players = getPlayersOnline() for _, player in ipairs(players) do if isInRange(getThingPos(player), from, to) then doBroadcastMessage("Temos intrusos e o item nao foi criado!") addEvent(ReAtive, check * 1000) return end end doCreateItem(corpse, 1, pos) doBroadcastMessage("Item adicionado com sucesso!") end
  18. Slicer

    Spell doMoveCreature

    estranhu.. era pra essa 2* spell ae passar por cima de tudo ;x ate paredes e afins ;/ o real problema dessa funçao eh isso: lua_pushnumber(L, g_game.internalMoveCreature(creature, (Direction)direction, FLAG_NOLIMIT)); essa FLAG_NOLIMIT q faz as sources n checarem a pos antes de mover a criatura ;x n intendo pq foi feito assim mas... se tu tiver as sources pode tirar essa flag dali e tudo deve da certo ;p
  19. Slicer

    Spell doMoveCreature

    /\ tu n intendeu oq eu quis dizer com botar o addEvent n funçao kk' e sobre oq tu flo de ainda andar sobre poison, water e afins, isso eh BEMMMM complicado de arrumar kk' achu q o jeito mais simples eh pegar os tiles q ele ta andando e checar eles na funçao isWalkable tb... ;x @zip eh tb n intendi a ideia daquilo... se n eh andavel, pq ele vai tentar andar denovo? kk'
  20. Slicer

    Spell doMoveCreature

    eu diria q a do zip ta perfeita ;x soh tem q tirar o doMove do else... ;x ah sim, tem q verificar se o cid ainda ta online ;x e seria bom fazer a funçao ms da addEvent... melhor q deixar 40 addEvent programados...
  21. Slicer

    Spell doMoveCreature

    pq simplismente n tiram a funçao doMoveCreature do else? -deixando o resto como ta- ;x n achu q seja necessario ela ali...
  22. Slicer

    getStorage

    /\ e o valor vai parar onde?
  23. Slicer

    getStorage

    std::string strValue; if( player->getStorage(89612, strValue) ){ if ( strValue == "-1" ){ ... } }
  24. Slicer

    Remove Item

    hã... pq exatamente tu uso FOR pra pegar o nome do monstro e ver se ele ta na tabela? o certo eh usar: _gnr[getCreatureName(cid):lower()]
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...