Ir para conteúdo
  • Cadastre-se

PEDIDO Segunda promotion VIP e NPC [TFS 1.0]


Posts Recomendados

 

Não testei:

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say('you have already received the promotion', cid)
		return true
	end

	if msgcontains(msg:lower(), 'promotion') then
		npcHandler:say('you are sure?', cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), 'yes') and npcHandler.topic[cid] == 1 then
		if player:getPromotion() == 1 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say('you just received a new promotion', cid)
		       		player:setVocation(player:getVocation() + 4)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say('you no have money', cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say('You do not have any vip days.', cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say('you no have first promotion', cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), 'no') and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

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

Opa amigo testei aqui, quando fala promotion, o npc responde are you sure ai vc fala "yes" ela não responde, e aparece isso no distro:

Lua Script Error: [Npc interface]

data/npc/scripts/Queen Alice.lua:onCreatureSay

data/npc/scripts/Queen Alice.lua:31: attempt to call method 'getPromotion' (a nil value)

stack traceback:

    [C]: in function 'getPromotion'

    data/npc/scripts/Queen Alice.lua:31: in function 'callback'

    data/npc/lib/npcsystem/npchandler.lua:410: in function 'onCreatureSay'

    data/npc/scripts/Queen Alice.lua:10: in function <data/npc/scripts/Queen Alice.lua:10>

 

Up

Poxa alguem poderia ajudar o summ aqui, o pc dele nao roda tfs 1.0, por favor preciso mto desse script :(

poxa muita gente sabe mas poucos ajudam, complicado..

1545517_5.png

Link para o post
Compartilhar em outros sites
  • Respostas 42
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcH

local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcH

Tenta isso: local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parse

Tenta isso:

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getVocation():getPromotion() then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion())
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado por Snowsz (veja o histórico de edições)
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Tenta isso:

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getVocation():getPromotion() then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion())
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

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

Ola amigo, obrigado pela ajuda, na pratica funcionou sem erros, porem quando da look no personagem pra ver se mudou a promotion aparece "you have no vocation" ou seja o player ficou sem vocaçao hehehe acho que estamos próximos de resolver :)

aguardo respostas!

1545517_5.png

Link para o post
Compartilhar em outros sites

Ola amigo, obrigado pela ajuda, na pratica funcionou sem erros, porem quando da look no personagem pra ver se mudou a promotion aparece "you have no vocation" ou seja o player ficou sem vocaçao hehehe acho que estamos próximos de resolver :)

aguardo respostas!

Desculpe, acho que isso resolve:

 

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getVocation():getPromotion() then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion():getId())
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Desculpe, acho que isso resolve:

 

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getVocation():getPromotion() then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion():getId())
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Que isso cara, o que importa eh vc estar me ajudando hehehe, bom, fiz o teste com 1 sorcerer e um master sorcerer, ambos recebiam a promotion, mas não muda nada.. Continua como sorcerer/master sorcerer, no caso o que eu queria era que so quem tiver a primeira promotion (master sorcerer etc..) possa ter a segunda que seria a promotion vip.. Mas ambos estao recebendo a promotion, porem nao muda nada.. Continua como sorcerer e master sorcerer, mas já é um começo obrigado pela ajuda e aguardo respostas..

up

1545517_5.png

Link para o post
Compartilhar em outros sites

Tenta assim, to arriscando aqui kk:

ocal money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getStorageValue(STORAGEVALUE_PROMOTION) <= 0 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion())
		       		player:setStorageValue(STORAGEVALUE_PROMOTION, 1)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

 

Tenta assim, to arriscando aqui kk:

ocal money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getStorageValue(STORAGEVALUE_PROMOTION) <= 0 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion())
		       		player:setStorageValue(STORAGEVALUE_PROMOTION, 1)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

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

Nao deu, ta aparecendo que não tem a primeira promotion: 18:10 Queen Alice: You don't have the first promotion.

Vai que ta quase kkkk

 

1545517_5.png

Link para o post
Compartilhar em outros sites

Tenta dessa vez assim kk:
 

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getStorageValue(STORAGEVALUE_PROMOTION) == 1 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion())
		       		player:setStorageValue(STORAGEVALUE_PROMOTION, 2)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

 

Tenta dessa vez assim kk:

 

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getStorageValue(STORAGEVALUE_PROMOTION) == 1 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion())
		       		player:setStorageValue(STORAGEVALUE_PROMOTION, 2)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

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

Recebe a promotion mas quando da look aparece "You have no vocation" AUHSUHASHUAS

ta tenso..

1545517_5.png

Link para o post
Compartilhar em outros sites

A sim, faltou uma função, tenta agora:

 

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getStorageValue(STORAGEVALUE_PROMOTION) == 1 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion():getId())
		       		player:setStorageValue(STORAGEVALUE_PROMOTION, 2)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

 

