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 6325 odwiedzający.
Ta strona internetowa została utworzona bezpłatnie pod adresem Stronygratis.pl. Czy chcesz też mieć własną stronę?
Darmowa rejestracja