Postado Julho 28, 2015 9 anos Olá sou novo na area de script nunca mexi com arquivos .lua ou esses tipos de arquivos. eu notei que em varios scripts de npcs do forum tem a funçao TalkState[TalkUser] = 1 ... end TalkState[TalkUser] = 1 then ... TalkState[TalkUser] = 2 ... end Alguem poderia me dizer a função? :s(Procurei em todos os cantos mais n consegui achar) Obrigado Procuro alguem para me ensinar Script DragonOt (8.6/200x Rate/25x Skill/10x Magic/New Vocations/New Spells/Mapa Edited[RPG]/New Monsters and Quests) -- Em Andamento Contatos: Skype-- giovani.fogarolli LoLzin-- Maxzer0 Mapping -- Aprendendo Scripter -- Aprendendo ~~Maxzer0~~
Postado Julho 28, 2015 9 anos Solução O TalkState é para localizar o cid na conversa. Exemplo: Cid = 375727583 (número aleatório de um player qualquer) Ele armazena na tabela TalkState o cid, para identificar em que assunto o cid está, através de umas funções. Se eu não me engano, existe uma coisa assim TalkUser = cid. -- logo você pode usar cid direto como o índice do TalkState. Nesse caso a tabela fica se mudando de acordo com o que o player fala para o NPC. TalkState = { 1 = [375727583] } -- ao falar hi TalkState = { 2 = [375727583] } -- ao falar travel, o elemento do talkstate fica como 2, no índice com número do cid Isso é o que determina uma fala como "yes" ser diferente da mesma fala "yes" do player, o npc executa o "yes" de acordo com o TalkState, que deve ser configurado de acordo com a lógica que o npc foi programado para fazer. Exemplo: Npc disse: Quer 100 golds, yes or no? Npc disse: Essa rope é 100 golds, yes or no? Esse npc pode ser o mesmo, porém o caminho que o player precisa usar tem que ser diferente para não quebrar a lógica. Eu estou escrevendo pelo celular, espero que esteja claro. Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado). Tópicos: [FAQ] BBCODE [LIB] Constant [RME] Administrando bordas. [TALK] Broadcast Editável. [TALK] Sugest. [TALK] Checkpoint. [MOVE] Pântano pegajoso. [ACTION] Piggy Bank. (Cassino). [GLOBAL] Uptime Ad. [C0DE] Consertando 'Invalid Password' [PROGRAM] Quest Maker
Postado Julho 28, 2015 9 anos Não é uma função.. no começo do script vc declarou isso daqui: local talkState = {} Nisso vc criou um vetor/array/tabela de N elementos não definidos, ou seja, uma tabela vazia. provavelmente vc tb terá essa linha declarada no seu script: local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid Nela nós verificamos se o NPCHANDLER_CONVbehavior é igual a CONVERSATION_DEFAULT, ou seja, se a "pessoa" que o NPC está conversando é a "pessoa" padrão, em outras palavras, verifica se o npc não está falando com ninguém. Os valores serem iguais implica que ele não está falando com ngm, logo a variavel talkUser apresenta valor 0, do contrário ele apresenta o valor do uid do jogador que está falando (o cid). Quando fazemos um TalkState[talkUser] estamos na verdade apontando pra um local da memória desse vetor e dizendo seu valor, pra poder controlar em que ponto da conversa com o player o npc está. Fica meio complicado te explicar isso tudo sem vc ter uma base computacional, mas vou me esforçar: Imagina que seu pc tem diversos 0's na memória. 00000000000000000000000000000000000000000000000000000000000 Daí você extrai o cid de um player e ele vai retornar o uid do player, que é um numero um tanto quanto grande. Pra efeitos de exemplo eu vou supor que o uid é um numero entre 0 a 20. Digamos então que meu cid pro exemplo seja 14, logo eu estou dizendo que a partir de agora o talkUser é 14. Ao fazer TalkState[14] eu estou modificando essa parte da memória (os zeros) e editando o décimo quarto 0 dela pra um novo valor. TalkState[14] = 3 e nossa memória se torna isso: 00000000000000300000000000000000000000000000000000000000000 E aí podemos verificar em qualquer parte do script do npc em que ponto da conversa estamos com base nisso e dar respostas diferentes pra cada texto que o player diz. Isso pode soar bem estúpido mas se torna muito útil quando temos diversas opções com yes/no. Quando o NPC captar o yes/no, oque ele vai responder? Não dá pra ter uma resposta padrão pra todas as opções que incluem o yes/no então nós usamos o TalkState pra haver essa diferenciação. Espero ter ajudado Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá! "Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda (obg ao @Beeny por fazer essa linda sign <3)
Postado Julho 28, 2015 9 anos Autor Vlwz deu pra entender ( os 2 ajudaram <3) REP+ Procuro alguem para me ensinar Script DragonOt (8.6/200x Rate/25x Skill/10x Magic/New Vocations/New Spells/Mapa Edited[RPG]/New Monsters and Quests) -- Em Andamento Contatos: Skype-- giovani.fogarolli LoLzin-- Maxzer0 Mapping -- Aprendendo Scripter -- Aprendendo ~~Maxzer0~~
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.