What's new

8.54 Vip system na konto i dni.

Status
Not open for further replies.

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
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:
PHP:
	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):
PHP:
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

actions.xml:
PHP:
		<!-- 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:
PHP:
	-- 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
PHP:
-- 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:
PHP:
	    <!-- 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
PHP:
	-- 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
PHP:
	-- 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

Prosz? o wyrozumia?o??, skrypt by? pisany 30 minut przed opublikowaniem, jestem wystarczaj?co pijany, ?eby mie? prawo na liter?wk?, o wszystkich b??dach informowa?. : )

Ch?? opublikowania na innych forach ma by? skonsultowana ze mn?!

Pozdrawiam,
Sassin

Notka moderatorska:
Jestem pod wra?eniem Twoich osi?gni?? przez ten czas co Ci? nie by?o. Oczywi?cie skrypt dobry. Przenosz?.
 

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

#Off
Dzi?ki Oskar, ale tu masz racje, sam jestem pod wra?eniem. ; )

Od?wie?am i prosz? o jakie? komentarze.
 

Xart Irok

Senior User
Joined
Sep 7, 2008
Messages
2,925
Reaction score
419
Age
32
Odp: 8.54 Vip system na konto i dni.

Sassin od kiedy si? u?ywa w globalevents funkcji onUse ;), a wydaje mi si? ze funkcje nie pisa?e? tylko skopiowa?e? z otlandu. Zaliczy?e? face pall z tym globalevents. Wracaj?c do tematu to przydatne to si? zaczyna robi?.
 

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

Dzi?ki Xart, jak ju? m?wi?em by?em pijany i po prostu si? zagalopowa?em. =D

Poprawione.

Prosz? o dalsze komentarze.

Pozdrawiam,
Sassin

Notka moderatorska:
W sumie skrypt opiera si? na actions, wi?c tam przenosz?.
 
Last edited by a moderator:

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

Komentujcie!!!!!!!!!!1111!!!11 Refresz!

(od?wie?am)
 

orzelbot

Advanced User
Joined
Nov 11, 2008
Messages
189
Reaction score
5
Odp: 8.54 Vip system na konto i dni.

nie wiem czy vip to jest dobre,
na tibia 8.4 to byla furora,
teraz gracze nie lubi? tego systemu poniewa? vipa trzeba kupic,
a pomysl... jak jakis h lvl expi tam a polowa guildi nie ma vipa do po niego nie wpadn?, wiec lipa,
ogolnie skrypt fajny ; ]],
napracowales sie ale mowie, nikt go raczej nie bedzie uzywal. ; /
 

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

#up
Mo?e i masz racje, ale wci?? jest mn?stwo ots'?w, kt?re korzystaj? z Vip systemu i ca?kiem dobrze funkcjonuj?, wi?c wci?? wydaje mi si?, ?e pomys? nie jest najgorszy (system nie jest przewidziany na ots'y RPG). ; )

Prosz? o dalsze komentarze.

#down
A ma?o jest dzieci, kt?re tak robi??
 
Last edited:

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

175 odwiedzin i tylko 3 komentarze? Od?wie?am!
 

Cwaniakoz

Active User
Joined
Jul 26, 2010
Messages
82
Reaction score
3
Odp: 8.54 Vip system na konto i dni.

Dzi?kuje za umieszczenie tego skrypta, bardzo przyda mi si? na moim Otku, aczkolwiek mam pytanie, o co chodzi z tym do "Bazy Danych" gdzie mam to konkretnie wkleic itd.
Oczekuj? szybkiej odpowiedzi - z g?ry wielkie dzi?ki.

I odno?nie tej linijki skryptu:

tekstgracz = "Gratulacje! Otrzymales vipa na "..config.dni.." dni! Mozesz isc do miast vip!." -- co ma pisac graczowi uzywajacemu vipa

?eby wy?wietla?o ten napis, ?e na 30 dni to mam zmieni? "..config.dni.." na "30 dni"? Czy ma by? "..config.30" Mam nadziej?, ?e wiesz o co mi chodzi;)

Pozdrawiam.
 
Last edited:

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

#up
Co do
PHP:
"..config.dni.."
to, to samo sprawdza ilo?? dni z:
PHP:
dni = 10
kt?re r?wnie? znajduje si? w configu, wi?c tego nie ruszaj je?eli chcesz, ?eby samo sprawdza?o ilo?? dni.
A bardziej rzeczowo:
s?owo config odnosi si? do samego configu (gdzie)
a po
s?owo dni odnosi si? do pozycji dni w configu, kt?re umie?ci?em wy?ej w PHP CODE.

Tutaj wspomn?, ?e nie jestem najlepszym materia?em na nauczyciela, wi?c jak nic nie zrozumiesz to raczej moja wina. ; )

A co do Bazy Danych to wejd?:
CLICK
i po zalogowaniu kliknij zak?adk?
PHP:
SQL
tam to wklej.
 
Last edited:

Cwaniakoz

