Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA]Traduzir Npc


Ir para solução Resolvido por TioDoLeite,

Posts Recomendados

então como faço pra traduzir npc com todas falas sem erro algum ?

 

 

QUEM PODER ME AJUDAR DOU REP+
 

Editado por vinhzika (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

Como o Augusto falou apenas traduz ou edita a fala do seu jeito, vá até o arquivo .lua do Npc que está localizado em  C:\Users\pc\Desktop\server\data\npc\scripts, abra o arquivo do npc no meu caso vai ser o de hearla.

 

local posis = {   --[storage da city] = {pos da nurse na city},
[897530] = {x = 1053, y = 1046, z = 7},   --saffron                   --alterado v1.9 TUDO!! \/
[897531] = {x = 1060, y = 900, z = 7},    --cerulean
[897532] = {x = 1204, y = 1042, z = 7},    --lavender
[897533] = {x = 1213, y = 1321, z = 7},    --fuchsia
[897534] = {x = 862, y = 1094, z = 6},    --celadon
[897535] = {x = 705, y = 1086, z = 7},    --viridian
[897536] = {x = 1075, y = 1233, z = 7},    --vermilion
[897537] = {x = 723, y = 847, z = 7},    --pewter
[897538] = {x = 850, y = 1396, z = 7},    --cinnabar
[897539] = {x = 1429, y = 1597, z = 6},    --snow
[897540] = {x = 542, y = 675, z = 7},    --golden
}
 
function onThingMove(creature, thing, oldpos, oldstackpos)
end
 
function onCreatureAppear(creature)
end
 
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye sir!')
focus = 0
talk_start = 0
end
end
 
function onCreatureTurn(creature)
end
 
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
 
function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
for a, b in pairs(gobackmsgs) do
local gm = string.gsub(b.go, "doka!", "")
local bm = string.gsub(b.back, "doka!", "")
if string.find(string.lower(msg), string.lower(gm)) or string.find(string.lower(msg), string.lower(bm)) then
return true
end
end
 
if((msgcontains(msg, 'hi') or msgcontains(msg, 'heal') or msgcontains(msg, 'help')) and (getDistanceToCreature(cid) <= 3)) then
 
  if exhaustion.get(cid, 9211) then
selfSay('Please wait a few moment before asking me to heal your pokemons again!')
return true
    end
 
if not getTileInfo(getThingPos(cid)).protection and nurseHealsOnlyInPZ then
selfSay("Please, get inside the pokémon center to heal your pokemons!")
return true
end
 
if getPlayerStorageValue(cid, 52480) >= 1 then
  selfSay("You can't do that while in a Duel!")   --alterado v1.6.1
    return true 
    end
    
    for e, f in pairs(posis) do
        local pos = getThingPos(getNpcCid())
        if isPosEqual(pos, f) then
           if getPlayerStorageValue(cid, e) <= -1 then           --alterado v1.7
              setPlayerStorageValue(cid, e, 1)
           end
        end
    end 
 
exhaustion.set(cid, 9211, 5)
 
doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
doCureStatus(cid, "all", true)
doSendMagicEffect(getThingPos(cid), 132)
 
local mypb = getPlayerSlotItem(cid, 8)
 
if #getCreatureSummons(cid) >= 1 then
 
if not nurseHealsPokemonOut then
selfSay("Please, return your pokemon to his ball!")
return true
end
 
local s = getCreatureSummons(cid)[1]
doCreatureAddHealth(s, getCreatureMaxHealth(s))
doSendMagicEffect(getThingPos(s), 13)
doCureStatus(s, "all", false)
if getPlayerStorageValue(s, 1008) < baseNurseryHappiness then
setPlayerStorageValue(s, 1008, baseNurseryHappiness)
end
if getPlayerStorageValue(s, 1009) > baseNurseryHunger then
setPlayerStorageValue(s, 1009, baseNurseryHunger)
end
else
if mypb.itemid ~= 0 and isPokeball(mypb.itemid) then  --alterado v1.3
   doItemSetAttribute(mypb.uid, "hp", 1)
if getItemAttribute(mypb.uid, "hunger") and getItemAttribute(mypb.uid, "hunger") > baseNurseryHunger then
doItemSetAttribute(mypb.uid, "hunger", baseNurseryHunger)
end
for c = 1, 15 do
local str = "move"..c
setCD(mypb.uid, str, 0)
end
if getItemAttribute(mypb.uid, "happy") and getItemAttribute(mypb.uid, "happy") < baseNurseryHappiness then
doItemSetAttribute(mypb.uid, "happy", baseNurseryHappiness)
end
if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 63215) <= 0 then
for a, b in pairs (pokeballs) do
if isInArray(b.all, mypb.itemid) then
  doTransformItem(mypb.uid, b.on)
