• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

Creaturescripts Gracz cid awansowa? na poziom 500!

Status
Zamknięty.

Kahras

Senior User
Dołączył
Sierpień 26, 2011
Posty
2714
Liczba reakcji
167
Wiek
26
Witam was bardzo drodzy!
Dzisiaj nadszed? dzie? kiedy napisa?em swojego 1 rozbudowanego skrypta - umieszczam go tutaj poniewa? czasami widzia?em takie osoby kt?re prosi?y o ten skrypt.

Skrypt dzia?a tak: gdy gracz wbije poziom(ustawiony przez nas) wy?wietli si? napis:
PHP:
Gracz cid awansowa? na poziom 400
To by?o by zbyt ?atwe gdybym nic wi?cej nie doda? m.in doda?em jeszcze ?e np. przy awansie na dany poziom mo?na zrobi? ?e gracz dostaje dany item w danej ilo?ci(oczywi?cie tylko raz wy?wietla si? napis i tylko raz mo?na dosta? item) przyk?ad:

PHP:
	[50] = {give = "yes", itemid = 2160, count = 5, storage = 350000},
	[100] = {give = "yes", itemid = 2160, count = 50, storage = 350001},
	[200] = {give = "no", itemid = 2650, count = 1, storage = 350002}

  • Gracz gdy wbije 50 poziom wy?wietli si? wiadomo?? oraz dostanie 5 cc.
  • Gracz gdy wbije 100 poziom wy?wietli si? komunikat oraz dostanie 50 cc.
  • Gracz gdy wbije 200 poziom wy?wietli si? komunikat i nic nie dostanie.


Instrukcja:
  • give = "yes/no" gdy wpiszemy "yes" to gracz otrzyma item a gdy wpiszemy "no" to nie otrzyma.
  • itemid = "id itemku" chyba nie trzeba t?umaczy?
  • count = "5" ilo?? itemu kt?rego zadeklarowali?my up.
  • storage = "350000" najlepiej nie zmienia? a gdy dodajemy now? tabelk? dodawa? +1


Instalacja:

Wchodzimy w OTS -> data -> creaturescripts-tworzymy nowy plik.lua i wklejamy to:


PHP:
-- Author: Kahras // TIBIA.NET.PL \\ Help: Matt --
function onAdvance(cid, skill, oldLevel, newLevel)
-- [level] = {give = "yes/no", itemid = iditem, count = count, storage = storage}
local poziomy = {
	[50] = {give = "no", itemid = 2382, count = 5, storage = 350001},
	[100] = {give = "yes", itemid = 2160, count = 15, storage = 350002},
	[150] = {give = "yes", itemid = 2160, count = 50, storage = 350003},
	[200] = {give = "no", itemid = 2650, count = 100, storage = 350004}
	}
	for k, v in pairs(poziomy) do
		if getPlayerStorageValue(cid, v.storage) == -1 then
		if(newLevel == k) then
		setPlayerStorageValue(cid, v.storage, 1)
			doBroadcastMessage("Gracz "..getPlayerName(cid).." awansowal na poziom "..newLevel.." !\n Gratulujemy!")
					if(v.give) then
			v.give = getBooleanFromString(v.give)
		end
	if(not v.give) then
			return false
		end
			doPlayerAddItem(cid, v.itemid, v.count)
	end
	end
		end
	return TRUE
end



Teraz cofamy si? o jeden folder i otwieramy creaturescripts.xml i na samym dole wklejamy to:



PHP:
<event type="advance" name="Osiagniecia" event="script" value="plik.lua"/>


Nast?pnie resetujemy silnik b?d? w grze piszemy /reload creaturescripts


Informacj?:
Author: Kahras
Help: Matt - og?lnie pom?g? mi w paru rzeczach.
Testowane: TFS 0.4 (ver t.9.60) use 8.42+



My?l? ?e skrypt wam si? przyda - zapraszam do komentowania mo?e macie jakie? propozycje ?eby urozmaici? skrypt to prosz? bardzo piszcie.:lol:



ZABRANIAM UMIESZCZANIA SKRYPTU NA INNYM FORUM!
 
Odp: Gracz cid awansowa? na poziom 500!

Nie pro? o reputacj?.
Co do skryptu no jest w porz?dku, ale jak pisa?em to jest ?miechowe troch? - if(not v.give or not v.give) then
A tak to dobrze Ci wysz?o.
 
Odp: Gracz cid awansowa? na poziom 500!

@up
To be not or not to be. Etc, etc...
 
Odp: Gracz cid awansowa? na poziom 500!

skrypt i tak b?dzie wykonywany co level, wi?c nie wiem po co ta p?tla
[LUA] -- poprawka by Zbizu, zabraniam wrzucania w pierwszy post tematu
-- swoja droga i tak oba skrypty naleza do forum, maja to gdzies w regulaminie czy tam polityce prywatnosci
-- fajnie, nie?
function onAdvance(cid, skill, oldLevel, newLevel)
local poziomy = {
[50] = {storage = 350001}, -- brak nagrody
[100] = {itemid = 2160, storage = 350002}, -- 1 cc
[150] = {itemid = 2160, count = 50, storage = 350003} -- 50 cc
}

k = oldLevel
if poziomy[k] ~= nil and getPlayerStorageValue(cid, poziomy[k].storage) < 1 then
setPlayerStorageValue(cid, poziomy[k].storage, 1)
doBroadcastMessage("Gracz "..getPlayerName(cid).." awansowal na poziom "..newLevel.." !\n Gratulujemy!")
if poziomy[k].itemid ~= nil then
if poziomy[k].count == nil then amount = 1 else amount = poziomy[k].count end
doPlayerAddItem(cid, poziomy[k].itemid, amount)
end
end
return true
end[/LUA]
Zabraniaj dalej, mog? napisa? lepszy bez opierania si? na twoim i sam wrzuci?
oraz stwierdzam ?e zas?uguje na reputacj?!:lol:
chyba cie pojeba?o :lol2: na necie i tak jest ju? lepszy:

Notka moderatorska:
Poprawi?em znaczniki


nie prosi?em o to, mo?e mi si? quote podoba, co?
 
Ostatnia edycja:
Odp: Gracz cid awansowa? na poziom 500!

Nie pro? o reputacj?.
Co do skryptu no jest w porz?dku, ale jak pisa?em to jest ?miechowe troch? - if(not v.give or not v.give) then
A tak to dobrze Ci wysz?o.

No dobra jak mnie nie lubicie to ju? nie prosz? o reputacje :<


Zabraniaj dalej, mog? napisa? lepszy bez opierania si? na twoim i sam wrzuci?
chyba cie pojeba?o :lol2: na necie i tak jest ju? lepszy:

A sobie napisz i wrzu? na ka?de forum mi to nie przeszkadza :P
Si? dopiero ucz? :)



@Kiki~
poprawione:)
 
Ostatnia edycja:
Odp: Gracz cid awansowa? na poziom 500!

Re fresh
 
Odp: Gracz cid awansowa? na poziom 500!

nikt nie skomentuje ?
 
Odp: Gracz cid awansowa? na poziom 500!

Skrypt dobry, nie ma syfu w kodzie, prosto i funkcjonalnie. Dodam na sw?j serwer :)
 
Odp: Gracz cid awansowa? na poziom 500!

Za t? p?tle to bym ci odj?? reputacje, ale si? nie da :(
 
Odp: Gracz cid awansowa? na poziom 500!

my?lenia si? nie da nauczy? ...
 
Status
Zamknięty.
Do góry