What's new

[8.54]Efektowny skill dla GMa

Status
Not open for further replies.

Regonix

User
Joined
Jul 5, 2010
Messages
33
Reaction score
4
Witam napisalem bardzo efektowny skrypt dla GMa.
Spodoba sie on przedewszystkim fanom Metina(Podobne do Ognistego Ducha dla sury) i nie tylko.
Wiec:
Skrypt-
data\talkactions\scripts\barrier.lua:
PHP:
	function onSay(cid, words, param, channel)
	local i=1
	local kolor=180
	local z=0
	local function x()
	if words == "/barrier" then
	if isPlayer(cid) == TRUE then
	local obrazenia=math.random(1,999);
	local position = getCreaturePosition(cid)
	if (i==1+z) then
		doSendDistanceShoot({x = position.x-1, y = position.y-1, z = position.z}, {x = position.x, y = position.y-1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x, y = position.y-1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x, y = position.y-1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
			if (i==2+z) then
		doSendDistanceShoot({x = position.x, y = position.y-1, z = position.z}, {x = position.x+1, y = position.y-1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x+1, y = position.y-1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x+1, y = position.y-1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
			if (i==3+z) then
		doSendDistanceShoot({x = position.x+1, y = position.y-1, z = position.z}, {x = position.x+1, y = position.y, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x+1, y = position.y, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x+1, y = position.y, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
			if (i==4+z) then
		doSendDistanceShoot({x = position.x+1, y = position.y, z = position.z}, {x = position.x+1, y = position.y+1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x+1, y = position.y+1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x+1, y = position.y+1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
					if (i==5+z) then
		doSendDistanceShoot({x = position.x+1, y = position.y+1, z = position.z}, {x = position.x, y = position.y+1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x, y = position.y+1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x, y = position.y+1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
					if (i==6+z) then
		doSendDistanceShoot({x = position.x, y = position.y+1, z = position.z}, {x = position.x-1, y = position.y+1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x-1, y = position.y+1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x-1, y = position.y+1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
							if (i==7+z) then
		doSendDistanceShoot({x = position.x-1, y = position.y+1, z = position.z}, {x = position.x-1, y = position.y, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x-1, y = position.y, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x-1, y = position.y, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
							if (i==8+z) then
		doSendDistanceShoot({x = position.x-1, y = position.y, z = position.z}, {x = position.x-1, y = position.y-1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x-1, y = position.y-1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x-1, y = position.y-1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		z=z+8	
		end
		i=i+1
		addEvent(x, 129,0) 
		end
		end
		end
		addEvent(x, 0,0)
		if words == "/barriers" then
		doReloadInfo(RELOAD_TALKACTIONS, cid)
		end  
	end;
data\talkactions\talkactions.xml:
PHP:
<talkaction access="4" words="/barrier" event="script" value="barrier.lua"/>
<talkaction access="4" words="/barriers" event="script" value="barrier.lua"/>
Objasnienie dzialania:
Komenda /barrier wlaczamy skrypt.
Wyglada to tak:
/barrier 3
3 -ID Efektu(ID mozna znale?? w:data\lib\compat.lua)
Komenda /barriers wyaczamy skrypt.(bez numeru ID)
!!!UWAGA!!! Skrypt Testowany na TFS 0.3.6 !(Nie gwarantuje dzialania na innych silnikach).
Dziekuje,pozdrawiam i prosze o komentarze a takze oceny :).
 

Doctor Who

Advanced User
Joined
Nov 8, 2008
Messages
221
Reaction score
7
Odp: [8.54]Efektowny skill dla GMa

A ja nadal nie wiem co ma na celu ten skrypt, nie mam zamiaru dowiadywa? si? tego ze skryptu, tylko jak pewnie wielu u?ytkownik?w tnetu chcia?bym abys da? jakiegos screana/filmik ewentualnie opisa? (bo w opisie up wszystko jest zbyt chaotyczne)
 

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: [8.54]Efektowny skill dla GMa

To dzia?a chyba na zasadzie komendy /z, kt?ra pokazuje nam efekt przypisany do danego ID efektu.
Nie wiem na co ten skrypt, ale za ch?ci i czas mo?na Ci "pogratulowa?".

Tak jak wy?ej Pan napisa?, napisz wi?cej szczeg???w, gdy? nie ka?dy ma zamiar wkleja? ca?y skrypt do silnika tylko po to by zobaczy? na czym on polega.
 

Oktobrasor

Advanced User
Joined
Nov 8, 2008
Messages
483
Reaction score
34
Odp: [8.54]Efektowny skill dla GMa

Ten skrypt dzia?a tak samo, jak /z, tylko ?e tutaj efekt utrzymuje si? dop?ki si? go nie wy??czy. Jest troch? rozbudowany, jak widz? zadaje obra?enia.
 
R

Rahim

Guest
Odp: [8.54]Efektowny skill dla GMa

Oo stary, a po kij Ci te "i" oraz "z"? Rozkminia?em ten skrypt ale i tak nie doszed?em do tego :D

Wiesz, wystarczy?o tylko lekko przerobi? gotowy skrypcik z TFS'a ;)
Code:
local obrazenia = math.random(5, 20) --ilosc zadawanych obrazen

local event_id = 0 -- tego nie zmieniaj.

function onSay(cid, words, param, channel)
    if(param:lower() == "off") then
        stopEvent(event_id)
        return true
    end
    local effect = tonumber(param)
    if(not effect or effect < 0 or effect > CONST_ANI_LAST) then
        doPlayerSendCancel(cid, "Numeric param may not be lower than 0 and higher than " .. CONST_ANI_LAST .. ".")
        return true
    end

    local position = getCreaturePosition(cid)
    local function x()
        for i = 1, 30 do
            local pos = {x = position.x + math.random(-7, 7), y = position.y + math.random(-5, 5), z = position.z, stackpos = 253}
            doSendDistanceShoot(position, pos, effect)
            local thing = getThingfromPos(pos)
            if(isCreature(thing.uid)) then
                doCreatureAddHealth(thing.uid, -obrazenia)
                doSendMagicEffect(pos, CONST_ME_HITAREA)
            end 
        end
        event_id = addEvent(x, math.random(500, 2000))
    end
    event_id = addEvent(x, math.random(500, 2000))
    return true
end
Nie testowa?em, ale b??d?w nie widz? xd.
Mo?na w??czy? lub wy??czy? pokazywanie efektu jedn? komend?, i to bez prze?adowywania ca?ego talkactions, jak to Ty zrobi?e? ;)
Aby w??czy? ten efekt wystarczy wstuka?
/nazwaKomendy "numerEfektu
np. /barrier "32
a ?eby wy??czy? wstukujemy /nazwaKomendy "off

Jou.
 
Last edited:

Regonix

User
Joined
Jul 5, 2010
Messages
33
Reaction score
4
Odp: [8.54]Efektowny skill dla GMa

Wiedzialem ze znajdzie sie ktos kto zmniejszy dlugosc mojego skryptu przynajmnie o polowe :)

Za to ci dziekuje poniewaz chcialem poznac jak Dziala struktura addEvent i stopEvent a takze dowiedziec sie o co chodzi z tym calym param.

Niestety skrypt dziala troche inaczej niz ten moj ale tez wyglada swietnie :p

Do rahima:
i,z to zmienne ktore sa potrzebne po to aby skrypt sie zap?tla? i krecil efektem na okolo gracza(Dodaj go sobie i sam sprawdz :D )

Jeszcze raz dziekuje i pozdrawiam :)
 
Last edited:

Regonix

User
Joined
Jul 5, 2010
Messages
33
Reaction score
4
Odp: [8.54]Efektowny skill dla GMa

W koncu znalazlem czas aby poprawic ten skrypt.
Nie bede robil nowego tematu a przy okazji odswieze :D .

Skrypt:
PHP:
--Config:
local obrazeniamin = 1000;
local obrazeniamax = 10000;
local storage = 1754;
local odstep = 129;
--/Config
--Nie zmieniaj !:
local event_id = 0
local i=1;
local kolor=180;
local z=0;
--/Nie Zmieniaj
--Script:
function onSay(cid, words, param, channel)
local exhaust=getPlayerStorageValue(cid, storage)
    if(param:lower() == "off") then
	if (exhaust==1) then
        stopEvent(event_id)
		doPlayerSendCancel(cid, "Bariera Wylaczona!")
		setPlayerStorageValue(cid,storage,0)
		else
		doPlayerSendCancel(cid, "Wlacz najpierw bariere!")
		end
        return true
    end
    local effect = tonumber(param)
    if(not effect or effect < 0 or effect > CONST_ANI_LAST) then
        doPlayerSendCancel(cid, "Numeric param may not be lower than 0 and higher than " .. CONST_ANI_LAST .. ".")
        return true
    end
local function x()
	if words == "/barrier" then
	if isPlayer(cid) == TRUE then
	local obrazenia=math.random(obrazeniamin,obrazeniamax);
	local position = getCreaturePosition(cid)
	if (i==1+z) then
		doSendDistanceShoot({x = position.x-1, y = position.y-1, z = position.z}, {x = position.x, y = position.y-1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x, y = position.y-1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x, y = position.y-1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
			if (i==2+z) then
		doSendDistanceShoot({x = position.x, y = position.y-1, z = position.z}, {x = position.x+1, y = position.y-1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x+1, y = position.y-1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x+1, y = position.y-1, z = position.z,stackpos=253}, obrazenia, kolor)
		end

		end
			if (i==3+z) then
		doSendDistanceShoot({x = position.x+1, y = position.y-1, z = position.z}, {x = position.x+1, y = position.y, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x+1, y = position.y, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x+1, y = position.y, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
			if (i==4+z) then
		doSendDistanceShoot({x = position.x+1, y = position.y, z = position.z}, {x = position.x+1, y = position.y+1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x+1, y = position.y+1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x+1, y = position.y+1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
					if (i==5+z) then
		doSendDistanceShoot({x = position.x+1, y = position.y+1, z = position.z}, {x = position.x, y = position.y+1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x, y = position.y+1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x, y = position.y+1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
					if (i==6+z) then
		doSendDistanceShoot({x = position.x, y = position.y+1, z = position.z}, {x = position.x-1, y = position.y+1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x-1, y = position.y+1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x-1, y = position.y+1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
							if (i==7+z) then
		doSendDistanceShoot({x = position.x-1, y = position.y+1, z = position.z}, {x = position.x-1, y = position.y, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x-1, y = position.y, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x-1, y = position.y, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		end
							if (i==8+z) then
		doSendDistanceShoot({x = position.x-1, y = position.y, z = position.z}, {x = position.x-1, y = position.y-1, z = position.z}, param)
		local player1 = getThingfromPos({x = position.x-1, y = position.y-1, z = position.z,stackpos=253})
		 if player1.itemid > 0 then
		doCreatureAddHealth(player1.uid,-obrazenia)
		doSendAnimatedText({x = position.x-1, y = position.y-1, z = position.z,stackpos=253}, obrazenia, kolor)
		end
		z=z+8	
		end
		i=i+1
		end
		end
        event_id = addEvent(x, odstep)
    end
if(exhaust==0 or exhaust==-1) then
    event_id = addEvent(x, 0)
doPlayerSendCancel(cid, "Bariera Wlaczona!")
setPlayerStorageValue(cid,storage,1)
else
doPlayerSendCancel(cid, "Wylacz najpierw Bariere!")
end
    return true
end
--/Script

Dziekuje i pozdrawiam !!
@Edit wybaczcie za doubla mysle ze za bardzo mnie nie zrugacie.
 
Last edited:
Status
Not open for further replies.
Top