• 01-04.05.2026 - DOUBLE EXP / SKILL EVENT!

Talkactions Summon monsters.

Oskar

Forum friend
Przyjaciel forum
Zarejestrowany
Dołączył
Styczeń 24, 2009
Posty
2256
Liczba reakcji
331
Oto znany wszystkim czar na przywo?ywanie potwork?w, piszemy nazw? potwora, kt?rego chcemy przywo?a? i, je?li mamy odpowiedni poziom do?wiadczenia, ilo?? many oraz skill w przywo?ywaniu monster?w, to potw?r przechodzi na nasz? stron?.

Advance Summon Monsters
Do talkactions.xml wklejamy:
PHP:
<talkaction words="summon" script="summon.lua" />


Sam system wygl?da tak:
PHP:
["bear"] = {level = 21, effect = CONST_ME_CARNIPHILA, dist_eff = CONST_ANI_SMALLEARTH, expe = {6,9}, skill_level = 0, name = "bear", mana = 300, voc = {1,2,3,4,5,6,7,8}},
level - wymagany poziom do?wiadczenia do przej?cia monstera,
effect - jaki efekt ma si? pojawi? na potworze (u mnie na ssie wida? o co chodzi),
dist_eff - jaki efekt strza?u,
expe - ile expa ma dodawa? do naszego nowego skilla,
skill_level - jaki skill (umiej?tno?ci przywo?ywania monster?w) trzeba mie? by m?c przej?c tego moba, rozpoczynamy gr? z poziomem zerowym "0", a sko?czy? mo?emy na poziomie mistrzowskim, czyli 11,
name - nazwa potworka,
mana - ilo?? potrzebnej many do przej?cia,
voc - jakie profesje mog? przywo?ywa? tego potwora.
 
Odp: Summon monsters.

local summons = {
["troll"] = {name = "troll", mana = 500, voc = {8,15,17}},
["rat"] = {name = "rat", mana = 100, voc = {15,12,13}},
["vampire bride"] = {name = "vampire bride", mana = 300, voc = {15}}
}
Lol? Po co deklarowa? w tablicy dodatkowo name, skoro odpowiada za to indeks? Strata pami?ci... M?g?by? zrobi? czas jaki summon ?yje przez addEvent... Og?lnie 8/10.
 
Odp: Summon monsters.

Pomy?l? nad d?ugo?ci? ?ycia summona, ale p?ki co czekam na opinie.
 
Odp: Summon monsters.

xd
Skrypt zosta? bardzo przerobiony.
Jak mo?na zauwa?y? dosz?o sporo nowych zmiennych. Mi?dzy innymi:
PHP:
local exhausted_storagevalue = 2000
local exhausted_seconds = 2
Pierwsza odpowiada za storage exhausted wi?c mo?na zmieni? na takie kt?rego si? nie u?ywa, drugi za? ilo?? sekund posiadanego "zm?czenia".

Za? to:
PHP:
local count_to_lv = {3, 6, 9, 12, 15}
local levels = {1, 2, 3, 4, 5}
local keys = 1004
local lv_storage = 1005
To co? zupe?nie nowego.
Pierwsza lokalna odpowiada za ilo?? przyzwanych potwor?w na awans, druga zmienna na ilo?? poziom?w do?wiadczenia w ?w umiej?tno?ci, trzecia to storage u?yty do liczenia ilo?ci przyzwanych potwor?w, czwarta to storage level?w.

W tabeli:
PHP:
["troll"] = {level = 20, skill_level = 1, name = "troll", mana = 500, voc = {8,15,17}},
["troll"] to nazwa potworka, kt?rego b?dzie mo?na przywo?ywa? ,level to minimalny poziom do wezwania, skill_level to poziom do?wiadczenia w ?w umiej?tno?ci, name to nazwa potwora, mana to ilo?? potrzebnej many, voc to ID profesji, kt?re mog? przywo?ywa? ?w moba.


