-
Total de itens
4014 -
Registro em
-
Última visita
-
Dias Ganhos
47
Tudo que Slicer postou
-
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...
-
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
-
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...
-
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...
-
Não poder dar trade com pokemon de fora [POKETIBIA]
tópico respondeu ao titon de Slicer em Lixeira Pública
@zipter doSendPlayerCancel retorna true quando consegue enviar a msg, entao isso ainda vai deixar da o trade n? ;x -
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...
-
--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...
-
dúvida Checar Storages e Dividi-lo [Balance Storage]
pergunta respondeu ao RodriigoRobson de Slicer em Scripts
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...- -
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...
-
/\ n faço nem ideia kkk' antes de mexer com otc eu nem sabia q existia .apng kkk'
-
@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'-
-
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-
-
poketibia Como criar uma barra de spell [Poketibia]
tópico respondeu ao BananaFight de Slicer em Tutoriais de Clients
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... -
poketibia Como criar uma barra de spell [Poketibia]
tópico respondeu ao BananaFight de Slicer em Tutoriais de Clients
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' -
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...
-
pedido [Ajuda] Checka se há player no local.
pergunta respondeu ao gonorreiaswat de Slicer em Scripts
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 -
[Encerrado] [PDA] Criar Spell de Morph.
tópico respondeu ao JulynaMiiy de Slicer em Tópicos Sem Resposta
dica: criem 2 dark abras e sejam felizes... -
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
-
/\ 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'
-
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...
-
pq simplismente n tiram a funçao doMoveCreature do else? -deixando o resto como ta- ;x n achu q seja necessario ela ali...
-
/\ e o valor vai parar onde?
-
std::string strValue; if( player->getStorage(89612, strValue) ){ if ( strValue == "-1" ){ ... } }
-
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.