A sim, faltou uma função, tenta agora:

 

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getStorageValue(STORAGEVALUE_PROMOTION) == 1 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(player:getVocation():getPromotion():getId())
		       		player:setStorageValue(STORAGEVALUE_PROMOTION, 2)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

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

Recebe a promotion, porem continua a mesma coisa, continua como "elder druid"..

1545517_5.png

Link para o post
Compartilhar em outros sites

Eu acho que como o andre... quer vai precisar salvar uma storage para verificar se o player tem vip e a segunda promotion, ai se o player não tiver vip a storage muda a vocação do player! apenas acho, não sei muito de scripts

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

Não queria fazer tabela, mas...

 

Tenta assim então:

local money = xxxx -- Quanto vai custar
local storage = 14542 -- Não mexer

local promotions = {
--[id da vocação atual] = id da vocação ganha,
[1] = 1,
[2] = 1,
[3] = 1,
[4] = 1,
}



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

	local player = Player(cid)

	if player:getStorageValue(storage) == 1 then
		npcHandler:say("You have already received the promotion.", cid)
		return true
	end

	if msgcontains(msg:lower(), "promotion") then
		npcHandler:say("You are sure?", cid)
		npcHandler.topic[cid] = 1
	end

	if msgcontains(msg:lower(), "yes") and npcHandler.topic[cid] == 1 then
		if player:getStorageValue(STORAGEVALUE_PROMOTION) == 1 then
		    if player:getVipDays() >= 1 then
		       	if player:removeMoney(money) then
		       		npcHandler:say("You just received a new promotion.", cid)
		       		player:setVocation(promotions[player:getVocation():getId()])
		       		player:setStorageValue(STORAGEVALUE_PROMOTION, 2)
		       		player:setStorageValue(storage, 1)
		       		npcHandler.topic[cid] = 0
		       	else
		       		npcHandler:say("You don't have money.", cid)
		       		npcHandler.topic[cid] = 0
		       	end
		    else
		       	npcHandler:say("You don't have any vip days.", cid)
		       	npcHandler.topic[cid] = 0
		    end
		else
		   	npcHandler:say("You don't have the first promotion.", cid)
		   	npcHandler.topic[cid] = 0
		end
    elseif msgcontains(msg:lower(), "no") and npcHandler.topic[cid] == 1 then
    	npcHandler:say('Bye!', cid)
    	npcHandler.topic[cid] = 0
    end

	return true
end

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

Configuração:

 

local promotions = {
--[id da vocação atual] = id da vocação ganha,
[1] = 1,
[2] = 1,
[3] = 1,
[4] = 1,
}

Onde tem [ ] fica o id da vocação atual que o player tem, e onde tem = 1, é o id da vocação promovida, vê se agora resolve...

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Eu acho que como o andre... quer vai precisar salvar uma storage para verificar se o player tem vip e a segunda promotion, ai se o player não tiver vip a storage muda a vocação do player! apenas acho, não sei muito de scripts

Sim e bem isso.. so vai ter a promotion se for vip, caso acabe a vip volta pra promotion normal..

1545517_5.png

Link para o post
Compartilhar em outros sites

Sim e bem isso.. so vai ter a promotion se for vip, caso acabe a vip volta pra promotion normal..

Testa lá...

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Testa lá...

Cara eu testei recebe a promotion, mas nao afeta em nada novamente, continua sendo elder druid, ve se eu fiz certo..

local promotions = {

--[id da vocação atual] = id da vocação ganha,

[5] = 9,

[6] = 10,

[7] = 11,

[8] = 12,

}

A promotion normal é do 5 ao 8

e a segunda promotion (VIP) é do 9 ao 12, ta certo isso?

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

1545517_5.png

Link para o post
Compartilhar em outros sites

Cara eu testei recebe a promotion, mas nao afeta em nada novamente, continua sendo elder druid, ve se eu fiz certo..

local promotions = {

--[id da vocação atual] = id da vocação ganha,

[5] = 9,

[6] = 10,

[7] = 11,

[8] = 12,

}

A promotion normal é do 5 ao 8

e a segunda promotion (VIP) é do 9 ao 12, ta certo isso?

Sim, eu acho...

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

eu tbm estou precisando disso, dei um re-post no seu tópico no forum da ot land. Vamos ver se alguém vai conseguir nos ajudar.

https://otland.net/threads/vip-promotions.231278/

Ta dificil cara, eu criei um topico la tambem ninguem responde =/

https://otland.net/threads/second-vip-promotion-and-npc-tfs-1-0.231160/#post-2228702

segue o meu tambem vai que aparece alguma alma caridosa

1545517_5.png

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.

  • Conteúdo Similar

    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo