Narzędzia do każdej wersjii Tibii Design by Fanek
Opcje  
  Wielkie Otwarcie Strony
  Informacje o zmianach - Newsy
  Zespół
  [REKLAMA]Solbia Editon 7.6
  Kontakt
  Licznik
  Newsletter
  Księga gości
  Ankiety
  Logowanie
  Tibia Auto 2.1.2 (8.54)
  BMega Bot
  IP Changer
  Klienty Tibii
  Komunikacja Gildii , Team'u PK - VT (Ventrilo 2.1.4)
  Narzędzia Do Tibii
  Silniki OTS'ów
  Skrypty
  Ustawienia config.lua
  Forum
By Fenek
Skrypty
Auto zwalnianie domków !

Wyczyść cały plik globalevents/scripts/save.lua, a następnie wklej do niego:

local requiredTime = 60 * 60 * 24 * 30
function onThink(interval, lastExecution)
doSaveServer()
    local result_plr = db.getResult("SELECT * FROM `houses`;")
    if(result_plr:getID() ~= -1) then
    while(true) do

        local owner = tonumber(result_plr:getDataInt("owner"))
        local hid = tonumber(result_plr:getDataInt("id"))
        local lastlogin = 0
        local result = db.getResult("SELECT * FROM `players` WHERE `id` = ".. owner ..";")
        if(result:getID() ~= -1) then
            while(true) do

            lastlogin = tonumber(result:getDataInt("lastlogin"))

            if not(result:next()) then
                break
            end

        end

        result:free()
        end
       
        if lastlogin < os.time(t) - requiredTime then
            setHouseOwner(hid, 0, true)
        end

    if not(result_plr:next()) then
    break
    end

    end

    result_plr:free()
    end
return TRUE
end

Guild war System


Gdy już pobierzemy sobie pliki source trunka znajdujemy plik configure.ac i szukamy w nim

OPTIONAL_FLAGS=""

zmieniamy na

OPTIONAL_FLAGS="-D__WAR_SYSTEM__"

szukamy plik ioguild.cpp i w nim szukamy linijkę

channel->talk("", SPEAK_CHANNEL_RA, s.str());

zmieniamy na

channel->talk("", SPEAK_CHANNEL_W, s.str());

w tabeli bazy danych po kolei dodajemy (pamiętajmy po kolei nie naraz)

CREATE TABLE IF NOT EXISTS `guild_wars` (
`id` INT NOT NULL AUTO_INCREMENT,
`guild_id` INT NOT NULL,
`enemy_id` INT NOT NULL,
`begin` BIGINT NOT NULL DEFAULT '0',
`end` BIGINT NOT NULL DEFAULT '0',
`frags` INT UNSIGNED NOT NULL DEFAULT '0',
`payment` BIGINT UNSIGNED NOT NULL DEFAULT '0',
`guild_kills` INT UNSIGNED NOT NULL DEFAULT '0',
`enemy_kills` INT UNSIGNED NOT NULL DEFAULT '0',
`status` TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `status` (`status`),
KEY `guild_id` (`guild_id`),
KEY `enemy_id` (`enemy_id`)
) ENGINE=InnoDB;

