What's new

Actions TFS 1.2 Pakiet startowy + modal window

Old Sessam

Hello
Joined
Aug 5, 2009
Messages
445
Reaction score
56
Przedmiot powsta? na potrzeby serwera www.querana.com (kt?ry ca?y czas jest w budowie)

ID przedmiotu: 9076

Wygl?d:
9076.gif


Opis:
Po rozpakowaniu mo?na z niego otrzyma? pakiet kt?ry u?atwi pocz?tek gry nowicjuszom. W worku znajduje si? he?m, armor, spodnie, buty, tarcza oraz upominek w postaci waluty tibijskiej, zale?nie od wybranej profesji.

Dzia?anie:


po klikni?ciu "use" wyskakuje nam okno (modal window)

pakietstartowy.png


-Gdy klikniemy przycisk "Anuluj" wy??czamy okno - nic nie dostajemy i przedmiot zostaje w backpacku.
-Gdy klikniemy "otwieram" bag z pakietem startowym znika i dostajemy przedmioty.

przedmioty.png


Instalacja:

do /data/actions/actions.xml dodajemy

Code:
<action itemid="9076" script="pakietstartowy.lua" />

do /data/actions/scripts tworzymy plik o nazwie pakietstartowy.lua a w nim umieszczamy
Code:
-- By Szafi / Old Sessam
-- www.querana.com
-- kontakt wdowka1@gmail.com

function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)
cid:registerEvent("ModalWindow_starter")

local title = "Worek z pakietem startowym"
local message = "Wybierz dla jakiej profesji chcesz uzyskac pakiet"

local window = ModalWindow(1000, title, message)

window:addButton(100, "Otwieram")
window:addButton(101, "Anuluj")

window:addChoice(1, "Pakiet startowy dla Maga")
window:addChoice(2, "Pakiet startowy dla Druida")
window:addChoice(3, "Pakiet startowy dla Palladyna")
window:addChoice(4, "Pakiet startowy dla Knighta")

window:setDefaultEnterButton(100)
window:setDefaultEscapeButton(101)

window:sendToPlayer(cid)

return true
end

do /data/creaturescripts/creaturescripts.xml dodajemy

Code:
<event type="ModalWindow" name="ModalWindow_starter" script="pakietstartowy.lua"/>

nastepnie tworzymy plik w /data/creaturescripts/scripts plik o nazwie pakietstartowy.lua a w nim

Code:
-- By Szafi / Old Sessam
-- www.querana.com
-- kontakt wdowka1@gmail.com
function tablelength(T)
    local count = 0
    for _ in pairs(T) do count = count + 1 end
    return count
end

function onModalWindow(player, modalWindowId, buttonId, choiceId)
    player:unregisterEvent("ModalWindow_starter")
    if modalWindowId == 1000 then
        if buttonId == 100 then
            backpack = doCreateItemEx(1993, 1)
            local coinsCount = math.random(8, 15);
            local weight = 0
            if choiceId == 1 then
                doAddContainerItemEx(backpack, doCreateItemEx(8900, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2323, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(8871, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(7730, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
            elseif choiceId == 2 then
                doAddContainerItemEx(backpack, doCreateItemEx(8900, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2323, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(8871, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(7730, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
            elseif choiceId == 3 then
                doAddContainerItemEx(backpack, doCreateItemEx(2534, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2497, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(8891, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(7730, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
            elseif choiceId == 4 then
                doAddContainerItemEx(backpack, doCreateItemEx(2519, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2491, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2487, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2488, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
                doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
            end
            if player:getFreeCapacity() > 273 then
                doPlayerAddItemEx(player:getId(), backpack, TRUE)
                doSendMagicEffect(player:getPosition(), 49)
                doPlayerRemoveItem(player:getId(), 9076, 1)
            else
                player:sendCancelMessage('Nie masz capa lub miejsca aby otrzymac przedmioty')
            end
        end
    end
end

nast?pnie w /data/items/items.xml szukamy ID 9076 i podmieniamy na

Code:
	<item id="9076" article="a" name="Worek z pakietem startowym">
		<attribute key="description" value="Otworz pakiet startowy aby dostac przedmioty." />
		<attribute key="weight" value="5200" />
	</item>

jezeli nie masz przedmiotu w items.xml dodaj do items.xml ten kod ^^^^

Pozdro.
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: TFS 1.2 Pakiet startowy + modal window

Bo po co korzysta? z tablic i p?tli. Do tego czasem u?ywasz metatables, czasem nie, wtf. Podsumowuj?c - syf.
 

Azuu

Active User
Joined
Jul 16, 2015
Messages
99
Reaction score
20
Odp: TFS 1.2 Pakiet startowy + modal window

Skrypt si? przyda, dzi?ki. [MENTION=15914]Dantez[/MENTION] skrypt jest za darmo wi?c nie musisz mu naje?dza?.
 

Simon Here

Senior User
Joined
Jan 23, 2011
Messages
525
Reaction score
71
Odp: TFS 1.2 Pakiet startowy + modal window

Polecam ?mierdziela, robi op skrypty
20/10 =D
 

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
9
Odp: TFS 1.2 Pakiet startowy + modal window

if choiceId == 1 then
doAddContainerItemEx(backpack, doCreateItemEx(8900, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2323, 1))
doAddContainerItemEx(backpack, doCreateItemEx(8871, 1))
doAddContainerItemEx(backpack, doCreateItemEx(7730, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
elseif choiceId == 2 then
doAddContainerItemEx(backpack, doCreateItemEx(8900, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2323, 1))
doAddContainerItemEx(backpack, doCreateItemEx(8871, 1))
doAddContainerItemEx(backpack, doCreateItemEx(7730, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
elseif choiceId == 3 then
doAddContainerItemEx(backpack, doCreateItemEx(2534, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2497, 1))
doAddContainerItemEx(backpack, doCreateItemEx(8891, 1))
doAddContainerItemEx(backpack, doCreateItemEx(7730, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
elseif choiceId == 4 then
doAddContainerItemEx(backpack, doCreateItemEx(2519, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2491, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2487, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2488, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2195, 1))
doAddContainerItemEx(backpack, doCreateItemEx(2160, coinsCount));
end

Jeb?em XDDDDD
 

Dubler

Lua Factory =)
Joined
Apr 8, 2009
Messages
1,874
Reaction score
112
Odp: TFS 1.2 Pakiet startowy + modal window

Idzie skr?ci? o ponad 2/3 ale i tak daj? okejke za ch?ci :D
 
Top