#1 2012-01-11 13:18:41

Sassin

http://i38.tinypic.com/19pb0n.gif

Zarejestrowany: 2012-01-11
Posty: 11

VIP System na konto i dni.

Ze względu na to, iż wiele userów pyta czy można przerobić vip system, żeby był na całe konto, a nie tylko na jedną postać, postanowiłem nareszcie odpowiedzieć "tak!", otóż znalazłem na to sposób, przejdę może od razu do rzeczy...

Do bazy danych:

Kod:

  CREATE TABLE IF NOT EXISTS `accounts_storage` (
  `id` int(11) NOT NULL DEFAULT '0',
  `key` int(10) NOT NULL DEFAULT '0',
  `value` varchar(255) NOT NULL DEFAULT '0',

  UNIQUE KEY `id_key` (`id`,`key`),
  KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

data/lib/050-function.lua\function.lua (na samym końcu)/b]

Kod:

function setAcccountStorageValue(cid, key, value)
 
    local result = db.getResult("SELECT `key` FROM `accounts_storage` WHERE (`id` = '" .. getPlayerAccountId(cid) .. "' and `key` = '" .. key .. "');")
    if result:getDataInt("key") == nil then
        return db.executeQuery("INSERT INTO `accounts_storage` (`id`, `key`, `value`) VALUES (" .. getPlayerAccountId(cid) .. ", " .. key .. ", " .. value .. ")")
    else
        return db.executeQuery("UPDATE `accounts_storage` SET `value` = " .. value .. " WHERE (`id` = '" .. getPlayerAccountId(cid) .. "' and `key` = '" .. key .. "');")
    end
end
 
function getAccountStorageValue(cid, key)
    local value = db.getResult("SELECT `value` FROM `accounts_storage` WHERE (`id` = '" .. getAccountAccountId(cid) .. "' and `key` = '" .. key .. "');")
    return value:getDataInt("value")
end

[b]actions.xml:

Kod:

<!-- Vip System by Sassin -->
    <action actionid="12694" event="script" value="vip/drzwi.lua" />
    <action itemid="XXXX" event="script" value="vip/vip.lua"/> -- XXXX id itemu dajacego vip
    --<action itemid="ZZZZ" event="script" value="vip/vip2.lua"/> -- ZZZZ id drugiego itemu dajacego vip

data/actions/scripts/vip/drzwi.lua:

Kod:

 -- Vip system by Sassin
local config = {
    storage = 246282 -- nie ruszac
    wejscie = "Witaj vip graczu!" -- tekst, ktory pojawi sie nad graczem po przesciu przez drzwi vip
    brakvip = "Nie masz vip'a, nie mozesz przesc przez te drzwi." -- tekst, ktory wyswietli sie gracza, ktorzy probuja przesc, a nie maja vipa

}

    function onUse(cid, item, fromPosition, itemEx, toPosition)
    local gracz = getCreaturePosition(cid) -- nie ruszac

            if (item.actionid == 12694 and getAccountStorageValue(cid, config.storage) >= 1) then
                if gracz.x < toPosition.x then
                    doTeleportThing(cid, {x=toPosition.x+1,y=toPosition.y,z=toPosition.z}, TRUE)
                    doCreatureSay(cid, ""..config.wejscie.."", TALKTYPE_ORANGE_1)
                else
                    doTeleportThing(cid, {x=toPosition.x-1,y=toPosition.y,z=toPosition.z}, TRUE)
                    doCreatureSay(cid, ""..config.wejscie.."", TALKTYPE_ORANGE_1)
                end
                    return TRUE
                else
                    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ""..config.brakvip.."")
                return TRUE
            end
    return FALSE
    end

data/actions/scripts/vip/vip.lua

Kod:

-- Vip system by Sassin
local config = {
    lvl = 10 -- lvl od jakiego mozna uzyc vip itemu
    storage = 246282 -- nie ruszac
    dni = 10 -- ile item zadekralorwany w actions.xml ze sciezka do tego pliku ma dawac dni vipa
    braklvl = "Level wymagany to "..config.lvl..", wbij i sprobuj ponownie." -- co ma pisac gdy nie ma lvl
    tekstgracz = "Gratulacje! Otrzymales vipa na "..config.dni.." dni! Mozesz isc do miast vip!." -- co ma pisac graczowi uzywajacemu vipa
}

    function onUse(cid, item, fromPosition, itemEx, toPosition)
    local gracz = getPlayerPosition(cid) -- nie ruszac

        if(getPlayerLevel(cid) >= config.lvl) then
            getAccountStorageValue(cid, config.storage)
            doCreatureSay(cid, ""..config.tekstgracz.."", TALKTYPE_ORANGE_1)
            setAccountStorageValue(cid, config.storage, (getAccountStorageValue(cid, config.storage) + config.dni))
            doRemoveItem(item.uid, 1)
        else
            doPlayerSendCancel(cid, ""..config.braklvl.."")
        end
return TRUE
end

globalevents.xml:

Kod:

<!-- Vip System by Sassin -->
    <globalevent name="checkvip" interval="86400000" event="script" value="vip/dni.lua"/>
    <globalevent name="removevip" interval="36000000" event="script" value="vip/vip.lua"/>

data/globalevents/scripts/vip/dni.lua

Kod:

-- Vip system by Sassin
local config = {
    storage = 246282 -- nie ruszac
}

    function onThink(cid, item, fromPosition, toPosition)
    for _, name in ipairs(getOnlinePlayers()) do
    local gracz = getPlayerByName(name)
    
            if getAccountStorageValue(gracz, config.storage) > 1 then
                setAccountStorageValue(gracz, config.storage, getAccountStorageValue(gracz) - 1)
            end
        end
    end

data/globalevents/scripts/vip/vip.lua

Kod:

-- Vip system by Sassin
local config = {
    storage = 246282 -- nie ruszac
}

    function onThink(cid, item, fromPosition, toPosition)
    for _, name in ipairs(getOnlinePlayers()) do
    local gracz = getPlayerByName(name)

            if getAccountStorageValue(gracz, config.storage) == 1 then
                setAccountStorageValue(gracz, config.storage, 0)
            end
        end
    end

Pozdrawiam Sassin !


http://s2.tibiafun.y0.pl/char.php?c=Sassin

Kliknij, i pomóż nabić mi LvL

Offline

 

#2 2012-02-19 23:57:17

 KamaShoot

http://i35.tinypic.com/2q9yumu.gif

12612754
Call me!
Skąd: FRANCE
Zarejestrowany: 2012-02-19
Posty: 137
Profesja: Hoster
Server: MINIWAR
WWW

Re: VIP System na konto i dni.

Dzieki dziala w 100%,szukalem czegos takiego. ^^


Pomoglem daj +
http://s2.tibiafun.y0.pl/char.php?c=Bladeli
Zapraszam na najlepsze forum o OTS www.tibiaot.pun.pl
http://img844.imageshack.us/img844/5093/111ke.gif

Offline

 

#3 2012-02-20 14:34:48

Sassin

http://i38.tinypic.com/19pb0n.gif

Zarejestrowany: 2012-01-11
Posty: 11

Re: VIP System na konto i dni.

Dziękuję Ci bardzo za tak, miłego posta.
KamaShoot - Dam Ci plusika, za pierwszą osobę, która odpowiedziała w skrypcie.


http://s2.tibiafun.y0.pl/char.php?c=Sassin

Kliknij, i pomóż nabić mi LvL

Offline

 

#4 2012-02-20 16:32:53

 KamaShoot

http://i35.tinypic.com/2q9yumu.gif

12612754
Call me!
Skąd: FRANCE
Zarejestrowany: 2012-02-19
Posty: 137
Profesja: Hoster
Server: MINIWAR
WWW

Re: VIP System na konto i dni.

Nie ma za co, bardzo sie przydal skrypt.
Cenie wysilek innych userow. I przyjemnoscia jest dla mnie ocenianie postow.
Dam ci reputa jak zejdzie limit ^^ Jesze 400 minut okolo.


Pomoglem daj +
http://s2.tibiafun.y0.pl/char.php?c=Bladeli
Zapraszam na najlepsze forum o OTS www.tibiaot.pun.pl
http://img844.imageshack.us/img844/5093/111ke.gif

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
UbytovĂĄnĂ­ Cleveland