Relacionamento
Namoro, noivado e casamento entre jogadores. O casal sobe de nível com ações juntos, resgata recompensas, escreve um diário, marca encontros, divide um baú e aparece com um ícone para o par. O casamento acontece com o padre, no altar.
Precisa de: krs
Só funciona no framework krs. Usa também target, inventory, chest e o anim.
Instalação
ensure marriageColoque depois do krs, do target e do anim. Veja a ordem completa.
O script não cria as tabelas marriage, marriage_journal, marriage_letters, marriage_likes e marriage_profiles. Elas vêm no database.sql da base do krs.
Os itens usados já existem no krs: proposal_ring, rose, heart_balloon, chocolate_box, teddy_bear, couple_bracelet, love_letter e alliance3.
Como usar
| Etapa | Como acontece |
|---|---|
| Namoro | Mire em outro jogador, a até Distance metros, e peça. A pessoa precisa aceitar |
| Noivado | No painel ou usando o item proposal_ring, com o par por perto. Se a pessoa recusar, o anel volta |
| Casamento | Os dois noivos vão ao altar. Quem fala com o padre paga Wedding.Price, o outro aceita, e os dois ganham aliança |
| Término | No painel, sem custo. Apaga o diário e as curtidas. O divórcio é anunciado para a cidade |
Com o item alliance3 na mochila de quem falou com o padre, o casal ganha a aliança alliance2. Sem ele, a aliança alliance.
/relacionamento abre o painel. Mirar em outro jogador também mostra a opção de ver o relacionamento dele e curtir.
Ações do casal
| Ação | Regra | XP |
|---|---|---|
| Mandar amor | O par precisa estar na cidade | 10 |
| Presente | Item de Gifts, com o par por perto. O couple_bracelet dá uma pulseira para cada um | 25 |
| Abraço | Com o par por perto e aceite | 15 |
| Beijo | Com o par por perto e aceite | 15 |
| Diário | Até Journal entradas por casal | 20 |
| Encontro | Com o par por perto e aceite. Espera de DateCooldown segundos por tipo | Ver Dates |
| Transferir dinheiro | Do banco de um para o banco do outro, no painel | Nenhum |
Cada tipo de ação dá XP uma vez a cada Xp.Cooldown segundos, fora o encontro. O casamento dá Wedding.Xp.
Cada nível tem uma recompensa em Rewards, que vale uma vez por casal: quem resgata primeiro leva.
Itens
| Item | O que faz ao usar |
|---|---|
love_letter | Escreve uma carta, que vira um item para ler |
rose, heart_balloon, teddy_bear | Segura o item na mão |
proposal_ring | Abre o pedido de noivado |
Comandos
| Comando | O que faz |
|---|---|
/relacionamento | Abre o painel |
Configuração
Tudo fica em shared-side/config.lua. Os textos são só em português, sem suporte a ox:locale. O idioma não muda com ox:locale.
| Opção | Padrão | O que muda |
|---|---|---|
Statuses | Namorando, Noivos, Casados | Nome de cada estado |
MaxPartners | 3 | Relacionamentos por personagem |
MaxEngaged | 1 | Noivados por personagem |
MaxMarried | 1 | Casamentos por personagem |
AllowWhileMarried | false | true permite novo relacionamento de quem é casado |
Distance | 3.0 | Distância do par, em metros |
Wedding.Price | 20000 | Preço do casamento |
Wedding.Model | "ig_priest" | Modelo do padre |
Wedding.Coords | -766.90, -23.43, 41.08, 211.33 | Lugar do padre |
Wedding.Radius | 8.0 | Distância máxima dos noivos até o altar, em metros |
Wedding.Xp | 500 | XP do casamento |
Xp.PerLevel | 100 | XP por nível |
Xp.Levels | 30 | Maior nível |
Xp.Cooldown | 60 | Espera para ganhar XP de novo com a mesma ação, em segundos |
Xp.Gains | ver acima | XP de cada ação |
Rewards | 30 recompensas | Item e quantidade, ou dinheiro, de cada nível |
Dates | 5 encontros | Nome e XP de cada encontro |
DateCooldown | 3600 | Espera para repetir um encontro, em segundos |
Emotes | abraco1, beijo8 | Animações do abraço e do beijo |
Gifts | 5 itens | Itens aceitos como presente |
Held | 3 itens | Animação e modelo dos itens seguros na mão |
Journal | 50 | Entradas do diário por casal |
Letter | 600 | Tamanho máximo da carta e do diário |
Chest | Slots = 16, Weight = 50 | Baú do casal |
Icon | ver config.lua | Distância, altura, tamanho e cores do ícone sobre o par |
Dinheiro de recompensa cai no banco de quem resgata.
Para programadores
-- servidor: confere o baú do casal; tamanho ou false
exports.marriage:Chest(charId, "Casal:<id do relacionamento>")Estado: Player(source).state.Relacionamento tem dating, engaged ou married, do relacionamento ativo.
Eventos: marriage:Request (servidor, com o id do alvo) começa o namoro. marriage:Panel (cliente) abre o painel. marriage:Card (cliente, com o id do alvo) mostra o relacionamento de outro jogador.
