quinta-feira, 9 de fevereiro de 2012

FFD Fest Food Delivery


Fast Food Delivery (FFD)
Nome: Fast Food Delivery (FFD)
Versão: 1.0 (Caso eu melhore-o, postarei novas versões)

Versão do Tibia: 8.5+ (não testado em versões anteriores)
Teste: TFS cryingdamson

Autor: PeJuGe (97%)

Nível: Iniciante (sou iniciante =D)

Outros Créditos:
2% Skyen Hasus e VConde2 -> Organização e concerto de um erro
1% MotoBoy -> Idéia do Fast Food (http://forums.otserv.com.br/f29/scri...-system-74781/)

Comentário: Este script consiste na entrega de alimento (facilmente adaptável para qualquer item) em um determinado tempo, cobrando na entrega.
Olá a todos, este é meu primeiro script (demorei um pouco pra fazer devido encontrar muitos erros). Bom, vi um script parecido hoje (acredite, apesar de ser meu primeiro script não copiei nada), do Notoriouss, mesmo assim postarei, pois o meu é mais completo e acredito ser mais educadito também =D.


Instalação

Script:

Código:
--[[ Autror : PeJuGe (2009)
Outros créditos: 4% Skyen Hasus e VConde2 -> Organização e concerto de um erro
1% MotoBoy -> Idéia do Fast Food
EXCLUSIVIDADE: OTSERV.COM.BR
NÃO REMOVA OS CRÉDITOS
]]--

--Configurações
local comidas = { --> Coloque respectivamente "Nome" e Preço
["Meat"] = 50,
["Ham"] = 90,
["Fish"] = 150,
["Dragon Ham"] = 200
}
local tempo = 5 --> Tempo da entrega em segundos
local container = "Present" --> Pacote em que será entrege o item

local msg = MESSAGE_STATUS_CONSOLE_BLUE --> Tipo da mensagem
local sat = 350 --> Cor da mensagem animada
-- Fim das Configurações

function onSay(cid, words, param)

_, _, param1, param2= param:find("([%s%w]+) ([%s%w%d]+)")
local param2 = tonumber(param2)

if (param == '') then
return doPlayerSendTextMessage(cid, msg, "Atendente: Bem vindo ao Fast Food Delivery. \nPara ver nosso cardápio utilize: !food cardapio\nPara fazer o seu pedido utilize: !food Alimento Quantidade (Ex.: !food Meat 5).\nPara cancelar seu pedido utilize: !food cancel")
elseif (param == 'cardapio') then
doPlayerSendTextMessage(cid, msg, "Atendente: Aqui no Fast Food Delivery vendemos:")
for k,v in pairs(comidas) do
doPlayerSendTextMessage(cid, msg, k.." por "..v.." gold(s) cada.")
end
return TRUE
elseif (param == 'cancel') then
if getPlayerStorageValue(cid, 2002) == 1 then
setPlayerStorageValue(cid, 2002, 0)
doPlayerSendTextMessage(cid, msg, "Atendente: Sua entrega foi cancelada. Ligue novamente quando desejar.")
doSendAnimatedText(getCreaturePosition(cid), "Cancelado", 350)
else doPlayerSendTextMessage(cid, msg, "Atendente: Desculpe, não há nenhum pedido registrado em seu nome.")
end
return TRUE
end

if comidas[param1] ~= nil then
if getPlayerStorageValue(cid, 2002) == 0 then
if param2 ~= nil or param2 == number then
if param2 > 100 or param2 == 0 then
return doPlayerSendTextMessage(cid, msg, "Atendente: Desculpe, nosso entregador carrega no máximo 100 unidades e no mínimo 1 unidade.")
else if getPlayerMoney(cid) > comidas[param1] * param2 then
doPlayerSendTextMessage(cid, msg, "Atendente: Obrigado por utilizar o Fast Food Delivery. Seu pedido foi registrado e sua entrega chegará dentro de "..tempo.." segundo(s).\nPedido: "..param2.." "..param1.." por "..comidas[param1].." gold(s) cada.\nTotal: "..comidas[param1] * param2.." gold(s).")
doSendAnimatedText(getCreaturePosition(cid), "Pedido", sat)
setPlayerStorageValue(cid, 2002, 1)
stopEvent(onSay)
addEvent(MakeDelivery, 6000, cid, getItemIdByName(param1), comidas[param1],getItemIdByName(container), param2)
else doPlayerSendTextMessage(cid, msg, "Atendente: Desculpe, você não tem dinheiro suficiente.")
end
end
else return doPlayerSendTextMessage(cid, msg, "Atendente: Por favor, informe um número (menor que 100 e maior que 0) com a quantidade desejada.")
end
else return doPlayerSendTextMessage(cid, msg, "Atendente: Por favor, aguarde a entrega do seu produto para fazer um novo pedido.\nPara cancelar seu pedido utilize: !food cancel")
end
else return doPlayerSendTextMessage(cid, msg, "Atendente: Desculpe, não vendemos este item ou a quantidade determininada é invalida.\nPara mais informações utilize: !food")
end

return TRUE
end

function MakeDelivery(uid, item, price, container, quantity)
if getPlayerStorageValue(uid, 2002) == 1 then
if doPlayerRemoveMoney(uid, price * quantity) == true then
doAddContainerItem(doPlayerAddItem(uid, container, 1), item, quantity)
doSendAnimatedText(getCreaturePosition(uid), "Entrega!", sat)
doSendMagicEffect(getCreaturePosition(uid), 2)
setPlayerStorageValue(uid, 2002, 0)
else doPlayerSendTextMessage(uid, msg, "Entregador: Desculpe, a entrega pode ser feita somente mediante o pagamento, ligue novamente quando tiver dinheiro.")
setPlayerStorageValue(uid, 2002, 0)
end
end
return TRUE
end
Agora surge a pergunta, como instalá-lo? Simples, siga os 3 passos a seguir e você terá seu script totalmente usável


1º Passo:
Crie um arquivo com nome fastfooddelivery (caso não saiba criar arquivos lua vá em Downloads e baixe ou copie um existente e renomeie) na pasta data/talkactions/scripts e copie o conteúdo (ou faça o download abaixo), "OMG, AINDA NÃO FUNCIONA", siga o proximo passo


2º Passo:
Vá a talkactions/talkactions.xml e copie este trecho para o arquivo:
<talkaction log="yes" words="!food" event="script" value="fastfooddelivery.lua"/>
"OMG de novo, esse cara de de zuação O.o uhauauh, quando eu entro as vezes fala pra eu mandar !food cancel". Claro, é porque tem que zerar quando o player sai sem pegar o food, siga o 3º Passo.


3º Passo: (opcional)
Último passo, este é opcional, pois é para corrigir um erro, como dito anteriormente, caso não queira instalar o player pode fazer isto manualmente dizendo !food cancel (diga !food quando estiver logado para saber os comandos ou leia o tópico seguinte =D).
Vá até a pasta data/creaturescripts e insira o trecho a seguir logo abaixo de onLogin(cid):
setPlayerStorageValue(cid, 2002, 0)
"OMG, ACABOU? YES =D" Pronto, seu script está instalado, agora basta aprender a configurá-lo.[/spoiler]


Configuração
Este script é bastante simples e por isso não requer muitas configurações. Ao final destes passos você saberá perfeitamente utilizar seu script =D. (já sei "OMG, DE NOVO ESSES PASSOS", relax, são menores uhauhauh)


1º Passo:
Configurar os alimentos que serão vendidos: (sugiro que faça o download no final do tópico e acompanhe com as linhas):

-- Linha 9 --
local comidas = { --> Coloque respectivamente "Nome" e Preço
["Meat"] = 50,
["Ham"] = 90,
["Fish"] = 150,
["Dragon Ham"] = 200
}
}
Bem simples, basta colocar o nome do alimento que você deseja inserir entre colchetes e posteriores aspas [" "] inserindo então sinal = e agora o valor de cada alimento. Simples né? Sabia que você também acharia .


2º Passo:
Configurar o tempo da entrega (caso sinta necessidade poste no tópico pedindo para colocar variação, por exemplo, se colocar para demorar 5 segundos, demorar de 1 a 5, no momento ele entrega no segundo determinado sempre, particularmente não acho necessidade de variação para não pois pesa o script) e o container (backpack, bag, present, ou qualquer outro), veja a seguir:
-- Linha 15 --
local tempo = 5 --> Tempo da entrega em segundos
local container = "Present" --> Pacote em que será entrege o item
Este também é simples, basta colocar em tempo o tempo desejado. lembrando sempre que é em segundos, em container coloque o nome do container desejado.


3º Passo: (opcional)
-- Linha 18 --
Este passo é para configuração da cor das mensagens e mensagens animadas, caso tenha dificuldade neste passo pode pulá-lo, não mudará em nada, já está uma gracinha (que gay uhahuauha, mas ta rox ).
local msg = MESSAGE_STATUS_CONSOLE_BLUE --> Tipo da mensagem
local sat = 350 --> Cor da mensagem animada
Em msg (no caso MESSAGE_STATUS_CONSOLE_BLUE) coloque o tipo de mensagem desejada e o tipo de mensagem animada em sat(no caso 350). Pronto, está configurado seu script =D. Qualquer outra informação você pode ver mais facilmente pelo jogo, o qual já é bastante explicativo, basta utilizar !food, não se esqueça de reiniciar o servidor ao instalar.


Download(s)

Script organizado: http://www.mediafire.com/?alwnwroommn


...
Obrigado a todos que leram esse monte de coisa uhahuah, este é meu primeiro script e qualquer dúvida ou pedido de complemento poste aqui no tópico. Se possível fazer sugestões quanto ao function MakeDelivery quando o player faz o pedido e da log out, pois não deveria enviar a mensagem de erro:"luaGetPlayerStorageValue(). Player not found" no console :/)

Espero que se divirtam e não deixem de comentar em

Agradecimentos: (não são créditos, agradecimentos huauha)
Skyen Hasus por postar maravilhosos tutoriais =D (todos os outros também, mas é que ele posta mais uahuahua)
Todos que postam script e enriquecem este fórum com bons scripts


Edit 28/11 -> Podem esperar a versão 2.0 , novas opções vem aí hehe (assim que eu aprender algumas coisas uhahua)

Nenhum comentário:

Postar um comentário