Wyja?ni? jak to dzia?a.
W tym przypadku po wezwaniu trzeciego potworka awansujemy na poziom pierwszy "zdolno?ci przywo?ywania potwor?w", po zsummonowaniu sz?stego dostajemy awans na poziom drugi i tak dalej.
My?l? ?e si? podoba ^^
 
Ostatnia edycja:
Odp: Summon monsters.

Jak na moje oko nowicjusza wyglada to niezle, widac iz zajol ci nie malo pracy owy skrypt. Pomysl ze zmeczenim jest wspanialy zreszta jak caly ten pomysl, bravo! Kontynuuj bo idzie ci dobrze, ocena 9/10.
 
Odp: Summon monsters.

Dobra robota, z reszt? jak chyba ka?da Twoja praca^^.


Wyja?ni? jak to dzia?a.
W tym przypadku po wezwaniu trzeciego potworka awansujemy na poziom pierwszy "zdolno?ci przywo?ywania potwor?w", po zsummonowaniu sz?stego dostajemy awans na poziom drugi i tak dalej.
My?l? ?e si? podoba ^^
Nie za du?o summon?w b?dzie, skoro na 2 poziomie mo?na a? sze?? przywo?a??
 
Ostatnia edycja:
Odp: Summon monsters.

Jakie znowu sze???
W skrypcie jest zadeklarowane ilo?? summon?w, o tutaj:
PHP:
local max_summons = 2
I tutaj:
PHP:
local summons = getCreatureSummons(cid)
if(table.maxn(summons) <= max_summons-1) then
Wi?c Twoje spostrze?enie by?o b??dne.

W skrypcie chodzi o przywo?anie trzeciego potworka, nie trzech naraz.
Dla przyk?adu - przywo?ujemy dwa trolle dla zabawy, jeden ginie, summonujemy kolejnego i dostajemy awans na wy?szy stopie? wtajemniczenia.

#down
W skrypcie ustawiasz skill_level = 1, w tym wypadku maj?c zerowy poziom nie przywo?amy tego potworka, ale je?li awansujemy na poziom zadeklarowany w skrypcie, w tym przypadku 1 to zyskujemy mo?liwo?? jego przywo?ania.
 
Ostatnia edycja:
Odp: Summon monsters.

Aha, a co taki wy?szy poziom by dawa??

@Edit:
Aha, ok dobry i przydatny skrypt;)
 
Ostatnia edycja:
Odp: Summon monsters.

Podzia?a na tibii 8.1?? Bo skrypt fajny, a i mam jeszcze jedno pytanie jakby mo?na by?o takiego potworka uleczy? gdyby by? troszk? "po-obijany".

@edit
Mam pytanko czy m?g?by? na PW lub tutaj da? mi przerobiony skrypt w ten spos?b ?e je?eli dany potw?r b?dzie z-summonowany to co jaki? czas b?dzie ulecza? swojego pana.

