Gelio
Senior User
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,
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:
Kod:
-- 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
Kod:
-- 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
Kod:
<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,
Nie masz wystarczających uprawnień, aby zobaczyć link.
Zaloguj or Rejestracja
,
Nie masz wystarczających uprawnień, aby zobaczyć link.
Zaloguj or Rejestracja
,
Nie masz wystarczających uprawnień, aby zobaczyć link.
Zaloguj or Rejestracja
oraz
Nie masz wystarczających uprawnień, aby zobaczyć link.
Zaloguj or Rejestracja
. Wszystkie konta tam maj? nick Gelio i na nich wrzuca?em skrypty. Skrypt jest w 100 % m?j.
Ostatnia edycja: