• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

Globalevents Raids. Losowanie. Max ilo?? na dzie?.

Status
Zamknięty.

Oskar

Forum friend
Dołączył
Styczeń 24, 2009
Posty
2256
Liczba reakcji
331
W globalevents robimy plik o jakiejś tam nazwie i wklejamy:
PHP:
local config = {
                {chance = 10, max_per_day = 1, name = 'Strongest Bosses', raids = {'Ferumbras', 'Ghazbaran', 'Morgaroth', 'Orshabaal'}},
                {chance = 23, max_per_day = 1, name = 'Stronger Bosses', raids = {'night elf', 'Demodras', 'Undead Army', 'Apprentice Sheng'}},
                {chance = 53, max_per_day = 4, name = 'Strong Bosses', raids = {'Orcs', 'the old widow', 'Elfs', 'Minotaurs', 'The Horned Fox', 'Necropharus', ' mino', 'Yeti'}},
                {chance = 70, max_per_day = 7, name = 'Normal Bosses', raids = {'rat', 'troll', 'Nomads', 'Fernfang', 'Tiqunada Revenge', 'Scarabs', 'Zulazza'}}
                }
local MAX_RAID = 6
local raids = {}

local function checkCountRaids(table)
local p = 0
for i = 1, #table do
	p = p + table[i]
end
return p
end

local function randomRaid()
local v = config[math.random(#config)]
if (raids[os.date('%Y')][os.date('%m')][os.date('%d')][v.name] or 0) < v.max_per_day then
	if math.random(100) <= v.chance then
		raids[os.date('%Y')][os.date('%m')][os.date('%d')][v.name] = (raids[os.date('%Y')][os.date('%m')][os.date('%d')][v.name] or 0) + 1
		print(v.name .. ' raid execute.')
		return executeRaid(v.raids[math.random(#v.raids)])
	end
	return randomRaid()
end
return true
end

function onThink(interval, lastExecution, thinkInterval)
raids[os.date('%Y')] = raids[os.date('%Y')] or {}
raids[os.date('%Y')][os.date('%m')] = raids[os.date('%Y')][os.date('%m')] or {}
raids[os.date('%Y')][os.date('%m')][os.date('%d')] = raids[os.date('%Y')][os.date('%m')][os.date('%d')] or {}
if checkCountRaids(raids[os.date('%Y')][os.date('%m')][os.date('%d')]) < MAX_RAID then
	return randomRaid()
end
return true
end
W globalevent.xml:
PHP:
<globalevent name="think" interval="900" event="script" value="nazwa.lua"/>
Proste jak barszcz.
PHP:
{storage = 1000, chance = 10, max_per_day = 1, name = 'Strongest Bosses', raids = {'Ferumbras', 'Ghazbaran', 'Morgaroth', 'Orshabaal'}},
Storage to storage, kt?re zapisuje ilość wylosowanych rajd?w danego typu. To global typ, więc ustawić na jakieś wolne.
chance to szansa na wylosowanie akurat tego typu rajdu.
max_per_day, sama nazwa m?wi, maksymalna ilość danego typu rajdu w ciągu całego dnia.
name to nazwa tej grupy rajd?w (w konsoli pojawia się informacja o typie rajdu i po to to jest).
raids to nasze rajdy, stworzone w odpowiednim folderze pod odpowiednią nazwą.
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Sorry za od?wie?anie no ale to tylko 8 dni :P

Mam pytanie.

raids to nasze rajdy, stworzone w odpowiednim folderze pod odpowiedni? nazw?.

Czy to s? nazwy raid?w ale z pliku raids.xml czy to s? nazwy tych wszystkich plik?w .xml raid?w. W sensie,

Ja w raids.xml mog? mie?
<raid name="Demodras"

ale plik, z kt?rego idzie ten raid nazywa si?:
file="demodras poh.xml"

czyli my tam mamy wpisa? raid name czy plik, z kt?rego idzie raid?? xD Sorry za takie dziwne t?umaczenie :p

troszk? do kupy. Pr?bowa?em obie nazwy i mi nie dzia?a ten skrypt ;/ Ca?y czas m?wi, ?e nie ma takiego raidu... :s
 
Ostatnia edycja:
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Wystarczy, ?e tam wpiszesz nazwy plik?w, kt?re znajduj? si? we folderze raids :)
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

ale i tak mi nie dzia?a ten skrypt ;( da?em 100% szansy ?eby na szybko jaki? raid wypr?bowa? i mi wywala b??d, ?e nie ma takiego raidu.... ;(


pr?bowa?em nazwy plik?w xml dawa? ka?dego raidu i te? nie dzia?a ;((
a mo?e trzeba na ko?cu np: "rats thais" da? .xml?? czyli b?dzie:
Kod:
'rats thais.xml', ..... bla bla bla

oto m?j skrypt
Kod:
local config = { 
                {storage = 101, chance = 10, max_per_day = 1, name = 'Super Bosses', raids = {'Orshabaal', 'Morgaroth', 'Ferumbras', 'Ghazbaran'}}, 
                {storage = 102, chance = 10, max_per_day = 1, name = 'Poi Bosses', raids = {'Dracola', 'The Plasmother', 'The Imperor', 'The Handmaiden', 'Mr. Punish', 'Massacre', 'Countess Sorrow'}}, 
                {storage = 103, chance = 10, max_per_day = 2, name = 'Normal Bosses', raids = {'Demodras', 'The Horned Fox', 'Necropharus', 'Pirates Florina', 'Giant Spiders Poh', 'Tiquandas Revenge'}}, 
                {storage = 104, chance = 25, max_per_day = 2, name = 'Stronger Normal Raids', raids = {'Undead Ankrahmun', 'Vampires Yalahar', 'Orcs Thais', 'Quaras Goroma', 'Lizards Tiquanda', 'Barbarians Svargrond'}}, 
                {storage = 105, chance = 100, max_per_day = 30, name = 'Normal Raids', raids = {'rats thais', 'wolf abdendriel', 'elf venore'}} 
                } 
local MAX_RAID = 10
local raids, dsa = {}, {} 

local function randomRaid() 
local v = config[math.random(#config)] 
if isInArray(dsa, v.storage) == false then table.insert(dsa, v.storage) end 
if getStorage(v.storage) < v.max_per_day then 
    if math.random(100) <= v.chance then 
        raids[os.date('%Y')][os.date('%m')][os.date('%d')] = raids[os.date('%Y')][os.date('%m')][os.date('%d')]+1 
        doSetStorage(v.storage, (getStorage(v.storage) ~= -1 and getStorage(v.storage)+1 or 1)) 
        print(v.name .. ' raid execute.') 
        return executeRaid(v[math.random(#v.raids)]) 
    end 
    return (#dsa < #config and randomRaid() or true) 
end 
return true 
end 

function onThink(interval, lastExecution, thinkInterval) 
raids[os.date('%Y')] = raids[os.date('%Y')] or {} 
raids[os.date('%Y')][os.date('%m')] = raids[os.date('%Y')][os.date('%m')] or {} 
raids[os.date('%Y')][os.date('%m')][os.date('%d')] = raids[os.date('%Y')][os.date('%m')][os.date('%d')] or 0 
if raids[os.date('%Y')][os.date('%m')][os.date('%d')] < MAX_RAID then 
    return randomRaid() 
end 
return true 
end

oraz globalevents.xml

Kod:
	<globalevent name="random raids" interval="900" event="script" value="raid.lua"/>
 
Ostatnia edycja:
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Te? mi co? nie trybi, tak na og?? on w og?le si? nie ?aduj?. Spr?buj? co? wymy?li?.
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Mo?e to zadzia?a:
PHP:
local config = { 
                {storage = 1000, chance = 10, max_per_day = 1, name = 'Strongest Bosses', raids = {'Ferumbras', 'Ghazbaran', 'Morgaroth', 'Orshabaal'}}, 
                {storage = 1001, chance = 23, max_per_day = 1, name = 'Stronger Bosses', raids = {'night elf', 'Demodras', 'Undead Army', 'Apprentice Sheng'}}, 
                {storage = 1002, chance = 53, max_per_day = 4, name = 'Strong Bosses', raids = {'Orcs', 'the old widow', 'Elfs', 'Minotaurs', 'The Horned Fox', 'Necropharus', ' mino', 'Yeti'}}, 
                {storage = 1003, chance = 70, max_per_day = 7, name = 'Normal Bosses', raids = {'rat', 'troll', 'Nomads', 'Fernfang', 'Tiqunada Revenge', 'Scarabs', 'Zulazza'}} 
                } 
local MAX_RAID = 6 
local raids, dsa = {}, {} 

local function randomRaid() 
local v = config[math.random(#config)] 
if isInArray(dsa, v.storage) == false then table.insert(dsa, v.storage) end 
if getStorage(v.storage) < v.max_per_day then 
    if math.random(100) <= v.chance then 
        raids[os.date('%Y')][os.date('%m')][os.date('%d')] = raids[os.date('%Y')][os.date('%m')][os.date('%d')]+1 
        doSetStorage(v.storage, (getStorage(v.storage) ~= -1 and getStorage(v.storage)+1 or 1)) 
        print(v.name .. ' raid execute.') 
        return executeRaid(v.raids[math.random(#v.raids)]) 
    end 
    return (#dsa < #config and randomRaid() or true) 
end 
return true 
end 

function onThink(interval, lastExecution, thinkInterval) 
raids[os.date('%Y')] = raids[os.date('%Y')] or {} 
raids[os.date('%Y')][os.date('%m')] = raids[os.date('%Y')][os.date('%m')] or {} 
raids[os.date('%Y')][os.date('%m')][os.date('%d')] = raids[os.date('%Y')][os.date('%m')][os.date('%d')] or 0 
if raids[os.date('%Y')][os.date('%m')][os.date('%d')] < MAX_RAID then 
    return randomRaid() 
end 
return true 
end
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

dzia?a. co prawda dziwi?em si? czemu mi b??dy wyskakiwa?y ale to dlatego, ?e nie mo?e by? wi?cej ni? 1 raid w tym samym czasie...

No, teraz skrypcik jest zajefajny :)

Repp leci ;)
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Mam pytanie.
Gdzie ustawiamy pozycje raidu?
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Bardzo dzi?kuj? za ten skrypt kiedy? go szuka?em i nigdy nie mog?em znale?? jeszcze raz bardzo dzi?kuje
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Update skryptu. Post pierwszy edytowany.
 
Odp: Raids. Losowanie. Max ilo?? na dzie?.

Fajne , w?a?nie pracuje nad ots i to wykorzystam :0

Edit . Jak ustawi? gdzie respi sie potw?w?
 
Ostatnia edycja:
Status
Zamknięty.
Do góry