@edit.2
Skrypt spoko poustawia?em se :P
lecz jest 1 b??d (silnik 8.1)
:: Loading Talkactions ...Warning: [Event::loadScript] Can not load script. data
/talkactions/scripts/summonowanie_levelowe.lua
data/talkactions/scripts/summonowanie_levelowe.lua:17: '}' expected (to close '{
' at line 13) near '['

Prosz? o HELP
 
Ostatnia edycja:
Odp: Summon monsters.

Poka? co zmieni?e?, ca?y skrypt wklej, gdy? konsola m?wi i? nie masz zamkni?te nawiasu sze?ciennego.
Potw?r ma ulecza?? Heh... To ju? nie moja dzia?ka.

#edit
Od teraz nie mo?na u?ywa? czaru w domkach i PZ.

My?l? ?e temat mo?na przenie?? do dzia?u talkactions.
 
Ostatnia edycja:
Odp: Summon monsters.

PHP:
function onSay(cid, words, param)
local count_to_lv = {5, 10, 20, 40, 80, 100}
local levels = {1, 2, 3, 4, 5, 6}
local keys = 10001
local lv_storage = 10000
local exhausted_storagevalue = 10002
local exhausted_seconds = 120
local storages = getPlayerStorageValue(cid, keys)
if getPlayerStorageValue(cid, lv_storage) == -1 or storages == -1 then
    setPlayerStorageValue(cid, lv_storage, 0)
    storages = 10003
end
local summons = {
                ["Wilk Bojowy"] = {level = 5, skill_level = 0, name = "Wilk Bojowy", mana = 20, voc = {4,1,2,3}},
                ["Wilk Wojenny"] = {level = 10, skill_level = 1, name = "Wilk Wojenny", mana = 50, voc = {4,1,2,3}},
                ["Tresowany Minotaur"] = {level = 15, skill_level = 2, name = "Tresowany Minotaur", mana = 100, voc = {4,1,2,3}}
                ["Minotaur Mag"] = {level = 20, skill_level = 3, name = "Minotaur Mag", mana = 120, voc = {1}},
                ["Minotaur Strzelec"] = {level = 20, skill_level = 3, name = "Minotaur Strzelec", mana = 120, voc = {3}},
                ["Minotaur Wojownik"] = {level = 20, skill_level = 3, name = "Minotaur Wojownik", mana = 120, voc = {4}},
                ["Minotaur Ochroniarz"] = {level = 20, skill_level = 3, name = "Minotaur Ochroniarz", mana = 120, voc = {2}},
                }
local max_summons = 1
local summ = summons[tostring(param)]
if summ then
    if os.time() > getPlayerStorageValue(cid, exhausted_storagevalue)  then
        if getPlayerStorageValue(cid, lv_storage) >= summ.skill_level then
            if isInArray(summ.voc, getPlayerVocation(cid)) then
                if getPlayerLevel(cid) >= summ.level then
                    if getCreatureMana(cid) >= summ.mana then
                        local summons = getCreatureSummons(cid)
                        if(table.maxn(summons) <= max_summons-1) then
                            local mob = doSummonCreature(summ.name, getCreaturePosition(cid))
                            doConvinceCreature(cid, mob)
                            doPlayerAddMana(cid, -summ.mana, false)
                            doPlayerAddSpentMana(cid, summ.mana)
                            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED)
                            doCreatureSay(cid, words.." "..param, TALKTYPE_ORANGE_1)
                            setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds)
                                for i = 1, #count_to_lv do
                                    if storages == count_to_lv[i] then 
                                        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Twoja zdolnosc przywolywania potworow wzrosla na poziom "..i)
                                        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MORTAREA)
                                        setPlayerStorageValue(cid, lv_storage, levels[i])
                                    end
                                    if storages <= count_to_lv[i] then
                                        setPlayerStorageValue(cid, keys, storages + 1)
                                    end
                                end
                        else
                            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                            doPlayerSendCancel(cid, "Nie mozesz przywolac wiekszej ilosci potworow.")
                        end
                    else
                        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                        doPlayerSendCancel(cid, "Masz za malo many.")
                    end
                else
                    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                    doPlayerSendCancel(cid, "Twoj poziom doswiadczenia jest za niski.")
                end
            else
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
            end
        else
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
            doPlayerSendCancel(cid, "Twoj poziom znajomosci przywolywania potworow jest zbyt niski.")
        end
    else
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        doPlayerSendCancel(cid, "Stworzenie mozna przywolac dopierom po 2 minutach.")
    end
else
    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
    doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
end
return true
end

Ja tu tylko zmieni?em potworki :) no i troszk? tekst i levele :D
 
Ostatnia edycja:
Odp: Summon monsters.

PHP:
function onSay(cid, words, param)
local count_to_lv = {5, 10, 20, 40, 80, 100}
local levels = {1, 2, 3, 4, 5, 6}
local keys = 10001
local lv_storage = 10000
local exhausted_storagevalue = 10002
local exhausted_seconds = 120
local storages = getPlayerStorageValue(cid, keys)
if getPlayerStorageValue(cid, lv_storage) == -1 or storages == -1 then
    setPlayerStorageValue(cid, lv_storage, 0)
    storages = 10003
