Ir para conteúdo

Alugar Roupas


Skymagnum

Posts Recomendados

 

 


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
local outfits = { -- [Nome da roupa] = {preço, número da roupa(não erre), tempo que fica com ela}
["Roupa"] = {price = 35000, outfitId = {0, 0}, time = 24 * 60 * 60 * 1000}
}
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local sex = getPlayerSex(cid)
local check_storage = 38219
local outfit_storage = 38220
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local list = ""
if msgcontains(msg, 'outfit') then
selfSay('Eu alugo roupas, você quer ver quais são?. {lista}.', cid)
talkState[talkUser] = 2
elseif msgcontains(msg, 'lista') and talkState[talkUser] == 2 then
for name, info in pairs(outfits) do
selfSay('Aqui esta a lista', cid)
list = list .. "Nome: " .. name .. " - preço: " .. info.price .. " gp's/n"
end
talkState[talkUser] = 3
doPlayerPopupFYI(cid, list)
elseif outfits[msg] and talkState[talkUser] == 3 then
selfSay('Você quer a roupa ' .. msg .. '?')
talkState[talkUser] = 4
elseif msgcontains(msg, 'sim') and talkState[talkUser] == 4 then
if doPlayerRemoveMoney(cid, outfits[msg].price) then
if not(canPlayerWearOutfitId(cid, outfits[msg].outfitId)) then
if getPlayerStorageValue(cid, check_storage) - os.time() < 1 then
setPlayerStorageValue(cid, check_storage, outfits[msg].time + os.time())
setPlayerStorageValue(cid, outfit_storage, outfits[msg].outfitId[sex])
doPlayerAddOutfitId(cid, outfits[msg].outfitId[sex], 3)
selfSay('Pronto, pegue sua roupa por um dia', cid)
talkState[talkUser] = 0
else
selfSay('Você já esta com uma roupa alugada, espere', cid)
talkState[talkUser] = 0
end
else
selfSay('Você já pode usar essa roupa', cid)
talkState[talkUser] = 3
end
else
selfSay('Você não tem dinheiro suficiente', cid)
talkState[talkUser] = 0
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

@Atualizado agora com roupas variando de acordo com o sexo

outfitId = {0, 0}

primeiro e o female depois o male.

login.lua:

local out = getPlayerStorageValue(cid, 38220)
if getPlayerStorageValue(cid, 38219) - os.time() < 1 and canPlayerWearOutfitId(cid, out) then
doPlayerRemoveOutfitId(cid, out, 3)
end
Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

Gostei da ideia, mas olha só:

 if doPlayerRemoveMoney(cid, outfits[msg].price) then

Isso não deveria estar como último if, não? Caso contrária, o cara perde a grana mesmo se alguma coisa der errado.

Link para o comentário
Compartilhar em outros sites

Creio que não, pois olhe:

local gold = 35000
 
if gold then
if not false then
gold = gold - 3500
else
print("o")
end
else
print("m")
end
 
print(gold)

Ali seria como se ele não pudesse vestir a roupa.

 

Aqui seria se ele já pudesse vestir.

local gold = 35000
 
if gold then
if not true then
gold = gold - 3500
else
print("o")
end
else
print("m")
end
 
print(gold)

A variável gold permanece com o mesmo valor.

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

isso que vc coloco n tem nada a ver com o caso.

 

doPlayerRemoveMoney(cid, n)

remove n golds quando chamada, não pega a quantidade de gold.

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

De qualquer jeito, tem um erro aqui também:

elseif msgcontains(msg, 'sim') talkState[talkUser] == 4 and

Desculpa ficar apontando erro assim, mas é que depois o pessoal vai começar a reclamar que deu erro ou desistir de usar.

Link para o comentário
Compartilhar em outros sites

De qualquer jeito, tem um erro aqui também:

elseif msgcontains(msg, 'sim') talkState[talkUser] == 4 and

Desculpa ficar apontando erro assim, mas é que depois o pessoal vai começar a reclamar que deu erro ou desistir de usar.

Vlw, eu fiz rapidão, esse aí nem tinha visto.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...