What's new

[x.x]Usuwanie ?cian, kamieni itd. Na ka?d? tibi?!

Status
Not open for further replies.
Joined
Oct 27, 2009
Messages
10
Reaction score
2
Przedstawiam wam pro?ciutki skrypcik, kt?ry zast?pi wam kilkana?cie plik?w z innymi skryptami, kt?re usuwaj? ?ciany. Ten w dodatku dzia?a du?o sprawniej, ni? klasyczny. Konfiguracja jest prosta jak drut, wystarczy doda? tablic? asocjacyjn? z uid d?wigni, kt?ra b?dzie si? r?wna? tabeli z pozycj? ?ciany i jej id. Przyk?ad:
Code:
[[COLOR=RoyalBlue][B]7061[/B][/COLOR]] = {[B][COLOR=SeaGreen]{x=658, y=45, z=8, stackpos=1}[/COLOR][/B],[B][COLOR=DarkOrange] 1497[/COLOR][/B]}[B][COLOR=Magenta],[/COLOR][/B]
[code]
[COLOR=RoyalBlue]Niebieski kolor[/COLOR] - uid d?wigni
[COLOR=Green]Zielony kolor [/COLOR]- pozycja ?ciany, kt?ra ma by? usuni?ta b?d? stworzona przez d?wigni? z uid podanym na niebiesko.
[COLOR=DarkOrange]Pomara?czowy kolor[/COLOR] - id ?ciany do usuwania/tworzenia (tutaj poda?em id magic wall'u)
[COLOR=Magenta]R??owy kolor[/COLOR] - przecinek na ko?cu tablicy - wymagany po wszystkich tablicach pr?cz ostatniej. 

Badzo wa?nym atutem tego skryptu jest fakt, ?e nie musimy dodawa? ?adnych linijek do actions.xml! Wystarczy tylko dwie na pocz?tku, dalej tylko w skrypcie (wcze?niej trzeba usun?? wcze?niejsze).

To teraz skrypt. W data/actions/scripts tworzymy plik z nazw? "walls.lua" i do niego wklejamy owy kod:
[php]
function onUse(cid, item, frompos, item2, topos)
--by Michael Angelo!
local switchs = 
--[[Legenda: 
    W kwadratowym nawiasie podany jest uid dzwigni, zas w tabeli najpierw pozycja sciany, dalej id sciany. Mysle, ze jasno ;)

]]--
{
    [2000] = {{x=160, y=91, z=8, stackpos=1}, 1497},
    [2001] = {{x=161, y=90, z=8, stackpos=1}, 1497}
}

	if(not switchs[item.uid]) then
		doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
		return TRUE
	end
    local pos = switchs[item.uid][1]
    local wall = getThingfromPos(pos)
    if(wall.itemid == switchs[item.uid][2]) then
        doRemoveItem(wall.uid, 1)
        doTransformItem(item.uid, item.itemid+1)
    else
        doCreateItem(switchs[item.uid][2], 1, pos)
        doTransformItem(item.uid, item.itemid-1)
    end
    return TRUE
end
[/php]Teraz w data/actions.xml dodajemy:
[php]<action itemid="1945" script="walls.lua" />
<action itemid="1946" script="walls.lua" />[/php]Mam nadziej?, ?e wszystko jasne i nie b?dziesz mia? ?adnych k?opot?w z konfiguracj? i dodawaniem nowych pozycji. Pozdrawiam ;>
 

karpiktogosc

Advanced User
Joined
Apr 8, 2008
Messages
350
Reaction score
15
Odp: [x.x]Usuwanie ?cian, kamieni itd. Na ka?d? tibi?!

Thx za skrypt i mam pytanie... Umia?by? doda? jeszcze, ?e poci?gni?cie za d?wigni? zabiera 60% HP?
 

Tako Dako

User
Joined
May 20, 2009
Messages
35
Reaction score
5
Odp: [x.x]Usuwanie ?cian, kamieni itd. Na ka?d? tibi?!

Nie mam poj?cia, czy zadzia?a, ale spr?buj ^^

Code:
function onUse(cid, item, frompos, item2, topos)
--by Michael Angelo!
local switchs = 
--[[Legenda: 
    W kwadratowym nawiasie podany jest uid dzwigni, zas w tabeli najpierw pozycja sciany, dalej id sciany. Mysle, ze jasno ;)

]]--
{
    [2000] = {{x=160, y=91, z=8, stackpos=1}, 1497},
    [2001] = {{x=161, y=90, z=8, stackpos=1}, 1497}
}

    if(not switchs[item.uid]) then
        doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
        return TRUE
    end
    local pos = switchs[item.uid][1]
    local wall = getThingfromPos(pos)
    if(wall.itemid == switchs[item.uid][2]) then
        doRemoveItem(wall.uid, 1)
        doTransformItem(item.uid, item.itemid+1)
        doCreatureAddHealth(cid, -getCreatureHealth(cid)/100*60)
    else
        doCreateItem(switchs[item.uid][2], 1, pos)
        doTransformItem(item.uid, item.itemid-1)
        doCreatureAddHealth(cid, -getCreatureHealth(cid)/100*60)
    end
    return TRUE
end
 

konradnbw

User
Joined
Feb 7, 2010
Messages
37
Reaction score
1
Odp: [x.x]Usuwanie ?cian, kamieni itd. Na ka?d? tibi?!

Thx Przyda Si? :D !! Dzia?a w 100% :)
 
Status
Not open for further replies.
Top