Active User
Joined
Jul 26, 2010
Messages
82
Reaction score
3
Odp: 8.54 Vip system na konto i dni.

Lajcik, wszystko rozumiem, juz sie do tego zabieram.
Wielkie dzieki, pozdrawiam ;)
 
Last edited:

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

Moim zdaniem ?le skonfigurowa?e? config, je?eli jeste? pewny, ?e nie to jutro postaram si? to ogarn??. Mo?liwe, ?e pope?ni?em jaki? b??d. : )
 
Last edited:

Cwaniakoz

Active User
Joined
Jul 26, 2010
Messages
82
Reaction score
3
Odp: 8.54 Vip system na konto i dni.

Calkiem mozliwe, ze jest cos na rzeczy, mozesz zobaczyc. Bo robiac wszystko tak jak napisales nie zadzialalo, dopiero gdy przerobilem troche Twoj skrypt i kopiujac pare rzeczy z innego skrypyta, ktory znalazlem na innym forum i smiga jak talala:p
 

Dark Magican

Senior User
Joined
Apr 13, 2009
Messages
677
Reaction score
42
Odp: 8.54 Vip system na konto i dni.

Witam!
Co do tego ?e Vip ma?o kto lubi, to si? mylicie je?eli jest to Vip z potworami takimi samymi jak dla normalnego gracza, nie ma tam rzeczy nie wyobra?alnych tylko po prostu drugie respy, gdy s? zaj?te expowiska na zwyk?ej mapie, wtedy idziemy na Vip i w tym momencie mamy wyb?r, albo kupi? Vip albo zosta? na pierwszej wyspie. Vip, kt?re na Serwerach RPG sk?ada si? z teleport?w, jest bardzo wkurzaj?ce i wtedy ka?dy to kupuje lub po prostu nie gra.
&TOPIC
No tak, skrypt naprawd? ?wietny cieszy mnie to ?e idziesz ca?y czas to przodu, nie widzia?em takiego skryptu nigdzie a my?la?em kiedy? o takim, no c?? mog? ci tylko Pogratulowa? pozdrawiam!
 

Matavx

User
Joined
Nov 15, 2008
Messages
19
Reaction score
0
Odp: 8.54 Vip system na konto i dni.

Dziwne to troche. VIP powinien byc na postac a nie na konto.ale pozatym skrypt 9/10.
 

Czeski Strzelayek

Advanced User
Joined
Jan 17, 2010
Messages
242
Reaction score
12
Odp: 8.54 Vip system na konto i dni.

[evil]skrypt lepszy od orgina?u, dzi?ki, da?em go koledze, a on mi 5z? wi?c dla ciebie reput xD
no i oceniam go na [evil]9/10[/evil] bo ju? go si? tak nei stosuje xddd [/evil]
 

zygzagZ

Advanced User
Joined
Aug 14, 2008
Messages
281
Reaction score
34
Odp: 8.54 Vip system na konto i dni.

Skrypt bardzo dobry, sam takiego szuka?em do?? d?ugo, w ko?cu si? wkurzy?em i napisa?em w?asny... A teraz c?? widz?? :D Nie widzia?em nigdzie takiego, wi?c gratuluj? :d
Moja ocena: 9/10 :D (poniewa? jak ots nie stoi na dedyku to nie b?dzie odejmowa?o dni ;))
 

Sassin

Forum friend
Joined
Jun 13, 2009
Messages
1,281
Reaction score
107
Odp: 8.54 Vip system na konto i dni.

Skrypt bardzo dobry, sam takiego szuka?em do?? d?ugo, w ko?cu si? wkurzy?em i napisa?em w?asny... A teraz c?? widz?? :D Nie widzia?em nigdzie takiego, wi?c gratuluj? :d
Moja ocena: 9/10 :D (poniewa? jak ots nie stoi na dedyku to nie b?dzie odejmowa?o dni ;))

My?l?, ?e masz racj?, ale nie jest to uzale?nione tego czy ma si? dedyka, a od tego czy wie si? jak samemu go hostowa?. ; )

Od?wie?am.
 

Ghalla

Active User
Joined
Aug 24, 2010
Messages
88
Reaction score
12
Age
31
Odp: 8.54 Vip system na konto i dni.

W skrypcie vip.lua niepotrzebna deklaracja zmiennej gracz. Nigdzie p??niej jej nie u?ywasz. W globalevents nie zwracasz ?adnych warto?ci. Nie sprawdzasz flagi b??du w po??czeniu z SQL, pobieraj?c warto??. W linijce 20 w skrypcie drzwi.lua niepotrzebne
Code:
return TRUE
Do tego zamiast zadeklarowa? zmienn? raz i zmienia? jej warto?? w p?tlach(globalevents), Ty za ka?dym razem deklarujesz now? zmienn?.Marnotrawstwo. Do tego t? cz??? kodu mo?na zmieni?, ?atwymi operacjami na tablicach:
Code:
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

Wed?ug mnie skrypt napisany, ?eby nie powiedzie? chujowo, to lipnie.
 
Status
Not open for further replies.
Top