Boa noite,
Você deve ter algum script na parte de creaturescripts para modificar a quantidade de monstros mortos, poste esse script aqui para que eu possa adaptar para você.
Aguardando, boa noite e um grande abraço.
Missão p/ matar monstros e ganhar recompensa
Por Hudsin, 11 de abr. de 2014 em Scripts
info
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness

Boa noite,
Você deve ter algum script na parte de creaturescripts para modificar a quantidade de monstros mortos, poste esse script aqui para que eu possa adaptar para você.
Aguardando, boa noite e um grande abraço.
Creaturescript foi adicionado!
Editado Abril 12 por Hudsin
Boa noite,
Estou vendo o seu script aqui, e vejo que a linha:
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você derrotou " .. killedMonsters .. " de 20 orcs.")
Já faz o que você pede. Ela vai enviar ao player a mensagem:
"Você derrotou X de 20 orcs."
Onde X é a quantidade de Orcs que você ja matou.
Aparece algum erro? Quando você mata algum mostro que está fazendo task aparece alguma mensagem?
Aguardando a sua resposta. Abraços.
info
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness

Boa noite,
Estou vendo o seu script aqui, e vejo que a linha:
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você derrotou " .. killedMonsters .. " de 20 orcs.")Já faz o que você pede. Ela vai enviar ao player a mensagem:
"Você derrotou X de 20 orcs."
Onde X é a quantidade de Orcs que você ja matou.
Aparece algum erro? Quando você mata algum mostro que está fazendo task aparece alguma mensagem?
Aguardando a sua resposta. Abraços.
Não aparece mensagem de erro no distro e não aparece a mensagem pro player avisando quantos ja matou.
Ele funciona, eu contei de cabeça e entreguei a missão, ganhei a recompensa. Então está gravando. Só não manda a mensagem a cada rot q mata.
Editado Abril 12 por Hudsin
info
Grupo: Marquês
Registrado: 03/02/13
Posts: 1.2k
Reputação: +254
Gênero: Masculino
Char no Tibia: Partiu Baladinha

Não aparece mensagem de erro no distro e não aparece a mensagem pro player avisando quantos ja matou.
Ele funciona, eu contei de cabeça e entreguei a missão, ganhei a recompensa. Então está gravando. Só não manda a mensagem a cada rot q mata.
É rot ou orc que você está matando?
info
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness

Rotworm! havia colocado o creaturescript da outra missao sem querer, coloquei o certo agora. ![]()
Tenho notado que tanto no creaturescript quanto no npc, posuem linhas com a seguinte formula para enviar a mensagem pro jogador, e axo que o erro está nela:
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu uma Chain Legs e 3100EXP. Procure Arkires, no cemitério ao norte, ele precisa de sua ajuda. ")
É possivel fazer a mensagem chegar de uma forma diferente desse MESSAGE_INFO_DESCR?
Editado Abril 13 por Hudsin
Rotworm! havia colocado o creaturescript da outra missao sem querer, coloquei o certo agora.
Tenho notado que tanto no creaturescript quanto no npc, posuem linhas com a seguinte formula para enviar a mensagem pro jogador, e axo que o erro está nela:
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu uma Chain Legs e 3100EXP. Procure Arkires, no cemitério ao norte, ele precisa de sua ajuda. ")É possivel fazer a mensagem chegar de uma forma diferente desse MESSAGE_INFO_DESCR?
Boa Tarde,
Há sim, diversos tipos diferentes de mensagens você pode colocar para aparecer, experimente:
MESSAGE_STATUS_CONSOLE_BLUE
Ficando assim:
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você recebeu uma Chain Legs e 3100EXP. Procure Arkires, no cemitério ao norte, ele precisa de sua ajuda. ")
Aqui tem uma lista das constantes definidas nas libs:
MESSAGE_FIRST MESSAGE_EVENT_ORANGE MESSAGE_STATUS_CONSOLE_ORANGE MESSAGE_STATUS_WARNING MESSAGE_EVENT_ADVANCE MESSAGE_EVENT_DEFAULT MESSAGE_STATUS_DEFAULT MESSAGE_INFO_DESCR MESSAGE_STATUS_SMALL MESSAGE_STATUS_CONSOLE_BLUE
Experimente e veja se a mensagem aparece normalmente.
Aguardando respostas.
Abraços
info
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness

Deu certo, muito obrigado!




info
Grupo: Cavaleiro
Registrado: 03/03/07
Posts: 150
Reputação: +48
Gênero: Masculino
Char no Tibia: Kaball Madness
Uso um sistema de missão com npc e creaturescripts, funciona, porém conforme o jogador mata o mostro que precisa, não aparece quantos ele ja matou.
É possível adicionar, isso de contar os monstros matados, nesse script? Preciso muito disso ><
Segue o npc que uso:
NPC:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Heren, Primeira Missao" script="data/npc/scripts/rotworm_quest.lua" access="3" lookdir="2" walkinterval="3000" floorchange="0"> <mana now="800" max="800"/> <health now="132" max="200"/> <look type="128" head="58" body="68" legs="109" feet="131" addons="1"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, preciso de {ajuda}, existem vermes que veêm de um lugar desconhecido e estão acabando com minhas plantações! "/> <parameter key="module_keywords" value="1" /> </parameters></npc>SCRIPT:
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local quest = 76669 local reward = 70000 function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(not npcHandler:isFocused(cid)) then return false elseif msgcontains(msg, "sim") and talkState[talkUser] == 1 then npcHandler:say("Muito obrigado! Você será muito bem recompensado {ok}?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, "ok") and talkState[talkUser] == 2 then npcHandler:say("Certo, entre nesse portal, seja cauteloso! Apresse-se!", cid) setPlayerStorageValue(cid, quest, 2) talkState[talkUser] = 0 elseif msgcontains(msg, "ajuda") then local str = getPlayerStorageValue(cid, quest) if(str < 2) then npcHandler:say("Aventureiro, eu preciso que você limpe o lugar de onde esses vermes veêm! Elimine 20 rotworms para mim? {sim} ", cid) talkState[talkUser] = 1 return true elseif(str == 2) then npcHandler:say("Você iniciou missão, volte quando estiver completa.", cid) elseif(str == 3) then npcHandler:say("Muito obrigado por eliminar essas pragas! Aqui está sua recompensa.", cid) doPlayerAddItem(cid, 2648, 1) doPlayerAddExp(cid, 3100) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu uma Chain Legs e 3100EXP. Procure Arkires, no cemitério ao norte, ele precisa de sua ajuda. ") setPlayerStorageValue(cid, quest, 4) elseif(str == 4) then npcHandler:say("Você tem feito o suficiente para mim, Siga ao Norte e encontre Arkires, ele precisa de sua ajuda! ", cid) end talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())CREATURESCRIPT:
local monsters = {--name = storage ["rotworm"] = 55004 } function onKill(cid, target) local monster = monsters[getCreatureName(target):lower()] if(isPlayer(target) == FALSE and monster and getPlayerStorageValue(cid, 76669) == 2) then if getPlayerStorageValue(cid, monster) < 20 then local killedMonsters = getPlayerStorageValue(cid, monster) if(killedMonsters == -1) then killedMonsters = 1 end setPlayerStorageValue(cid, monster, killedMonsters + 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você matou " .. killedMonsters .. " de 20 rotworms.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você concluiu a missão de eliminar os vermes!") setPlayerStorageValue(cid, 76669, 3) end end return TRUE endEditado Abril 13 por Hudsin