end
end
end
end
end
 
local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
 
    local balls = getPokeballsInContainer(bp.uid)
    if #balls >= 1 then
       for _, uid in ipairs(balls) do
           doItemSetAttribute(uid, "hp", 1)
           for c = 1, 15 do
               local str = "move"..c
               setCD(uid, str, 0)   
           end
           if getItemAttribute(uid, "hunger") and getItemAttribute(uid, "hunger") > baseNurseryHunger then
              doItemSetAttribute(uid, "hunger", baseNurseryHunger)
           end
           if getItemAttribute(uid, "happy") and getItemAttribute(uid, "happy") < baseNurseryHappiness then
              doItemSetAttribute(uid, "happy", baseNurseryHappiness)
           end
           local this = getThing(uid)
           for a, b in pairs (pokeballs) do
      if isInArray(b.all, this.itemid) then
             doTransformItem(uid, b.on)
               end
           end
        end
    end
    selfSay('There you go! You and your pokemons are healthy again.')
    if useKpdoDlls then  --alterado v1.7
       doUpdateMoves(cid)
    end
end

end

 

Editado/Traduzido, ficando assim.

 

local posis = {   --[storage da city] = {pos da nurse na city},
[897530] = {x = 1053, y = 1046, z = 7},   --saffron                   --alterado v1.9 TUDO!! \/
[897531] = {x = 1060, y = 900, z = 7},    --cerulean
[897532] = {x = 1204, y = 1042, z = 7},    --lavender
[897533] = {x = 1213, y = 1321, z = 7},    --fuchsia
[897534] = {x = 862, y = 1094, z = 6},    --celadon
[897535] = {x = 705, y = 1086, z = 7},    --viridian
[897536] = {x = 1075, y = 1233, z = 7},    --vermilion
[897537] = {x = 723, y = 847, z = 7},    --pewter
[897538] = {x = 850, y = 1396, z = 7},    --cinnabar
[897539] = {x = 1429, y = 1597, z = 6},    --snow
[897540] = {x = 542, y = 675, z = 7},    --golden
}
 
function onThingMove(creature, thing, oldpos, oldstackpos)
end
 
function onCreatureAppear(creature)
end
 
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye sir!')
focus = 0
talk_start = 0
end
end
 
function onCreatureTurn(creature)
end
 
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
 
function onCreatureSay(cid, type, msg)
local msg = string.lower(msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
 
for a, b in pairs(gobackmsgs) do
local gm = string.gsub(b.go, "doka!", "")
local bm = string.gsub(b.back, "doka!", "")
if string.find(string.lower(msg), string.lower(gm)) or string.find(string.lower(msg), string.lower(bm)) then
return true
end
end
 
if((msgcontains(msg, 'hi') or msgcontains(msg, 'heal') or msgcontains(msg, 'help')) and (getDistanceToCreature(cid) <= 3)) then
 
  if exhaustion.get(cid, 9211) then
selfSay('Por favor, aguarde alguns momentos antes de me pedir para curar seu pokemon de novo!')
return true
    end
 
if not getTileInfo(getThingPos(cid)).protection and nurseHealsOnlyInPZ then
selfSay("Por favor, entre o Centro de Pokemon para eu curar seus pokemons!")
return true
end
 
if getPlayerStorageValue(cid, 52480) >= 1 then
  selfSay("Voce nao pode fazer isso enquanto em um duelo!")   --alterado v1.6.1
    return true 
    end
    
    for e, f in pairs(posis) do
        local pos = getThingPos(getNpcCid())
        if isPosEqual(pos, f) then
           if getPlayerStorageValue(cid, e) <= -1 then           --alterado v1.7
              setPlayerStorageValue(cid, e, 1)
           end
        end
    end 
 
exhaustion.set(cid, 9211, 5)
 
doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid))
doCureStatus(cid, "all", true)
doSendMagicEffect(getThingPos(cid), 132)
 
local mypb = getPlayerSlotItem(cid, 8)
 
if #getCreatureSummons(cid) >= 1 then
 
if not nurseHealsPokemonOut then
selfSay("Por favor, retorne o seu pokemon para pokebola!")
return true
end
 
local s = getCreatureSummons(cid)[1]
doCreatureAddHealth(s, getCreatureMaxHealth(s))
doSendMagicEffect(getThingPos(s), 13)
doCureStatus(s, "all", false)
if getPlayerStorageValue(s, 1008) < baseNurseryHappiness then
setPlayerStorageValue(s, 1008, baseNurseryHappiness)
end
if getPlayerStorageValue(s, 1009) > baseNurseryHunger then
setPlayerStorageValue(s, 1009, baseNurseryHunger)
end
else
if mypb.itemid ~= 0 and isPokeball(mypb.itemid) then  --alterado v1.3
   doItemSetAttribute(mypb.uid, "hp", 1)
