O PDA já possui um código de função muito semelhante. Procure pelo arquivo dropStone.lua, em data/creaturescripts/scripts.
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

Muito obrigado, @zipter98!
Eu achei o arquivo e adaptei para quando dropar uma Fire Stone, mandar um broadcast.
Achei estranho o fato de quando eu usava a função "getCreatureName(cid)" na mensagem do broadcast, aparecia o nome do meu pokémon, não o meu. Então eu fiz com a variável "myname".
Bom, está funcionando, mas está dando alguns erros.
Ao dropar o item, a mensagem é enviada, mas depois que você dropa o item algumas vezes, são enviadas duas ou três mensagens e a maioria das vezes, é enviado mensagem mesmo sem ter dropado o item.
Agradeço, novamente.
Esqueci de postar o script ISADHIASDHUSAID
Aqui:
local function dropMessage(cid, pos, itens, myname, name) if not isCreature(cid) then return true end for i = 1, 255 do pos.stackpos = i local item = getTileThingByPos(pos) if item.uid ~= 0 then if isContainer(item.uid) then if isContainer(item.uid) and getContainerSize(item.uid) > 0 then for slot=0, (getContainerSize(item.uid)-1) do local item = getContainerItem(item.uid, slot) if isInArray(itens, item.itemid) then print(1) broadcastMessage('MENSAGEM LOOT: O jogador '..myname..' dropou uma '..getItemNameById(item.itemid)..' de um '..name..'.') end end end end end endreturn trueendfunction onKill(cid, target) local itens = {11447} if ehMonstro(target) and isPlayer(cid) then local pos = getThingPos(target) local myname = getCreatureName(cid) local name = getCreatureName(target) local pid = getCreatureSummons(cid)[1] addEvent(dropMessage, 150, pid, pos, itens, myname, name) endreturn trueend
Editado Abril 28 por Bodak Reborn
Hm, curioso. Mesmo não dropando o item, a mensagem que aparece informa o nome deste?
De qualquer maneira, fiz algumas pequenas modificações no código:
local function dropMessage(cid, pos, itens, myname, name) if not isCreature(cid) then return true end for i = 1, 255 do pos.stackpos = i local item = getTileThingByPos(pos) if item.uid ~= 0 then if isContainer(item.uid) then if isContainer(item.uid) and getContainerSize(item.uid) > 0 then for slot=0, (getContainerSize(item.uid)-1) do local _item = getContainerItem(item.uid, slot) if _item.uid > 0 and isInArray(itens, _item.itemid) then print(1) broadcastMessage('MENSAGEM LOOT: O jogador '..myname..' dropou uma '..getItemNameById(_item.itemid)..' de um '..name..'.') return true end end end end end end return trueendfunction onKill(cid, target) local itens = {11447} if ehMonstro(target) and isPlayer(cid) then local pos = getThingPos(target) local myname = getCreatureName(cid) local name = getCreatureName(target) local pid = getCreatureSummons(cid)[1] addEvent(dropMessage, 150, pid, pos, itens, myname, name) end return trueend
Editado Abril 28 por zipter98
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

Editei lá, esqueci de colocar.. sorry
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

Mesmo erro, @zipter98.
Sim, na mensagem enviada, aparece "Fire Stone" mesmo dropando nothing.
Editado Abril 28 por Bodak Reborn
Apenas para confirmar algumas coisas, teste o seguinte código, fundado naquele que mencionei primeiramente, e nos diga se o mesmo erro acontece:
local items, monster_function = {11447}, ehMonstro or isMonsterlocal function drop_item(cid, position, corpseid, player_name, monster_name) if not isCreature(cid) then return true end local corpse = getTileItemById(position, corpseid).uid if corpse <= 1 then return end if not isContainer(corpse) then return true end for slot = 0, getContainerSize(corpse) - 1 do local item = getContainerItem(corpse, slot) if item.uid <= 1 then return end if isInArray(items, item.itemid) then broadcastMessage('MENSAGEM LOOT: O jogador '..player_name..' dropou uma '..getItemNameById(item.itemid)..' de um '..monster_name..'.') return true end endendfunction onKill(cid, target, lastHit) if not monster_function(target) then return true end local m_name = getCreatureName(target) local corpse = getMonsterInfo(m_name).lookCorpse addEvent(drop_item, 5, getCreatureSummons(cid)[1], getThingPos(target), corpse, getCreatureName(cid), m_name) return trueend
info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino

Perfeito, @zipter98.
Funcionou normalmente, sem bug nenhum.
Muito obrigado!
Seus códigos são incríveis! =D
Dúvida sanada, pode mover. ![]()
Editado Abril 29 por Bodak Reborn



info
Grupo: Campones
Registrado: 26/04/16
Posts: 90
Reputação: +28
Gênero: Masculino
@zipter98, desculpa incomodar, but, o script não funciona para mim... ele funciona no pda? Eu dei print (numero) em diversas linhas para saber onde estava o erro e tentar corrigir, mas não printa nada ao dropar o item.
Eu coloquei a tag, o script em creaturescripts e registrei no login.lua, mas não acontece nada ao dropar o item. Nada mesmo, sem bug na distro, nada...
Obrigado pela atenção!
Editado Abril 28 por Bodak Reborn