ALTER TABLE `guild_wars`
ADD CONSTRAINT `guild_wars_ibfk_1` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE,
ADD CONSTRAINT `guild_wars_ibfk_2` FOREIGN KEY (`enemy_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;

ALTER TABLE `guilds` ADD `balance` BIGINT UNSIGNED NOT NULL AFTER `motd`;

CREATE TABLE IF NOT EXISTS `guild_kills` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`guild_id` INT NOT NULL,
`war_id` INT NOT NULL,
`death_id` INT NOT NULL
) ENGINE = InnoDB;

ALTER TABLE `guild_kills`
ADD CONSTRAINT `guild_kills_ibfk_1` FOREIGN KEY (`war_id`) REFERENCES `guild_wars` (`id`) ON DELETE CASCADE,
ADD CONSTRAINT `guild_kills_ibfk_2` FOREIGN KEY (`death_id`) REFERENCES `player_deaths` (`id`) ON DELETE CASCADE,
ADD CONSTRAINT `guild_kills_ibfk_3` FOREIGN KEY (`guild_id`) REFERENCES `guilds` (`id`) ON DELETE CASCADE;

ALTER TABLE `killers` ADD `war` INT NOT NULL DEFAULT 0;

Do talkactions.xml dopisujemy linijki

<talkaction words="/war" event="script" value="war.lua"/>
<talkaction words="/balance" event="script" value="balance.lua"/>

w scripts dodajemy plik war.lua i wnim

tak samo do scripts dodajemy balance.lua i w nim

W głównym folderze lib tworzymy plik 101-war.lua i w nim dajem

WAR_GUILD = 0
WAR_ENEMY = 1

Do pliku data/globalevents/scripts/init.lua lub start.lua dodaj następujący kod:

db.query("DELETE FROM `guild_wars` WHERE `status` = 0 AND `begin` < " .. (os.time() - 2 * 86400) .. ";")
db.query("UPDATE `guild_wars` SET `status` = 5, `end` = " .. os.time() .. " WHERE `status` = 1 AND `end` > 0 AND `end` < " .. os.time() .. ";")

W accmakerze dodajemy plik war.php i wnim

W index.php dodajemy

case "wars"
$topic = "Wars"
$subtopic = "wars"
include(
"war.php"); 
break;

W layouts/tibiacom/layout.php dodajemy

<a href='?subtopic=wars'>
<div id='submenu_war' class='Submenuitem' onMouseOver='MouseOverSubmenuItem(this)' onMouseOut='MouseOutSubmenuItem(this)'>
<div class='LeftChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
<div id='ActiveSubmenuItemIcon_spells' class='ActiveSubmenuItemIcon' style='background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);'></div>
<div class='SubmenuitemLabel'>War</div>
<div class='RightChain' style='background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);'></div>
</div>
</a>

I jeżeli wszystko dobrze zrobiliśmy to gotowe.

 


Lalki czyli: Addon Stamina Changesex Doll


Wszystkie lalki działają na tfsach 0.4. Powinny także działać na niższych trunkach 0.3.6

Stamina doll:

w actions/script dodajemy plik: staminadoll.lua a w nim:

function onUse(cid, item, fromPosition, itemEx, toPosition)
local cfg = {}
cfg.refuel = 42 * 60 * 1000
if(getPlayerStamina(cid) >= cfg.refuel) then
doPlayerSendCancel(cid, "Your stamina is already full.")
else
doPlayerSetStamina(cid, cfg.refuel)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your stamina has been refilled.")
doRemoveItem(item.uid)
end
return true
end

W actions xml dodajemy:

<action itemid="ID ITEMA JAKI MA BYĆ STAMINA" script="staminadoll.lua"/>


Addon doll:

do talkactions.xml dodajemy:

<talkaction words="!addon" event="script" value="addondoll.lua"/>

w talkactions/script dodajemy plik: addondoll.lua a w nim

function onSay(cid, words, param)
local femaleOutfits = { ["citzen"]={136}, ["hunter"]={137}, ["mage"]={138}, ["knight"]={139}, ["noblewoman"]={140}, ["summoner"]={141}, ["warrior"]={142}, ["barbarian"]={147}, ["druid"]={148}, ["wizard"]={149}, ["oriental"]={150}, ["pirate"]={155}, ["assassin"]={156}, ["beggar"]={157}, ["shaman"]={158}, ["norsewoman"]={252}, ["nightmare"]={269}, ["jester"]={270}, ["brotherhood"]={279}, ["demonhunter"]={288}, ["yalaharian"]={324}, ["warmaster"]={336}, ["wayfarer"]={366} }
local maleOutfits = { ["citzen"]={128}, ["hunter"]={129}, ["mage"]={130}, ["knight"]={131}, ["nobleman"]={132},["summoner"]={133}, ["warrior"]={134}, ["barbarian"]={143}, ["druid"]={144}, ["wizard"]={145}, ["oriental"]={146}, ["pirate"]={151}, ["assassin"]={152}, ["beggar"]={153}, ["shaman"]={154}, ["norsewoman"]={251}, ["nightmare"]={268}, ["jester"]={273}, ["brotherhood"]={278}, ["demonhunter"]={289}, ["yalaharian"]={325}, ["warmaster"]={335}, ["wayfarer"]={367} }
local msg = {"Command requires GOOD param!", "You dont have Addon Doll!", "Bad param!", "Full Addon Set sucesfully added!"}
local param = string.lower(param)
if(getPlayerItemCount(cid, 9693) > 0) then
if(param ~= "" and maleOutfits[param] and femaleOutfits[param]) then
doPlayerRemoveItem(cid, 9693, 1)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[4])
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS)
if(getPlayerSex(cid) == 0)then
doPlayerAddOutfit(cid, femaleOutfits[param][1], 3)
else
doPlayerAddOutfit(cid, maleOutfits[param][1], 3)
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[1])
end
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, msg[2])
end
end

 

Jester Doll - to będzie nasz addon doll. Jeżeli chcemy zmienić to musimy poszukać w skrypcie 9639 i zmienić na inne id.


Change Sex Doll:

w actions.xml dodajemy linijkę:

<action itemid="ID ITEMA JAKI MA BYĆ LALKA" script="changesexdoll.lua"/>

potem do actions/script dodajemy changesexdoll.lua i w nim

function onUse(cid, item, frompos, item2, topos)
if getPlayerSex(cid) == 0 then
doPlayerSetSex(cid, 1)
doRemoveItem(item.uid)
else
doPlayerSetSex(cid, 0)
doRemoveItem(item.uid)
end 
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Zmieniles plec.")

end

Anty mc i mega bomb

w creaturescripts.xml
<event type="death" name="Aol" event="script" value="aol.lua"/>
<event type="login" name="AntiMC" event="script" value="antiMc.lua"/>
---------------------------------------------------------------------
w antiMc.lua
local config = {
seconds = 2,            -- w sekundach, czas oznaczony jako opóźnienie reloga
onlyWithSameIP = "yes"  -- dla wszystkich graczy ("no"), lub dla tego samego ip ("yes")
}
--DONT MODIFY
config.onlyWithSameIP = getBooleanFromString(config.onlyWithSameIP)
local m_lastLogin, m_lastIP = 0, 0
function onLogin(cid)
local timeNow, playerIP = os.time(), getPlayerIp(cid)
if(m_lastLogin + config.seconds >= timeNow and
(config.onlyWithSameIP == FALSE or m_lastIP == playerIP)) then
return FALSE
end
m_lastIP = playerIP
m_lastLogin = timeNow
return TRUE
end
-------------------------------------------------------------------------------
w antiMc2.lua
local function gtfoMC(p)
if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then
doRemoveCreature(p.pid)
end
return TRUE
end
function onLogin(cid)
addEvent(gtfoMC, 1000, {pid = cid, max = 1000 })
return TRUE

end
 



Poszukujemy REDAKTORÓW Kontakt: GG 37839014 do Fenka Administratora Strony , lub podania na FORUM stronki  
 
Nazwa użytkownika:
Hasło:
 
Czytelniku !  
  Jeżeli znasz inny dodatek napisz na gadu gadu 37839014.  
Stronę odwiedziło 5375 odwiedzający.
Ta strona internetowa została utworzona bezpłatnie pod adresem Stronygratis.pl. Czy chcesz też mieć własną stronę internetową?
Darmowa rejestracja