Gelio
Senior User
- Joined
- Apr 10, 2008
- Messages
- 617
- Reaction score
- 101
- Age
- 28
Graczom na twoim OTS znudzi?o si? kupowa? domki przez komendy? Chcesz wprowadzi? co? innowacyjnego? Teraz kupowanie domk?w przez komendy do starocie! Teraz s? akty w?asno?ci dom?w! Spr?buj sam i zobacz jak poprawi si? grywalno??, a tak?e poziom RPG na twoim serwerze.
Skrypt
Ca?e akty w?asno?ci to w sumie 2 skrypty:
1. D?wignia/inna rzecz daj?ca akt w?asno?ci.
2. Sam akt w?asno?ci.
Akt w?asno?ci jak si? na niego spojrzy (Look) ma napisane do jakiego domu nale?y i kto jest jego w?a?cicielem. Ten tekst automatycznie si? zmienia. UWAGA! Do ka?dego domu (bez resetowania global storages) mo?e by? przydzielony tylko jeden akt w?asno?ci. W przypadku wrzucenia go do wody/kasacji postaci, na kt?rej by? akt domek jest mo?liwy do u?ywania tylko przez ostatniego w?a?ciciela. Ok, koniec tego wyja?niania, zajmijmy si? dodawaniem go do serwera:
Na pocz?tku tworzymy 2 pliki w folderze data/actions/scripts:
akt wlasnosci domu.lua, do kt?rego wklejamy:
dzwignia dajaca akt.lua, do kt?rego wklejamy:
A nast?pnie do actions.xml, znajduj?cego si? w folderze data/actions dodajemy:
Teraz musimy na mapie postawi? dowolny item (w moim przypadku to by?a d?wignia) i ustawi? mu unique id 1952. Akt w?asno?ci ma id 1952. Ka?dy akt w?asno?ci jako action id ma podane id domu, do kt?rego nale?y. Skrypt jest napisany w pe?ni przeze mnie. Testowa?em go na silniku TFS i dzia?a?.
Pozdrawiam i czekam na komentarze,
Gelio
@edit
Ludzie z otsoft.pl nie chc? mi wierzy?, ?e to m?j skrypt tam na tym forum. Tak wi?c: ten skrypt jest umieszczony na tym forum, , , oraz . Wszystkie konta tam maj? nick Gelio i na nich wrzuca?em skrypty. Skrypt jest w 100 % m?j.
Skrypt
Ca?e akty w?asno?ci to w sumie 2 skrypty:
1. D?wignia/inna rzecz daj?ca akt w?asno?ci.
2. Sam akt w?asno?ci.
Akt w?asno?ci jak si? na niego spojrzy (Look) ma napisane do jakiego domu nale?y i kto jest jego w?a?cicielem. Ten tekst automatycznie si? zmienia. UWAGA! Do ka?dego domu (bez resetowania global storages) mo?e by? przydzielony tylko jeden akt w?asno?ci. W przypadku wrzucenia go do wody/kasacji postaci, na kt?rej by? akt domek jest mo?liwy do u?ywania tylko przez ostatniego w?a?ciciela. Ok, koniec tego wyja?niania, zajmijmy si? dodawaniem go do serwera:
Na pocz?tku tworzymy 2 pliki w folderze data/actions/scripts:
akt wlasnosci domu.lua, do kt?rego wklejamy:
Code:
-- Do actions.xml:
-- <action itemid="1952" script="akt wlasnosci domu.lua" />
-- House documents by Gelio
local czysciDom = "tak" -- Czy czysci dom przed zmienieniem w?a?ciciela ("tak"/"nie")
local placenieZaSQM = "nie" -- Czy p?aci si? przy kupowaniu domu za wszystkie jego SQM
local oplataZaSQM = 200 -- Ile si? p?aci za poszczeg?lny SQM domu podczas jego nabycia
function onUse(cid, item, frompos, item2, topos)
local houseID = item.actionid-100
local tekst = ""
local playerGUID = getPlayerGUID(cid)
local blad = 0
if(item.actionid <= 100) then
tekst = tekst .. "Ten akt wlasnosci nie nalezy do zadnego domu. "
blad = blad+1
end
if(blad == 0) then
if(getHouseByPlayerGUID(playerGUID) ~= nil) then
tekst = tekst .. "Masz juz dom wiec nie mozesz miec wiecej. "
blad = blad+1
end
end
if(blad == 0) then
if(getHouseOwner(houseID) == cid) then
tekst = tekst .. "Ten dom nalezy juz do ciebie. "
blad = blad+1
end
end
if(blad == 0) then
if(placenieZaSQM == "tak") then
local cena = oplataZaSQM * getHouseTilesSize(houseID)
if(getPlayerMoney(cid) < cena) then
tekst = tekst .. "Zeby kupic ten dom musisz miec ".. cena .." pieniedzy."
blad = blad+1
else
doPlayerRemoveMoney(cid,cena)
end
end
if(blad == 0) then
if(czysciDom == "tak") then
cleanHouse(houseID)
end
setHouseOwner(houseID, playerGUID)
tekst = tekst .. "Wlasnie kupiles dom ".. getHouseName(houseID) .."."
doSetItemSpecialDescription(item.uid,"To jest akt wlasnosci domu ".. getHouseName(houseID) .." nalezacego do ".. getCreatureName(cid))
end
end
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,tekst)
return TRUE
end
Code:
-- Do actions.xml:
-- <action uniqueid="1952" script="dzwignia dajaca akt.lua" />
-- House documents by Gelio
local itemID = 1952
function onUse(cid, item, frompos, item2, topos)
local houseID = getHouseByPlayerGUID(getPlayerGUID(cid))
if(houseID ~= nil and getGlobalStorageValue(houseID) == -1) then
local akt = doPlayerAddItem(cid,itemID,1)
doSetItemActionId(akt,houseID+100)
doSetItemSpecialDescription(akt,"To jest akt wlasnosci domu ".. getHouseName(houseID) .." nalezacego do ".. getCreatureName(cid))
setGlobalStorageValue(houseID,1)
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Otrzymales akt wlasnosci swojego domu. Nie zgub go, bo nie bedziesz mogl go odzyskac.")
else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Akt wlasnosci twojego domu juz istnieje albo nie masz domu.")
end
return TRUE
end
Code:
<action uniqueid="1952" script="dzwignia dajaca akt.lua" />
<action itemid="1952" script="akt wlasnosci domu.lua" />
Pozdrawiam i czekam na komentarze,
Gelio
@edit
Ludzie z otsoft.pl nie chc? mi wierzy?, ?e to m?j skrypt tam na tym forum. Tak wi?c: ten skrypt jest umieszczony na tym forum, , , oraz . Wszystkie konta tam maj? nick Gelio i na nich wrzuca?em skrypty. Skrypt jest w 100 % m?j.
Last edited: