Ir para conteúdo
  • 0

[Pedido] Npc Promotion !


teteusinhu

Pergunta

Bom galera havia criado um tópico anterior e procurei um relacionado com o que eu queria e achei um do demonbholder :

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local vip = 5808

if(msgcontains(msg, 'promote') or msgcontains(msg, 'promotion')) then
selfSay('Voce gostaria de ser promovido a essa vocaçao por 1 Brain KoD da Promotion?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerLevel(cid) >= 20 and getPlayerVocation(cid) < 30) then
if(doPlayerRemoveItem(cid, vip, 1) == TRUE) then
setPlayerPromotionLevel(cid, 1)
selfSay('Voce foi promovido.', cid)
else
selfSay('Voce nao tem o Brain KoD da Promotion.', cid)
end
else
selfSay('Desculpe, voce ja foi promovido ou nao tem o nivel necessario.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ate mais.', cid)
end

return true
end

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

 

Mas tem um porém no do cara era umas vocações lá, no meu caso são as vocações CASP SEJA SORCERER(ID 1)-- Vip Sorcerer, ID 31 CASO SEJA DRUID(ID 2) -- Vip Druid, ID 32 CASO SEJA PALADIN(ID 3) -- Vip Paladin, ID 33 e CASO SEJA KNIGHT(ID 4 -- Vip Knight, ID 34. então gostaria que fossem essas a que seria promovido no npc. Só me ajudem no script acima pois o npc em si ja foi feito ;D Abraços...

 

 

________________

 

O script do buy vip é o seguinte:

local config = {
vip = "yes",
storage = 13710
}

function onSay(cid, words, param, channel)

               local days = 5
               local storageplayer = getPlayerStorageValue(cid, 13710)
               if doPlayerRemoveItem(cid, 2160,1000) then
                       doPlayerAddPremiumDays(cid, days)
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip.")
               else
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de 10kk!!!")
               end                

       return TRUE
end

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

5 respostass a esta questão

Posts Recomendados

  • 0

cara vc fez uma bagunça.

e o seguinte e so vc mudar os nomes no vocations.xml

simples e facil

onde esta escrito a master sorcerer coloque Vip Sorcerer e assim por diante.

ai voce nem vai precizar modificar esse scrip

Link para o comentário
Compartilhar em outros sites

  • 0

Mas Lukas é o seguinte, o que eu queria realmente é que esse npc vendesse realmente a Vip Promotion, ou seja, se for sorcerer,master sorcerer, subwat srocerer virar vip sorcerer, se for druid, master druid, subwat druid virar vip druid, e assim com paladin e kinight, entende ? Pois não queria alterar nenhuma das vocações ja existentes criando esta nova. Poruqe criadas ja estão só falta vender-las neste npc.

___________________________________________________________________________________________________________

Abraços,

teteusinhu.

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

  • 0

Use este script para o npc:

 

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

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local vip = 5808

if(msgcontains(msg, 'promote') or msgcontains(msg, 'promotion')) then
selfSay('Voce gostaria de ser promovido a essa vocaçao por 1 Brain KoD da Promotion?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerLevel(cid) >= 20 and getPlayerVocation(cid) < 31) then
if(doPlayerRemoveItem(cid, vip, 1) == TRUE) then
setPlayerStorageValue(cid, 35870, getPlayerVocation(cid))
selfSay('Voce foi promovido.', cid)
doRemoveCreature(cid)
else
selfSay('Voce nao tem o Brain KoD da Promotion.', cid)
end
else
selfSay('Desculpe, voce ja foi promovido ou nao tem o nivel necessario.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ate mais.', cid)
end

return true
end

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

 

Crie um arquivo .lua em creaturescripts e cole isto nele:

 

function onLogin(cid)

local sorc = {1,5,9}
local druid = {2,6,10}
local paly = {3,7,11}
local kina = {4,8,12}

if isInArray(sorc, getPlayerStorageValue(cid, 35870)) then
vocation = 31
elseif isInArray(druid, getPlayerStorageValue(cid, 35870)) then
vocation = 32 
elseif isInArray(paly, getPlayerStorageValue(cid, 35870)) then
vocation = 33
elseif isInArray(kina, getPlayerStorageValue(cid, 35870)) then
vocation = 34
end

if getPlayerStorageValue(cid, 35870) ~= -1 then
if getPlayerPremiumDays(cid) > 0 then
doPlayerSetVocation(cid, vocation)
else
doPlayerSetVocation(cid, getPlayerStorageValue(cid, 35870))
end
end

return TRUE
end

 

Creio que deve funcionar.

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

×
×
  • Criar Novo...