What's new

Talkactions Summon monsters.

Zbiegniew Cebula

Active User
Joined
Nov 12, 2008
Messages
148
Reaction score
4
Odp: Summon monsters.

O a teraz takie co? :/
Lua Script Error: [TalkAction Interface]
data/talkactions/scripts/summonowanie_levelowe.lua:eek:nSay

data/talkactions/scripts/summonowanie_levelowe.lua:32: attempt to call global 'g
etPlayerSummons' (a nil value)
M?j skrypt jest 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(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
Mo?e u?y? jako? storage value?
Ja storage nie umiem si? niestety pos?ugiwa? ;(

@edit
A do czego to?:
PHP:
if(table.maxn(summons) <= max_summons-1) then

@edit.2
Mam pomys?, nie wypr?buj? go lecz si? pytam czy by m?g? taki by?:
Zamiast:
PHP:
local summons = getPlayerSummons(cid)
To:
PHP:
if (getPlayerStorageValue(cid, 666) <= max_summons-1) then
setPlayerStorageValue(cid, 666, 1)
setPlayerStorageValue(cid, 667, summ.numer)
(Gdzie summ.numer oczywi?cie w tablice by si? wpisa?o po kolei numerki potwor?w :D)
No i prawdopodobnie trzeba by?oby w creaturescripts
Je?eli umrze potw?r o nazwie np.: Wilk Bojowy i je?eli storage value 667 == 1 (albo co innego) to
ustaw storage value 666 na 0
end
return 1
end


Prosz? o informacj? dotycz?c? czy to jest dobre czy z?e :D
 
Last edited:

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Summon monsters.

W sumie mo?na i tak, ale to sztuczne zwi?kszenie pobierania pami?ci komputera.
Jak b?d? w domu to poszukam funkcj? zamienn? getCreatureSummons(cid) bo wydaje mi si?, ?e takowa istnieje.
Powiedz mi jakiego silnika u?ywasz?

Chcesz bym napisa? Ci skrypt w creaturescripts? Bo sam nie dasz sobie rady.
 

Zbiegniew Cebula

Active User
Joined
Nov 12, 2008
Messages
148
Reaction score
4
Odp: Summon monsters.

No skrypt w creaturesscripts mo?esz napisa? :hah:
U?ywam silnika DevLand 8.1.
 

plsaks

Advanced User
Joined
Aug 21, 2008
Messages
217
Reaction score
13
Odp: Summon monsters.

Oskar a da?o by si? go jako? przerobi? aby dzia?a? na Silniku 7.6 ??
Czy raczej nie ??
Bo je?li tak to skrypt do mojego ots by by? ol?niewaj?cy.

Czy mo?na po prostu podmieni? pliki utevo res " i po zmienia? kilka linijek ??

#Edit
A czy dzia?a? by pod nowsze wersje jak np: 8.1 lub 8.5

//Tak, dzia?a? powinien pod wersje 8.1 (bez) i wy?ej.
 
Last edited by a moderator:

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Summon monsters.

7.6 to XML, a na takim nigdy nie pracowa?em, wi?c nie potrafi? odpowiedzie? na Twoje pytanie.
W najbli?szym czasie zrobi?, ?e za ka?dego moba dostaje si? expa (ale nie tego do lvla), kt?rego ilo?? wyznaczymy w pliku, na przyk?ad za rata dostaniemy od 25-40 expa, a na poziom pierwszy tej?e umiej?tno?ci potrzebowaliby?my na przyk?ad 500 punkt?w. Za trolla 50-80 expa, za demca 250-400. To takie przyk?ady. I tu moje pytanie, czy zrobi? co? na tej zasadzie czy nie?
 

miszel13

User
Joined
Aug 8, 2010
Messages
36
Reaction score
1
Odp: Summon monsters.

a propo summonow mam tfs 0.3.6 i mam pytanie mianowicie jak wylaczyc sumonowanie danego potwora (najlepiej sciezka do pliku i jakis opis na przykladowym mobie) z gory dziekuje ;)


//Wyt?umacz, nic nie zrozumia?em.
 
Last edited by a moderator:

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Summon monsters.

Skrypt zosta? dodany o now? wersj? dost?pn? w po?cie pierwszym. Od teraz istniej? dwie wersj? skryptu "Summon monsters"
Zapraszam do wypowiadania si?.
 
Last edited:

Zbiegniew Cebula

Active User
Joined
Nov 12, 2008
Messages
148
Reaction score
4
Odp: Summon monsters.

hmm a ja si? nie doczekam no c?? przerobie se jako? utevo res :D

//Powiem Ci tyle, ?e si? nie op?aca pisa? tego skryptu dla Ciebie z jednej prostej przyczyny. Skrypt b?dzie d?ugi na ~30k znak?w, do ka?dego moba b?dziesz musia? dopisywa? jakie? linijki, gdy gracz si? wyloguje to nie zmieni mu storage i nie b?dzie m?g? wi?cej przywo?ywa?.
 
Last edited by a moderator:

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Summon monsters.

Od?wie?am i zapraszam do skomentowania mojego nowego pomys?u.
Trafiony? A mo?e chybi?em? Zawsze mog? jakie? przer?bki powprowadza?.
Innymi s?owy - od?wie?am.
 

Zbiegniew Cebula

Active User
Joined
Nov 12, 2008
Messages
148
Reaction score
4
Odp: Summon monsters.

hmm a ja si? nie doczekam no c?? przerobie se jako? utevo res :D
//Powiem Ci tyle, ?e si? nie op?aca pisa? tego skryptu dla Ciebie z jednej prostej przyczyny. Skrypt b?dzie d?ugi na ~30k znak?w, do ka?dego moba b?dziesz musia? dopisywa? jakie? linijki, gdy gracz si? wyloguje to nie zmieni mu storage i nie b?dzie m?g? wi?cej przywo?ywa?.

Jest chyba funkcja OnLogout ?

//Uwierz mi, szkoda czasu na ten skrypt. Przerzu? si? na wy?szy protok??.
 
Last edited by a moderator:

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Summon monsters.

Od?wie?am? Mile widziane komentarze.
 

Zbiegniew Cebula

Active User
Joined
Nov 12, 2008
Messages
148
Reaction score
4
Odp: Summon monsters.

Jest chyba funkcja OnLogout ?
//Uwierz mi, szkoda czasu na ten skrypt. Przerzu? si? na wy?szy protok??.

Ta tylko jaki wy?szy jest pod XML bo SQL to "czarna magia".

//SQL jest ?atwiejszy ani?eli XML. Je?li masz problemy to pisz na PW. Pomog?.
 
Last edited by a moderator:

Oskar

Forum friend
Joined
Jan 24, 2009
Messages
2,256
Reaction score
331
Odp: Summon monsters.

Skrypt zosta? od?wie?ony.
 
Top