if getItemAttribute(mypb.uid, "hunger") and getItemAttribute(mypb.uid, "hunger") > baseNurseryHunger then
doItemSetAttribute(mypb.uid, "hunger", baseNurseryHunger)
end
for c = 1, 15 do
local str = "move"..c
setCD(mypb.uid, str, 0)
end
if getItemAttribute(mypb.uid, "happy") and getItemAttribute(mypb.uid, "happy") < baseNurseryHappiness then
doItemSetAttribute(mypb.uid, "happy", baseNurseryHappiness)
end
if getPlayerStorageValue(cid, 17000) <= 0 and getPlayerStorageValue(cid, 17001) <= 0 and getPlayerStorageValue(cid, 63215) <= 0 then
for a, b in pairs (pokeballs) do
if isInArray(b.all, mypb.itemid) then
  doTransformItem(mypb.uid, b.on)
end
end
end
end
end
 
local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
 
    local balls = getPokeballsInContainer(bp.uid)
    if #balls >= 1 then
       for _, uid in ipairs(balls) do
           doItemSetAttribute(uid, "hp", 1)
           for c = 1, 15 do
               local str = "move"..c
               setCD(uid, str, 0)   
           end
           if getItemAttribute(uid, "hunger") and getItemAttribute(uid, "hunger") > baseNurseryHunger then
              doItemSetAttribute(uid, "hunger", baseNurseryHunger)
           end
           if getItemAttribute(uid, "happy") and getItemAttribute(uid, "happy") < baseNurseryHappiness then
              doItemSetAttribute(uid, "happy", baseNurseryHappiness)
           end
           local this = getThing(uid)
           for a, b in pairs (pokeballs) do
      if isInArray(b.all, this.itemid) then
             doTransformItem(uid, b.on)
               end
           end
        end
    end
    selfSay('Seus Pokemons estao saudaveis novamente.')
    if useKpdoDlls then  --alterado v1.7
       doUpdateMoves(cid)
    end
end

end

 

                        Simples assim  ^^ .

Editado por TioDoLeite (veja o histórico de edições)

Atenciosamente, Knowth.

Link para o post
Compartilhar em outros sites

O maior problema não é que você quer tutorial.. cara, sinceramente não tem segredo pra traduzir um npc, é apenas trocar as falas, mas você disse "sem erro".

 

Você falou de maneira muito ambigua, ninguem aqui tem bola de crystal pra saber o erro que rolo ou o que você quis dizer.. então por favor se explique que eu me disponho a lhe ajudar. Pra mim o único erro que eu consigo imaginar é que você provavelmente deletou algo que não deveria ou simplesmente inventou de meter acentuação no meio do script nas falas (dependendo o caso isso buga por completo o npc).

 

Anyway, decida-se e comente aqui, e se ainda precisar de ajuda, não exite em perguntar.

Link para o post
Compartilhar em outros sites

Sim, esse problema na acentuação é um grande erro para o Npc, que no caso eu cometi acima !   Mais já consertei, Obrigado por citar isso Augusto.

             E também concordo com oque você falou Augustomeneghetti.

Atenciosamente, Knowth.

Link para o post
Compartilhar em outros sites

realmente augusto não citei o erro e que tipo eu mudava a fala do npc em so 1 script e dps quando abria o server tudo bugava

Link para o post
Compartilhar em outros sites

Bem.. como eu falei, depende do caso

 

Tem npc's que apenas editar o xml dele é suficiente, enquanto tem outros npc's que você terá que editar o .lua (cada servidor tem sua maneira, no meu server no caso, tenho npc's que as falas ficam armazenadas em ambos, e outros npc's que são apenas no .lua ou no .xml, por não gostar disso e meu server ser um com a intenção de inovar, estou refazendo cada npc)

 

Enfim, vale lembrar que a questão de acentuação só não funciona no XML, eu mesmo tenho npc's que utilizam falas com acentuação (porém é tudo feito no .lua do npc).. as vezes você cometeu esse erro, e eu realmente concordo com a utilização de pontuação, fica muito feio ler as falas de um npc em um ot.. e elas não terem sequer 1 pontuação.

 

Anyway, se possivel poste o script do seu npc que você está tentando editar, posta o script original mesmo. Dessa maneira te dou umas dicas, e depois você compara com o que você fez

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo