Ir para conteúdo
  • 0

Npc Que Muda De Voc 8.57


madnf

Pergunta

Eu to querendo o script de um npc que muda a sua vocation por 10 runas antigas

 

runa antiga = É 1 runa que eu fiz que vai ser nescessario para pagar pela vocation... ela nao tem efeito, só serve como "dinheiro especial"

 

a versão do meu ot é 8.57

Styller Yourots Styller Yourots 0.7.2.

 

Aguardo :)

 

ah , não sei se esta é a area certa,porfavor se não for,mude-a e desculpe :)

 

Duvidas sobre a minha ortografia kkk pergunta ae:

 

:hi:

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

Olá,

 

local cfg = {
  itemid = xxxx, --Substitua 'xxxx' pelo ID do item usado na Promotion
  qnt = xx --Substitua 'xx' pela quantidade do item requerido
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

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 msgCallback(cid, type, msg)
  if(not npcHandler:isFocused(cid)) then
     return false
  end

  local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'promotion')then
	npcHandler:say("Are you sure?", cid)
	talkState[talkUser] = 1
end

if(msgcontains(msg, 'yes') and talkState[talkUser] == 1)then
	if(doPlayerRemoveItem(cid, cfg.itemid, cfg.qnt) == TRUE)then
		npcHandler:say("From now, you are promoted!", cid)
		setPlayerPromotionLevel(cid, 1)
		talkState[talkUser] = 0
		npcHandler:releaseFocus(cid)
	else
		npcHandler:say("You don't have ".. cfg.qnt .." ".. getItemNameById(cfg.itemid) .."", cid)
		talkState[talkUser] = 0
		npcHandler:releaseFocus(cid)
	end
else
	npcHandler:say("Then not", cid)
	talkState[talkUser] = 0
	npcHandler:releaseFocus(cid)
end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Coloque o conteúdo acima em um arquivo LUA dentro da pasta data/npc/scripts. Após isso, crie um arquivo XML na pasta data/npc e coloque o conteúdo abaixo:

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="John" script="data/npc/scripts/NOME DO ARQUIVO.lua" walkinterval="3500" floorchange="0">
       <health now="200" max="200"/>
       <look type="128" head="114" body="132" legs="114" feet="115" addons="2"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|! I can {promotion} you for 10 ancient runes"/>
		<parameter key="message_farewell" value="Bye |PLAYERNAME|!"/>
	</parameters>
</npc>

 

É extremamente importante que você coloque em NOME DO ARQUIVO, o nome do arquivo LUA que você deu.

Você só precisa configurar duas coisas no script LUA,

 

local cfg = {
  itemid = xxxx, --Substitua 'xxxx' pelo ID do item usado na Promotion
  qnt = xx --Substitua 'xx' pela quantidade do item requerido
}

 

Auto-explicativo

 

Até mais,

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

local cfg = {
  itemid = 2280, --Substitua '2280' pelo ID do item usado na Promotion
  qnt = 10 --Substitua '10' pela quantidade do item requerido
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

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 msgCallback(cid, type, msg)
  if(not npcHandler:isFocused(cid)) then
     return false
  end

  local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'promotion')then
	npcHandler:say("Are you sure?", cid)
	talkState[talkUser] = 1
end

if(msgcontains(msg, 'yes') and talkState[talkUser] == 1)then
	if(doPlayerRemoveItem(cid, cfg.itemid, cfg.qnt) == TRUE)then
		npcHandler:say("From now, you are promoted!", cid)
		setPlayerPromotionLevel(cid, 1)
		talkState[talkUser] = 0
		npcHandler:releaseFocus(cid)
	else
		npcHandler:say("You don't have ".. cfg.qnt .." ".. getItemNameById(cfg.itemid) .."", cid)
		talkState[talkUser] = 0
		npcHandler:releaseFocus(cid)
	end
else
	npcHandler:say("Then not", cid)
	talkState[talkUser] = 0
	npcHandler:releaseFocus(cid)