end
local summons = {
                ["Wilk Bojowy"] = {level = 5, skill_level = 0, name = "Wilk Bojowy", mana = 20, voc = {4,1,2,3}},
                ["Wilk Wojenny"] = {level = 10, skill_level = 1, name = "Wilk Wojenny", mana = 50, voc = {4,1,2,3}},
                ["Tresowany Minotaur"] = {level = 15, skill_level = 2, name = "Tresowany Minotaur", mana = 100, voc = {4,1,2,3}},
                ["Minotaur Mag"] = {level = 20, skill_level = 3, name = "Minotaur Mag", mana = 120, voc = {1}},
                ["Minotaur Strzelec"] = {level = 20, skill_level = 3, name = "Minotaur Strzelec", mana = 120, voc = {3}},
                ["Minotaur Wojownik"] = {level = 20, skill_level = 3, name = "Minotaur Wojownik", mana = 120, voc = {4}},
                ["Minotaur Ochroniarz"] = {level = 20, skill_level = 3, name = "Minotaur Ochroniarz", mana = 120, voc = {2}}
                }
local max_summons = 1
local summ = summons[tostring(param)]
if summ then
    if os.time() > getPlayerStorageValue(cid, exhausted_storagevalue)  then
        if getPlayerStorageValue(cid, lv_storage) >= summ.skill_level then
            if isInArray(summ.voc, getPlayerVocation(cid)) then
                if getPlayerLevel(cid) >= summ.level then
                    if getCreatureMana(cid) >= summ.mana then
                        local summons = getCreatureSummons(cid)
                        if(table.maxn(summons) <= max_summons-1) then
                            local mob = doSummonCreature(summ.name, getCreaturePosition(cid))
                            doConvinceCreature(cid, mob)
                            doPlayerAddMana(cid, -summ.mana, false)
                            doPlayerAddSpentMana(cid, summ.mana)
                            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_RED)
                            doCreatureSay(cid, words.." "..param, TALKTYPE_ORANGE_1)
                            setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds)
                                for i = 1, #count_to_lv do
                                    if storages == count_to_lv[i] then 
                                        doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Twoja zdolnosc przywolywania potworow wzrosla na poziom "..i)
                                        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MORTAREA)
                                        setPlayerStorageValue(cid, lv_storage, levels[i])
                                    end
                                    if storages <= count_to_lv[i] then
                                        setPlayerStorageValue(cid, keys, storages + 1)
                                    end
                                end
                        else
                            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                            doPlayerSendCancel(cid, "Nie mozesz przywolac wiekszej ilosci potworow.")
                        end
                    else
                        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                        doPlayerSendCancel(cid, "Masz za malo many.")
                    end
                else
                    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                    doPlayerSendCancel(cid, "Twoj poziom doswiadczenia jest za niski.")
                end
            else
                doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
                doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
            end
        else
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
            doPlayerSendCancel(cid, "Twoj poziom znajomosci przywolywania potworow jest zbyt niski.")
        end
    else
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        doPlayerSendCancel(cid, "Stworzenie mozna przywolac dopierom po 2 minutach.")
    end
else
    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
    doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
end
return true
end

Musisz zapami?ta?, ?e dodaj?c nowego potworka do tablicy na ko?cu nie ma by? przecinka.
 
Odp: Summon monsters.

Teraz kod mam taki:
PHP:
function onSay(cid, words, param)
local count_to_lv = {5, 10, 20, 40, 80, 100}
local levels = {1, 2, 3, 4, 5, 6}
local keys = 10001
local lv_storage = 10000
local exhausted_storagevalue = 10002
local exhausted_seconds = 120
local pos = getCreaturePosition(cid)
local storages = getPlayerStorageValue(cid, keys)
if getPlayerStorageValue(cid, lv_storage) == -1 or storages == -1 then
    setPlayerStorageValue(cid, lv_storage, 0)
    storages = 10003
end
local summons = {
                ["Wilk Bojowy"] = {level = 5, skill_level = 0, name = "Wilk Bojowy", mana = 20, voc = {4,1,2,3}},
                ["Wilk Wojenny"] = {level = 10, skill_level = 1, name = "Wilk Wojenny", mana = 50, voc = {4,1,2,3}},
                ["Tresowany Minotaur"] = {level = 15, skill_level = 2, name = "Tresowany Minotaur", mana = 100, voc = {4,1,2,3}}
                ["Minotaur Mag"] = {level = 20, skill_level = 3, name = "Minotaur Mag", mana = 120, voc = {1}},
                ["Minotaur Strzelec"] = {level = 20, skill_level = 3, name = "Minotaur Strzelec", mana = 120, voc = {3}},
                ["Minotaur Wojownik"] = {level = 20, skill_level = 3, name = "Minotaur Wojownik", mana = 120, voc = {4}},
                ["Minotaur Ochroniarz"] = {level = 20, skill_level = 3, name = "Minotaur Ochroniarz", mana = 120, voc = {2}}
                }
local max_summons = 1
local summ = summons[tostring(param)]
if summ then
    if os.time() > getPlayerStorageValue(cid, exhausted_storagevalue)  then
        if not(getTilePzInfo(pos) == true or getTileHouseInfo(pos) == true) then
            if getPlayerStorageValue(cid, lv_storage) >= summ.skill_level then
                if isInArray(summ.voc, getPlayerVocation(cid)) then
                    if getPlayerLevel(cid) >= summ.level then
                        if getCreatureMana(cid) >= summ.mana then
                            local summons = getCreatureSummons(cid)
                            if(table.maxn(summons) <= max_summons-1) then
                                local mob = doSummonCreature(summ.name, pos)
                                doConvinceCreature(cid, mob)
                                doPlayerAddMana(cid, -summ.mana, false)
                                doPlayerAddSpentMana(cid, summ.mana)
                                doSendMagicEffect(pos, CONST_ME_MAGIC_RED)
                                doCreatureSay(cid, words.." "..param, TALKTYPE_ORANGE_1)
                                setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds)
                                    for i = 1, #count_to_lv do
                                        if storages == count_to_lv[i] then 
                                            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Twoja zdolnosc przywolywania potworow wzrosla na poziom "..i)
                                            doSendMagicEffect(pos, CONST_ME_MORTAREA)
                                            setPlayerStorageValue(cid, lv_storage, levels[i])
                                        end
                                        if storages <= count_to_lv[i] then
                                            setPlayerStorageValue(cid, keys, storages + 1)
                                        end
                                    end
                            else
                                doSendMagicEffect(pos, CONST_ME_POFF)
                                doPlayerSendCancel(cid, "Nie mozesz przywolac wiekszej ilosci potworow.")
                            end
                        else
                            doSendMagicEffect(pos, CONST_ME_POFF)
                            doPlayerSendCancel(cid, "Masz za malo many.")
                        end
                    else
                        doSendMagicEffect(pos, CONST_ME_POFF)
                        doPlayerSendCancel(cid, "Twoj poziom doswiadczenia jest za niski.")
                    end
                else
                    doSendMagicEffect(pos, CONST_ME_POFF)
                    doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
                end
            else
                doSendMagicEffect(pos, CONST_ME_POFF)
                doPlayerSendCancel(cid, "Twoj poziom znajomosci przywolywania potworow jest zbyt niski.")
            end
        else
            doSendMagicEffect(pos, CONST_ME_POFF)
            doPlayerSendCancel(cid, "Musisz opuscic strefe Ochronna.")
        end
    else
        doSendMagicEffect(pos, CONST_ME_POFF)
        doPlayerSendCancel(cid, "Jestes zmeczony.")
    end
else
    doSendMagicEffect(pos, CONST_ME_POFF)
    doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
end
return true
end

a wyskakuje takie co?:

:: Loading Talkactions ...Warning: [Event::loadScript] Can not load script. data
/talkactions/scripts/summonowanie_levelowe.lua
data/talkactions/scripts/summonowanie_levelowe.lua:18: '}' expected (to close '{
' at line 14) near '['

HELP!!!

@edit
Upss, nie zauwa?y?em dobra przepraszam -.-

Ale tera jak tego u?ywa??
Bo wpisuje !summon Wilk Bojowy i tylko tekst si? pokazuje.

@edit.2
ok musz? wpisywa? !summon "Wilk Bojowy"
ale pisze mi ze nie moge ;/
"Nie jeste? w stanie przywo?a? tego stworzenia"
 
Ostatnia edycja:
Odp: Summon monsters.

Odpowiedzi na Tw?j problem s? dwie, albo nie masz odpowiedniej profesji ow? postaci? albo nazwy potwork?w si? nie zgadzaj?.
Spr?buj pozamienia? wielko?ci liter w kwadratowych nawiasach.
 
Odp: Summon monsters.

hmmm....
No wpisuje co do literki nazw? potworka. I nadal to samo. Profesja jest taka jaka powinna, mo?e da si? jako? to przerobi? by dzia?a?o xD

@edit
czekaj czekaj ja tych potwork?w do monsters.xml nie doda?em zaraz sprawdz? i zdam raport :|

@edit.2
I nadal to samo :/ Doda?em do monsters.xml
Zr?b skrypt gdzie b?dzie omija?o wybieranie profesji :|

PS. Mam pomys? mo?e zr?b tak ?e zamiast profesji b?dzie pobiera?o warto?? ze zmiennej (storage value) a ta zmienna b?dzie si? ustawia? na profesje gracza. :D by? mo?e tak zadzia?a.
 
Ostatnia edycja:
Odp: Summon monsters.

!summon Wilk Bojowy
!summon "Wilk Bojowy"

Ani nie tak, ani nie tak. Wpisz !summon "Wilk Bojowy, z jednym cudzys?owem.
 
Odp: Summon monsters.

No, No, wida? podzia?a?o DZI?KI, lecz wyskoczy? mi b??d odno?nie "komedy" getCreatureMana wyskakuje takie co?
Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/summonowanie_levelowe.lua:onSay

data/talkactions/scripts/summonowanie_levelowe.lua:31: attempt to call global 'g
etCreatureMana' (a nil value)

zmieni?em getCreatureMana na getPlayerMana to ju? b??d ten nie wyskakuje ale wyskakuje inny
Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/summonowanie_levelowe.lua:onSay

data/talkactions/scripts/summonowanie_levelowe.lua:32: attempt to call global 'g
etCreatureSummons' (a nil value)

no i tego nie wiem jak zmieni?. Prosz? o pomoc.
 
Odp: Summon monsters.

U?ywasz pewnie jakiego? starszego silnika? Zapewne dlatego Ci nie dzia?a, gdy? Tw?j silnik nie posiada ?w funkcji.
Mam NaxedOT pod 8.54 i dzia?a bez zb?dnych przer?bek. Inni tak?e si? nie skar??.
A zast?pczej funkcji nie mog? znale??, a odpowiada ona za ilo?? przyzywanych potwork?w, je?li usuniesz t? cz??? kodu to gracz b?dzie m?g? przywo?a? ich niesko?czon? ilo??.

#edit
Sprawd?
PHP:
getPlayerSummons
 
Odp: Summon monsters.

O.o dzia?a tylko ?e:
Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/summonowanie_levelowe.lua:onSay

data/talkactions/scripts/summonowanie_levelowe.lua:33: bad argument #1 to 'maxn'
(table expected, got nil)
teraz to a skrypt taki:
PHP:
function onSay(cid, words, param)
local count_to_lv = {5, 10, 20, 40, 80, 100}
local levels = {1, 2, 3, 4, 5, 6}
local keys = 10001
local lv_storage = 10000
local exhausted_storagevalue = 10002
local exhausted_seconds = 120
local pos = getCreaturePosition(cid)
local storages = getPlayerStorageValue(cid, keys)
if getPlayerStorageValue(cid, lv_storage) == -1 or storages == -1 then
    setPlayerStorageValue(cid, lv_storage, 0)
    storages = 10003
end
local summons = {
                ["Wilk Bojowy"] = {level = 5, skill_level = 0, name = "Wilk Bojowy", mana = 20, voc = {4,1,2,3}},
                ["Wilk Wojenny"] = {level = 10, skill_level = 1, name = "Wilk Wojenny", mana = 50, voc = {4,1,2,3}},
                ["Tresowany Minotaur"] = {level = 15, skill_level = 2, name = "Tresowany Minotaur", mana = 100, voc = {4,1,2,3}},
                ["Minotaur Mag"] = {level = 20, skill_level = 3, name = "Minotaur Mag", mana = 120, voc = {1}},
                ["Minotaur Strzelec"] = {level = 20, skill_level = 3, name = "Minotaur Strzelec", mana = 120, voc = {3}},
                ["Minotaur Wojownik"] = {level = 20, skill_level = 3, name = "Minotaur Wojownik", mana = 120, voc = {4}},
                ["Minotaur Ochroniarz"] = {level = 20, skill_level = 3, name = "Minotaur Ochroniarz", mana = 120, voc = {2}}
                }
local max_summons = 1
local summ = summons[tostring(param)]
if summ then
    if os.time() > getPlayerStorageValue(cid, exhausted_storagevalue)  then
        if not(getTilePzInfo(pos) == true or getTileHouseInfo(pos) == true) then
            if getPlayerStorageValue(cid, lv_storage) >= summ.skill_level then
                if isInArray(summ.voc, getPlayerVocation(cid)) then
                    if getPlayerLevel(cid) >= summ.level then
                        if getPlayerMana(cid) >= summ.mana then
                            local summons = getPlayerSummons
                            if(table.maxn(summons) <= max_summons-1) then
                                local mob = doSummonCreature(summ.name, pos)
                                doConvinceCreature(cid, mob)
                                doPlayerAddMana(cid, -summ.mana, false)
                                doPlayerAddSpentMana(cid, summ.mana)
                                doSendMagicEffect(pos, CONST_ME_MAGIC_RED)
                                doCreatureSay(cid, words.." "..param, TALKTYPE_ORANGE_1)
                                setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds)
                                    for i = 1, #count_to_lv do
                                        if storages == count_to_lv[i] then 
                                            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Twoja zdolnosc przywolywania potworow wzrosla na poziom "..i)
                                            doSendMagicEffect(pos, CONST_ME_MORTAREA)
                                            setPlayerStorageValue(cid, lv_storage, levels[i])
                                        end
                                        if storages <= count_to_lv[i] then
                                            setPlayerStorageValue(cid, keys, storages + 1)
                                        end
                                    end
                            else
                                doSendMagicEffect(pos, CONST_ME_POFF)
                                doPlayerSendCancel(cid, "Nie mozesz przywolac wiekszej ilosci potworow.")
                            end
                        else
                            doSendMagicEffect(pos, CONST_ME_POFF)
                            doPlayerSendCancel(cid, "Masz za malo many.")
                        end
                    else
                        doSendMagicEffect(pos, CONST_ME_POFF)
                        doPlayerSendCancel(cid, "Twoj poziom doswiadczenia jest za niski.")
                    end
                else
                    doSendMagicEffect(pos, CONST_ME_POFF)
                    doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
                end
            else
                doSendMagicEffect(pos, CONST_ME_POFF)
                doPlayerSendCancel(cid, "Twoj poziom znajomosci przywolywania potworow jest zbyt niski.")
            end
        else
            doSendMagicEffect(pos, CONST_ME_POFF)
            doPlayerSendCancel(cid, "Musisz opuscic strefe Ochronna.")
        end
    else
        doSendMagicEffect(pos, CONST_ME_POFF)
        doPlayerSendCancel(cid, "Jestes zmeczony.")
    end
else
    doSendMagicEffect(pos, CONST_ME_POFF)
    doPlayerSendCancel(cid, "Nie jestes w stanie przywolac tego stworzenia.")
end
return true
end
 
Odp: Summon monsters.

?le mnie zrozumia?e?, mia?e? zamieni?:
PHP:
local summons = getCreatureSummons(cid)
Na:
PHP:
local summons = getPlayerSummons(cid)
U Ciebie brakuje (cid)
 
Back
Do góry