over12 0 Postado Agosto 24, 2011 Share Postado Agosto 24, 2011 Tipo eu queria usar o comando doCreatureSay com um monstro ou NPC e tipo ja q vai ser um player executando a açao eu nao posso colocar doCreatureSay(cid,...) ai eu queria ajuda pra colocar outra coisa ke informe uma pos... ja usei: pos1 = {x=??, y=??, z=??} --- OBS: eu nao uso essas ?? e so um exemplo pos2 = getThingfromPos(pos1) ai minhas tentativas foram: doCreatureSay(pos1,"...") doCreatureSay(pos2,"...") doCreatureSay(pos2.uid,"...") e sempre fala que a creatura nao foi axada... Link para o comentário Compartilhar em outros sites More sharing options...
MelhordoMundo 3 Postado Agosto 24, 2011 Share Postado Agosto 24, 2011 (editado) Tenta isso para o NPC, Nao tenho certeza que vai funcionar... doCreatureSay(a.npc,"...",TALKTYPE_SAY) Só acho que a fala vai sair no próprio NPC. Editado Agosto 24, 2011 por MelhorDoMundo Link para o comentário Compartilhar em outros sites More sharing options...
over12 0 Postado Agosto 24, 2011 Autor Share Postado Agosto 24, 2011 Kara vc tem ideia do q vc fez??? WTF? "a.npc" que eu saiba ai e pra colocar cid ou algun UID se "a.npc" for algum uid q eu nao saiba voce teria que me passar pelo menos oq eu coloco no "a" nao? Link para o comentário Compartilhar em outros sites More sharing options...
MelhordoMundo 3 Postado Agosto 24, 2011 Share Postado Agosto 24, 2011 (editado) Antes que vc se desespere mais, estou tentando te ajudar, ok? Realmente te passei de forma errada, nao tinha visto. Vou te passar o npc completo pra ver se te ajuda. local focus = 0local talk_start = 0 local target = 0 local following = false local attacking = false local storage = 30001 function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') 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 selfsay2(a) doCreatureSay(a.npc,"Me need 100 iron ore. Then need crude iron. Then after that 50 behemoth fangs. And 50 lizard leather. You understand?",TALKTYPE_SAY) end function selfsay3(a) doCreatureSay(a.npc,"Help me yes or no?",TALKTYPE_SAY) talk_state = 10 end function onCreatureSay(cid, type, msg) msg = string.lower(msg) status = getPlayerStorageValue(cid,storage) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then if status == 1 then selfSay('Whatcha do in my place?') focus = cid talk_start = os.clock() elseif status >= 9 and status < 15 then selfSay('Whatcha do in my place?') focus = cid talk_start = os.clock() elseif status == 2 then selfSay('You back. You know, you right. Brother is right. Fist not always good. Tell him that!') elseif status == 3 then selfSay('Whatcha do in my place?') focus = cid talk_start = os.clock() talk_state = 6 else selfSay('Whatcha do in my place?') end elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Im Bussy') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'mine') then selfSay('YOURS? WHAT IS YOURS! NOTHING IS YOURS! IS MINE! GO AWAY, YES?!') talk_state = 1 elseif msgcontains(msg, 'present') then if status == 9 then selfSay('Bron gave me present. Ugly, but nice from him. Me want to give present too. You help me?') talk_state = 9 end elseif msgcontains(msg, 'iron ore') then if status == 10 then selfSay('You bring 100 iron ore?') talk_state = 11 end elseif msgcontains(msg, 'crude iron') then if status == 11 then selfSay('You bring crude iron?') talk_state = 12 end elseif msgcontains(msg, 'behemoth fangs') then if status == 12 then selfSay('You bring 50 behemoth fangs?') talk_state = 13 end elseif msgcontains(msg, 'lizard leather') then if status == 13 then selfSay('You bring 50 lizard leather?') talk_state = 14 end elseif msgcontains(msg, 'axe') then if status == 14 then selfSay('Axe is done! For you. Take. Wear like me.') setPlayerStorageValue(cid,storage, 15) doPlayerAddAddon(cid, 143, 1) doPlayerAddAddon(cid, 147, 1) doSendMagicEffect(getPlayerPosition(cid), 14) talk_state = 0 end elseif talk_state == 1 then if msgcontains(msg, 'no') then selfSay('YOU STUPID! STUBBORN! I KILL YOU! WILL LEAVE NOW?!') talk_state = 2 end elseif talk_state == 2 then if msgcontains(msg, 'no') then selfSay('ARRRRRRRRRR! YOU ME DRIVE MAD! HOW I MAKE YOU GO??') talk_state = 3 end elseif talk_state == 3 then if msgcontains(msg, 'no') then selfSay('I GIVE YOU NO!') talk_state = 4 end elseif talk_state == 4 then if msgcontains(msg, 'say please') then selfSay('Please? What you mean please? Like I say please you say bye? Please?') talk_state = 5 end elseif talk_state == 5 then if msgcontains(msg, 'yes') then selfSay('Oh. Easy. Okay. Please is good. Now don\'t say anything. Head aches.') setPlayerStorageValue(cid,storage, 2) focus = 0 end elseif talk_state == 6 then if msgcontains(msg, 'gelagos') then selfSay('Annoying kid. Bro hates him, but talking no help. Bro needs fighting spirit!') talk_state = 7 end elseif talk_state == 7 then if msgcontains(msg, 'fighting spirit') then selfSay('If you want to help bro, bring him fighting spirit. Magic fighting spirit. Ask Djinn.') setPlayerStorageValue(cid,storage, 4) focus = 0 end elseif talk_state == 9 then if msgcontains(msg, 'yes') then selfSay('Good! Me make shiny weapon. If you help me, I make one for you too. Like axe I wear. I need stuff. Listen. ...') a = {npc = getNpcCid()} addEvent(selfsay2, 5000, a) addEvent(selfsay3, 10000, a) end elseif talk_state == 10 then if msgcontains(msg, 'yes') then selfSay('Good. You get 100 iron ore first. Come back.') setPlayerStorageValue(cid,storage, 10) end elseif talk_state == 11 then if msgcontains(msg, 'yes') then IO = getPlayerItemCount(cid,5880) if IO >= 100 then selfSay('Good! Now bring crude iron.') setPlayerStorageValue(cid,storage, 11) doPlayerRemoveItem(cid,5880,100) else selfSay('you don\'t have enough iron ores.') end end elseif talk_state == 12 then if msgcontains(msg, 'yes') then CI = getPlayerItemCount(cid,5892) if CI >= 1 then selfSay('Good! Now bring 50 behemoth fangs.') setPlayerStorageValue(cid,storage, 12) doPlayerRemoveItem(cid,5892,1) else selfSay('you don\'t have ine crude iron.') end end elseif talk_state == 13 then if msgcontains(msg, 'yes') then BF = getPlayerItemCount(cid,5893) if BF >= 50 then selfSay('Good! Now bring 50 lizard leather.') setPlayerStorageValue(cid,storage, 13) doPlayerRemoveItem(cid,5893,50) else selfSay('you don\'t have enough behemoth fangs.') end end elseif talk_state == 14 then if msgcontains(msg, 'yes') then LL = getPlayerItemCount(cid,5876) if LL >= 50 then selfSay('Ah! All stuff there. I will start making axes now. Come later and ask me for axe.') setPlayerStorageValue(cid,storage, 14) doPlayerRemoveItem(cid,5876,50) focus = 0 else selfSay('you don\'t have enough lizard leathers.') end end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Good bye, ' .. getCreatureName(cid) .. '!') focus = 0 talk_start = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 60 then if focus > 0 then selfSay('Good bye then.') end focus = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Good bye then.') focus = 0 end end end Tenha mais calma rapaz :sleep: Editado Agosto 24, 2011 por MelhorDoMundo Link para o comentário Compartilhar em outros sites More sharing options...
Mulizeu 86 Postado Agosto 24, 2011 Share Postado Agosto 24, 2011 Eu nao entendi DiiK Vc quer um npc com a funcçao doCreatureSay(cid,"....)...ou um npc como o MelhorDoMundo Passou? Link para o comentário Compartilhar em outros sites More sharing options...
lucao2011 0 Postado Agosto 25, 2011 Share Postado Agosto 25, 2011 Eu sou melhor melhor do mundo em passar informações erradas. 'doCreatureSay(cid,tid ,uid ,action ,slave)' :withstupidsmiley: Link para o comentário Compartilhar em outros sites More sharing options...
over12 0 Postado Agosto 29, 2011 Autor Share Postado Agosto 29, 2011 Eu quero um npc com a funçao doCreatureSay(...) + o problema e q quem eu quero ke fale nao e CID e sim um NPC exemplo quando o player executar oscript o npcvai dizer certa coisa.... Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Agosto 29, 2011 Share Postado Agosto 29, 2011 pos1 = {x=??, y=??, z=??, stackpos=253} --- OBS: eu nao uso essas ?? e so um exemplo pos2 = getThingfromPos(pos1) doCreatureSay(pos2.uid,"...") Creio que deve funcionar. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados