What's new

Globalevents [7.92+] Kolorowe napisy nad r??nymi rzeczami.

Status
Not open for further replies.

Gelio

Senior User
Joined
Apr 10, 2008
Messages
617
Reaction score
101
Age
28
Dzisiaj mam dla was skrypt, kt?ry co okre?lon? ilo?? milisekund na danych pozycjach wy?wietla dowolny tekst wpisany przez ciebie w dowolnym kolorze o raz jaki? losowy efekt magiczny. To tyle opisu, zaczynamy.

Skrypt
S? dwie wersje:
  • je?eli masz folder globalevents
  • je?eli go nie masz

Na pocz?tku, je?eli masz globalevents:
Tworzysz plik o nazwie magic effects.lua w folderze data/globalevents/scripts i do niego wklejasz:
Code:
-- Magic effects by Gelio
local pozycje = {
{pos = {x=123, y=123, z=7}, tekst = "TP room"},
{pos = {x=123, y=128, z=7}, tekst = "Depot"}
}
local kolor = TEXTCOLOR_RED   -- Jakim kolorem jest dany napis
local efekt = {odEfektu = 1, doEfektu=66}  -- Jaki efekt sie wyswietla

function onThink(interval, lastExecution)
for i=1, #pozycje do
	local efektLosowy = math.random(efekt.odEfektu,efekt.doEfektu)
	doSendMagicEffect(pozycje[i].pos,efektLosowy)
	doSendAnimatedText(pozycje[i].pos,pozycje[i].tekst,kolor)
end
return TRUE
end
A nast?pnie do globalevents.xml w folderze data/globalevents dodajesz:
Code:
<globalevent name="magicEffects" interval="[COLOR="Red"]3[/COLOR]" script="magic effects.lua"/>
Na czerwono zaznaczy?em co ile sekund ma si? powtarza? efekt. Na g?rze skryptu jest pe?na konfiguracja.

Dla os?b, kt?re nie maj? globalevents:
Do global.lua znajduj?cym si? w folderze data/ dodajemy na ko?cu:
Code:
-- Magic effects by Gelio
local pozycje = {
{pos = {x=123, y=123, z=7}, tekst = "TP room"},
{pos = {x=123, y=128, z=7}, tekst = "Depot"}
}
local kolor = TEXTCOLOR_RED   -- Jakim kolorem jest dany napis
local efekt = {odEfektu = 1, doEfektu=66}  -- Jaki efekt sie wyswietla
local coIleMilisekund = 3 * 1000   -- Co ile milisekund? Pocz?tkowo co 3.

function efekt()
for i=1, #pozycje do
	local efektLosowy = math.random(efekt.odEfektu,efekt.doEfektu)
	doSendMagicEffect(pozycje[i].pos,efektLosowy)
	doSendAnimatedText(pozycje[i].pos,pozycje[i].tekst,kolor)
end
addEvent(efekt,coIleMilisekund)
end
addEvent(efekt,10*1000)
Konfigurujemy tak samo jak poprzedni skrypt. Na niekt?rych silnikach ten spos?b nie dzia?a. Ale to tylko 1% silnik?w. Nale?y sobie dostosowa? efekty, poniewa? nie ka?dy silnik ma efekty z 8.4. Efekty mo?na zobaczy? w global.lua/constant.lua lub po prostu zmienia? po kolei.

Pozdrawiam i zach?cam do komentowania,
Gelio
 
Last edited by a moderator:

Uzzio

Advanced User
Joined
Oct 6, 2008
Messages
194
Reaction score
12
Odp: [7.92+] Kolorowe napisy nad r??nymi rzeczami.

#up
Gelio: Ostatnio aktywny: 06-10-10 17:12
Nie ma go ju? ?adnych 2 miech?w na forum...

Ten skrypcik powinien Ci dzia?ac na wodbo. Je?li nie dzia?a to...
W data\npc\scripts tworzymy plik efekciarz.lua i wklejamy w nim to:
Code:
focus = 0
talk_start = 0
target = 0
following = false
attacking = false

function onThingMove(creature, thing, oldpos, oldstackpos)

end


function onCreatureAppear(creature)

end


function onCreatureDisappear(cid, pos)

end


function onCreatureTurn(creature)

end


function onCreatureSay(cid, type, msg)

end

function onCreatureChangeOutfit(creature)

end

local gdzie = {
				co = {-- w tej tabeli podajemy podtabele z wyswietlanym tekstem i miejscem w ktorym ma sie wyswietlic
					  {"Depo", {x=799, y=1079, z=3}},
					  {"Runes", {x=803, y=1079, z=3}},
					  {"Narzedzia", {x=801, y=1079, z=3}}
					 },
				efekty = {0, 1, 2, 3, 12, 13, 14, 18, 19, 22, 26, 27, 28, 29, 30, 32, 33}, -- efekty ktore pojawiaja sie na danym miejscu
				coile = 1.5 -- czas w sekundach miedzy pojawieniami sie efektow
			  }

function wyswietl(gdzie) 
	for i=1, #gdzie.co do
		doSendAnimatedText(gdzie.co[i][2], gdzie.co[i][1], math.random(1, 254))
		doSendMagicEffect(gdzie.co[i][2], gdzie.efekty[math.random(1, #gdzie.efekty)])
	end
	addEvent(wyswietl,(gdzie.coile*1000),gdzie)
	efektstart = 1
end

function onThink()
	if efektstart ~= 1 then
		addEvent(wyswietl,1,gdzie)
	end
end

A w data\npc dodajemy plik efekt.xml i wklejamy do niego:

Code:
<npc name="Efekt" script="data/npc/scripts/efekciarz.lua" autowalk="25" floorchange="0" access="5" level="1" maglevel="1">
	<health now="150" max="150"/>
	<look type="128" head="20" body="100" legs="50" feet="99" corpse="2212"/>
</npc>


Skrypt by Miziak ;)
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: [7.92+] Kolorowe napisy nad r??nymi rzeczami.

Oto moja przer?bka:
PHP:
-- Magic effects by Gelio, edited by Oskar
local pozycje = {
				{pos = {x=123, y=123, z=7}, efekt = CONST_ME_DRAWBLOOD, tekst = "TP room", kolor = COLOR_RED},
				{pos = {x=123, y=128, z=7}, efekt = CONST_ME_SMALLPLANTS, tekst = "Depot", kolor = COLOR_DARKGREEN}
				}
function onThink(interval, lastExecution)
for i = 1, #pozycje do
	doSendMagicEffect(pozycje[i].pos, pozycje[i].efekt)
	doSendAnimatedText(pozycje[i].pos, pozycje[i].tekst, pozycje[i].kolor)
end
return true
end
 
Status
Not open for further replies.
Top