end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Gaios" script="data/npc/scripts/monkey.lua" walkinterval="3500" floorchange="0">
       <health now="200" max="200"/>
       <look type="128" head="114" body="132" legs="114" feet="115" addons="3"/>
               <parameters>
                       <parameter key="message_greet" value="Hello |PLAYERNAME|! I can {promotion} you for 10 ancient runes"/>
                       <parameter key="message_farewell" value="Bye |PLAYERNAME|!"/>
               </parameters>
</npc>

 

 

 

FICOU ASSIM, mais na hora de ligar o ot...

 

ligandoot.png

 

da esse erro (não é o erro do npc Pythius The Rooten)

 

 

HEELP! , ah e você pode me dizer seu nome , se o npc funcionar, eu coloco seu nome nele :)

 

não sei se pode ser isso mais, não devia terq editar pra que vocation o npc vai mudar?,seila as vezes é isso... se sim: fala onde tenho que editar...

Editado por madnf
Link para o comentário
Compartilhar em outros sites

  • 0

local cfg = {
  itemid = xxxx, --Substitua 'xxxx' pelo ID do item usado na Promotion
  qnt = xx --Substitua 'xx' pela quantidade do item requerido
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

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 msgCallback(cid, type, msg)
  if(not npcHandler:isFocused(cid)) then
     return false
  end

  local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

       if(msgcontains(msg, 'promotion')then
               npcHandler:say('Are you sure?', cid)
               talkState[talkUser] = 1
       end

       if(msgcontains(msg, 'yes') and talkState[talkUser] == 1)then
               if(doPlayerRemoveItem(cid, cfg.itemid, cfg.qnt) == TRUE)then
                       npcHandler:say('From now, you are promoted!', cid)
                       setPlayerPromotionLevel(cid, 1)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               else
                       npcHandler:say('You don\'t have '.. cfg.qnt ..' '.. getItemNameById(cfg.itemid) ..'', cid)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               end
       else
               npcHandler:say("Then not", cid)
               talkState[talkUser] = 0
               npcHandler:releaseFocus(cid)
       end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Tente agora

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

Eu tentei e, denovo deu erro, so que agora parece que é outro erro...

ah... eu quero que o npc que eu fiz mude a voc do player por 10 runas antigas pra voc que eu criei = monkey... o id dela é 13...

 

ai vai a SS do erro:

oterrro2.png

Editado por madnf
Link para o comentário
Compartilhar em outros sites

  • 0

Tente este:

 

local cfg = {
  itemid = xxxx, --Substitua 'xxxx' pelo ID do item usado na Promotion
  qnt = xx --Substitua 'xx' pela quantidade do item requerido
}

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

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 msgCallback(cid, type, msg)
  if(not npcHandler:isFocused(cid)) then
     return false
  end

  local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

       if(msgcontains(msg, 'promotion'))then
               npcHandler:say('Are you sure?', cid)
               talkState[talkUser] = 1
       end

       if(msgcontains(msg, 'yes') and talkState[talkUser] == 1)then
               if doPlayerRemoveItem(cid, cfg.itemid, cfg.qnt) then
                       npcHandler:say('From now, you are promoted!', cid)
                       setPlayerPromotionLevel(cid, 1)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               else
                       npcHandler:say('You don\'t have '.. cfg.qnt ..' '.. getItemNameById(cfg.itemid) ..'', cid)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               end
       else
               npcHandler:say("Then not", cid)
               talkState[talkUser] = 0
               npcHandler:releaseFocus(cid)
       end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Somente consertei o do Oneshot.

 

flw

Link para o comentário
Compartilhar em outros sites

  • 0

Apocarai parabens, funcionou, na hora de abrir o server, não deu nenhum erro...

 

+ tipo...

eu vo com as 10 runas antigas no npc falo promotion

e nada rola...

talvez se eu trocar 'promotion' por {promotion}???

 

ai vai 1 SS

 

printttk.png

Link para o comentário
Compartilhar em outros sites

  • 0

Então tente:

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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 msgCallback(cid, type, msg)
  if(not npcHandler:isFocused(cid)) then
     return false
  end

  local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local cfg = {
  itemid = xxxx, --Substitua 'xxxx' pelo ID do item usado na Promotion
  qnt = xx --Substitua 'xx' pela quantidade do item requerido
}

       if msgcontains(msg, "promotion") then
               selfSay("I can promote you for " .. cfg.qnt .. "" .. getItemNameById(cfg.itemid) .. ". Are you sure?", cid)
               talkState[talkUser] = 1

       elseif(msgcontains(msg, "yes") and talkState[talkUser] == 1)then
               if doPlayerRemoveItem(cid, cfg.itemid, cfg.qnt) then
                       selfSay('From now, you are promoted!', cid)
                       setPlayerPromotionLevel(cid, 1)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               else
                       selfSay('You don\'t have '.. cfg.qnt ..' '.. getItemNameById(cfg.itemid) ..'', cid)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               end
       elseif msg == "no" and talkState[talkUser] == 1 then
               selfSay("Then not", cid)
               talkState[talkUser] = 0
               npcHandler:releaseFocus(cid)
       end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

  • 0

Última:

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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)
   if(not npcHandler:isFocused(cid)) then
       return false
   end

  local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local cfg = {
  itemid = xxxx, --Substitua 'xxxx' pelo ID do item usado na Promotion
  qnt = xx --Substitua 'xx' pela quantidade do item requerido
}

       if msgcontains(msg, "promotion") then
               selfSay("I can promote you for " .. cfg.qnt .. "" .. getItemNameById(cfg.itemid) .. ". Are you sure?", cid)
               talkState[talkUser] = 1

       elseif(msgcontains(msg, "yes") and talkState[talkUser] == 1)then
               if doPlayerRemoveItem(cid, cfg.itemid, cfg.qnt) then
                       selfSay('From now, you are promoted!', cid)
                       setPlayerPromotionLevel(cid, 1)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               else
                       selfSay('You don\'t have '.. cfg.qnt ..' '.. getItemNameById(cfg.itemid) ..'', cid)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               end
       elseif msg == "no" and talkState[talkUser] == 1 then
               selfSay("Then not", cid)
               talkState[talkUser] = 0
               npcHandler:releaseFocus(cid)
       end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

flw

Link para o comentário
Compartilhar em outros sites

  • 0

pow cara, deu certo a parte do promotion mais o resto, não kkk

 

o erro foi esse:

 

printdoot.jpg

 

ae, depois eu fui olha no server, deu otro erro:

s9fgg.png

Link para o comentário
Compartilhar em outros sites

  • 0

Ta difícil, tenta assim:

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)

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

