Ir para conteúdo
Entre para seguir isso  
Antharaz

Event points - parte scripting

Recommended Posts

Antharaz    4
Antharaz

Nome: Event points

Tipo: Functions

Autor: Antharaz

Versão testada: 0.3.6 mas deve funcionar para todas

Descrição: Pensei em formar um novo tipo de ranking para quem ganha cada evento, logo eles ganhariam event points que seriam acumulativos. Esses event points poderão (ou não, depende de você) ser trocado por itens no shop do site. O ranking será por player e os itens no shop serão comprados de acordo com os events points da account, ou seja, se um char seu tem 300 event points e o outro tem 650, no total você terá 950 event points para gastar no shop. Além disto, você pode por itens no shop do site por premmy points como é o padrão. Creio que seja um bom sistema para qualquer tipo de ot.

 

 

Primeiramente, execute as querys abaixo no seu phpmyadmin para adicionar as colunas neecessárias nas respectivas tabelas:

 

ALTER TABLE `accounts` ADD `event_points` INT NOT NULL DEFAULT '0'
ALTER TABLE `players` ADD `event_points` INT NOT NULL DEFAULT '0' 

 

 

Agora vá em data/lob/050-functions.lua e coloque no final, embaixo de tudo:

 

function getEventPoints(cid,type)
local pid = type == "accounts" and getPlayerAccountId(cid) or getPlayerGUID(cid)
local hname = db.getResult("SELECT `event_points` FROM `"..type.."` WHERE `id` = "..pid.." ;")
return hname:getID() ~= -1 and hname:getDataInt("event_points") or false
end

function addEventPoints(cid,points)
local pid = getPlayerGUID(cid)
local aid = getPlayerAccountId(cid)
local point = (getEventPoints(cid,"accounts") + points) 
local point = point > 0 and point or 0
db.executeQuery("UPDATE `accounts` SET `event_points` = "..point.." WHERE `id` = "..aid..";")
point = (getEventPoints(cid,"players") + points) 
point = point > 0 and point or 0
db.executeQuery("UPDATE `players` SET `event_points` = "..point.." WHERE `id` = "..pid..";")
end

 

 

Como usar:

 

O getEventPoints(cid,type) retorna quantos events points o player/account tem. Para definir se você quer receber os event points do player ou account, basta coloca "accounts" ou "players" em type. Ex:

 

getEventPoints(cid,"players") --> irá retornar os events points que aquele player conseguiu.

getEventPoints(cid,"accounts") --> irá retornar a soma dos events points de todos players que aquela account possui.

 

O addEventPoints(cid,points) adiciona event points para um determinado player, você pode usá-lo também para retirar event points de um player, caso ele descumpra alguma rgra do evento por exemplo, mas nunca ficará menos que 0 os event points de um player. Ex:

 

addEventPoints(cid, 145) --> adiciona 145 event points para o player e a account.

addEventPoints(cid, -45) --> retira 45 event points do player e da account, caso o player tenha menos de 45 points e mais de 45 points na account, ele ficará com 0 no player e a account com o valor dela - 45.

 

 

Para ter a opção de vender itens no shop e ter os event points no highscore, vá para a parte de web mastering deste tuto no máximo até dia 29/02.

Editado por Antharaz

Compartilhar este post


Link para o post
vHp    6
vHp

Excelente função, amigo, parabéns pela contribuição!

Compartilhar este post


Link para o post
Biozard    0
Biozard

Muito bom, tive uma ideia muito boa aqui...

 

Obrigado.

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×