local talkState = {}

function creatureSayCallback(cid, type, msg)
   if(not npcHandler:isFocused(cid)) then
       return false
   end

  local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

local cfg = {
  itemid = xxxx, --Substitua 'xxxx' pelo ID do item usado na Promotion
  qnt = xx --Substitua 'xx' pela quantidade do item requerido
}

       if msgcontains(msg, "promotion") then
               selfSay("I can promote you for " .. cfg.qnt .. "" .. getItemNameById(cfg.itemid) .. ". Are you sure?", cid)
               talkState[talkUser] = 1

       elseif(msgcontains(msg, "yes") and talkState[talkUser] == 1)then
               if doPlayerRemoveItem(cid, cfg.itemid, cfg.qnt) then
                       selfSay('From now, you are promoted!', cid)
                       setPlayerPromotionLevel(cid, 1)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               else
                       selfSay('You don\'t have '.. cfg.qnt ..' '.. getItemNameById(cfg.itemid) ..'', cid)
                       talkState[talkUser] = 0
                       npcHandler:releaseFocus(cid)
               end
       elseif msg == "no" and talkState[talkUser] == 1 then
               selfSay("Then not", cid)
               talkState[talkUser] = 0
               npcHandler:releaseFocus(cid)
       end
      return TRUE
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

  • 0

woow parabens, funfo...

mais nao do jeito que eu queria....

tipo de kina eu passei pra elite knight..

eu quero passa da voc atual, para a que eu fiz, Monkey o id dela é 13...

Link para o comentário
Compartilhar em outros sites

  • 0

Pq ta pra promover, lá tem:

setPlayerPromotionLevel(cid, 1)

Que promove para a primeira promotion.

 

Pode tentar usar no lugar:

doPlayerSetVocation(cid, 13)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...