Ronit.GAMES
Zmiana systemu skrzyń v 1.3 - Printable Version

+- Ronit.GAMES (https://forum.ronit.games)
+-- Forum: RonEngine Support / Wsparcie dla RonEngine (https://forum.ronit.games/forumdisplay.php?fid=18)
+--- Forum: LUA/XML Scripting / Skryptowanie LUA/XML (https://forum.ronit.games/forumdisplay.php?fid=22)
+--- Thread: Zmiana systemu skrzyń v 1.3 (/showthread.php?tid=265)



Zmiana systemu skrzyń v 1.3 - Meritus - 21-03-2011

W nowej wersji skryptu obsługi skrzyń, przedmiot będący nagrodą może posiadać dowolne atrybuty opcjonalne np. przy dodaniu do pola text nazwy: "Dragon Lord" dla ID przedmiotu będącego kluczem zostanie stworzony przedmiot specjalny.

tabela konfiguracyjna:

PHP Code:
local actions = {
     --
Deklaracja pierwszej akcji w tym przypadku skrzyni to wersja demonstracyjna pełnych możliwości skryptu objaśnienia wstepne:                                                                                                                                                                                  
     --
Gdy nie potrzebne jest ktores z pola nalezy ustawic wartośc false badz usunanc calkowcie wpis.                                                                                                                                                                                                                              
     --
Podczas gdy są źle lub nie wypełnione pojawią się błędy!                                                                                                                                                                                                                                                                      
     --
Zakres ACTION ID to od 4000 do 5000 innych wartosci NIE nalezy wspistwać w pola _itemaid                                                                                                                                                                                                  
    
{                                                                                                                                                                                                                                                                              
        
_itemaid X,  --Każda npskrzynia musi mieć unikalne actionid standardowo od 4000 do 5000 ActionID (nie mylic z SV) ( ustawiamuy w mapedytorze )                                                                                                                          
        
_itemitemid X,  --Warunek dla ID                                                                                                                                                                                                                                          
        _itemiuid 
X,  --Warunek dla UID                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                  
        doSetSV 
X,  --SV, do którego zostaje wpisany klucz 1 gdy quest zostanie wykonany umożliwia dodanie kilku skrzyniom tego samego doSetSV przez co gracz wybiera nagrodę z pośród X skrzyń) ( ZOBACZ global.lua katalog lib SV_CHEST nalezy uzupelniac na biezaco
        
req_lvl X,  --Wymaganie lvlowe                                                                                                                                                                                                                                          
        PACC 
false,  --true gdy potrzeba PACCw przeciwym wypadku false zawsze false funkcja isPacc nie dotyczy na razie modułu actions )                                                                                                                                                                                                          
        
expirence X,  --ilosc otrzymanego doswiadczenia po wykonaniu zadania zawsze przy expie 1x mnozniki serwera mnoza dany exp opcjonalne )                                                                                                                                  
                                                                                                                                                                                                                                                                                    
        
rewards  =    {  --nagrody                                                                                                                                                                                                                                                    
                        
{name ''namepl''id Xcount 1},  --nazwa polskanazwa angielskaidentyfikatoriloscpoziom wyborowosci (opcjonalne).                                                                                                                          
                        {
name ''namepl''id Xcount 1, --subtype 1add 1level 1luck 1excellent 1skill 1text ""desc ""},  nazwa polskanazwa angielskaidentyfikatoriloscpoziom wyborowosci itp inne mozliwości(opcjonalne).    
                    },                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                    
        
doSetAdditSV =     {                                                                                                                                                                                                                                                            
                            {
additSV Xadditkey X},  --Ustawia dodatkowe SV (additSVo wartosci (additkeyprzy wykonaniu zadania opcjonalne )                                                                                                                            
                            {
additSV Xadditkey X},  --Ustawia dodatkowe SV (additSVo wartosci (additkeyprzy wykonaniu zadania opcjonalne )                                                                                                                            
                        },                                                                                                                                                                                                                                                            
        
SummonMonsters =     {  --Summonuje potwory na daną pozycję przypadek wykorzystania pola additfunctions opcjonalne )                                                                                                                                                      
                                {
monstername "Dragon"XXXdelay X},  --Tworzy Dragona na pozycji 100 100 7 opcjonalne delay to czas po jakim dany potwór ma się pokazać (w ms)  ( opcjonalny parametr )                                                    
                                {
monstername "Dragon"XXX,               },  --Tworzy Dragona na pozycji 100 100 7 opcjonalne delay to czas po jakim dany potwór ma się pokazać opcjonalny parametr )                                                      
                                                                                                                                                                                                                                                                                    
                            },                                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                    
        
SpecialMagicEffect = {  --Na danym obszarze pojawia się efekt magiczny przypadek wykorzystania pola additfunctions opcjonalne )                                                                                                                                          
                                    {
nr ME_TELEPORTXXXdelay X},  --Tworzy magiczny efekt ME_TELEPORT (nr 10na pozycji 100 100 7 opcjonalne delay to czas po jakim dany efekt ma się pokazać (w ms)  ( opcjonalny parametr )                          
                                    {
nr ME_TELEPORTXXX                 },  --Tworzy magiczny efekt ME_TELEPORT (nr 10na pozycji 100 100 7 opcjonalne delay to czas po jakim dany efekt ma się pokazać (w ms)  ( opcjonalny parametr )                      
                             },                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                     
        
additfunctions "sayidiot", --Wykonuje dowolna funkcje zawartą w 'function doAdditionalUseFunction(cid, item, frompos, item2, topos, index)' gdzie index to wartosc argumentu additfunctions Dla zawansowanych ) (opcjonalne )                                          
        
checkAnotherCondition false, --Sprawdza dodatkowy warunek zawarty w 'function checkAnotherCondition(cid, item, frompos, item2, topos, index)' gdzie index to wartosc argumentu additfunctionsnalezy zapewnic kominikat bleduDla zawansowanych ) (opcjonalne )           
    }, 

Zmiana funkcji onUse:

PHP Code:
function onUse(ciditemfrompositem2topos)
    for 
nr_chestvar_actions in ipairs(actions) do
        
        if     (
var_actions._itemaid ~= nil and var_actions._itemaid ~= false and item.actionid == var_actions._itemaid) or
            (
var_actions._itemitemid ~= nil and var_actions._itemitemid ~= false and item.itemid == var_actions._itemitemid) or
            (
var_actions._itemiuid ~= nil and var_actions._itemiuid ~= false and item.uid == var_actions._itemiuidthen

            
if var_actions.checkAnotherCondition ~= nil and var_actions.checkAnotherCondition ~= false then
                
if checkAnotherCondition(ciditemfrompositem2toposvar_actions.checkAnotherCondition) == false then
                    doSendMagicEffect
(topos,ME_POFF)
                    return 
1
                end
            end

            
if var_actions.PACC ~= nil and var_actions.PACC ~= false then
                
if var_actions.PACC == true and isPACC(cid) == 0 then
                    doPlayerSendCancel
(cid,'' ..getMessage(cid,5356).. '')
                    
doSendMagicEffect(topos,ME_POFF)
                    return 
1
                end
            end
            
            
if var_actions.req_lvl ~= nil and var_actions.req_lvl ~= false then
                
if getPlayerLevel(cid) < var_actions.req_lvl then
                    doPlayerSendCancel
(cid,'' ..getMessage(cid,5357).. ''.. var_actions.req_lvl ..'.')
                    
doSendMagicEffect(topos,ME_POFF)
                    return 
1
                end
            end        
            
            
if var_actions.doSetSV ~= nil and var_actions.doSetSV ~= false then
                
if getPlayerStorageValue(cidvar_actions.doSetSV) ~= -1 then
                    doPlayerSendCancel
(cid,'' ..getMessage(cid,5358).. '')
                    
doSendMagicEffect(topos,ME_POFF)
                    return 
1
                
elseif getPlayerStorageValue(cidvar_actions.doSetSV) == -1 then
                    test 
1
                
else
                    --
log(cid,'Critical Error(1) in actions.lua')
                    return 
1
                end                
            end

            
if var_actions.rewards ~= nil and var_actions.rewards ~= false then    
                
for uvar_rewards in pairs(var_actions.rewards) do
                    
doPlayerAddItemTable(cid, {id=var_rewards.idcount=var_rewards.countsubtype var_rewards.subtypeadd =var_rewards.addlevel=var_rewards.levelluck=var_rewards.luckexcellent=var_rewards.excellentskill=var_rewards.skilltext=var_rewards.textdesc=var_rewards.desc })        
                    --
log(cid,'Dodaje nagrode o id = '.. var_rewards.id ..' w ilosci = '.. var_rewards.count ..' + wyborosc poziomu = '.. var_rewards.excelent ..'')        
                
end
            end

            
if var_actions.expirence ~= nil and var_actions.expirence ~= false then
                addExperience
(cidvar_actions.expirence)
            else
                --
log(cid,'Brak dodawania doswiadczenia.')
            
end
                    
            
if var_actions.SummonMonsters ~= nil and var_actions.SummonMonsters ~= false then
                
for ivar_monster in pairs(var_actions.SummonMonsters) do
                    
pos = { var_monster.xvar_monster.yvar_monster.}
                    if 
var_monster.delay ~= nil then
                        addEvent
(doSummonCreature,var_monster.delay,var_monster.monsternamepos)
                        --
log(cid,'Dodaje delay na summonowanie potworkow = '.. var_monster.delay ..' potworek name = '.. var_monster.monstername ..'')
                    else
                        
doSummonCreature(var_monster.monsternamepos)
                        --
log(cid,'Brak argumentyu Delay wstawiam od razu na potworka o name '.. var_monster.monstername ..'')
                    
end
                end
            end
            
            
if var_actions.doSetAdditSV ~= nil and var_actions.doSetAdditSV ~= false then
                
for xvar_additSV in pairs(var_actions.doSetAdditSV) do
                    --
log(cid,'Dodaje Dodatkowe SV graczu o ID = '.. var_additSV.additSV ..' i kluczu '.. var_additSV.additkey ..'.')
                    
setPlayerStorageValue(cid,var_additSV.additSV,var_additSV.additkey)
                
end
            end
            
            
if var_actions.SpecialMagicEffect ~= nil and var_actions.SpecialMagicEffect ~= false then
                
for jvar_SpecialMagicEffect in pairs(var_actions.SpecialMagicEffect) do
                    
pos = { var_SpecialMagicEffect.xvar_SpecialMagicEffect.yvar_SpecialMagicEffect.}
                    if 
var_SpecialMagicEffect.delay ~= nil then
                        addEvent
(doSendMagicEffect,var_SpecialMagicEffect.delay,pos,var_SpecialMagicEffect.nr)
                        --
log(cid,'Dodaje opzniony o '.. var_SpecialMagicEffect.delay ..' magiczny efekt numer = '.. var_SpecialMagicEffect.nr ..'')
                    else
                        --
log(cid,'Dodaje bez opznienia magiczny efekt numer = '.. var_SpecialMagicEffect.nr ..'')
                        
doSendMagicEffect(pos,var_SpecialMagicEffect.nr)        
                    
end
                    
                end
            end

            
if var_actions.additfunctions ~= nil and var_actions.additfunctions ~= false then
                doAdditionalUseFunction
(ciditemfrompositem2toposvar_actions.additfunctions)    
            
end
            
            
if test == 1 then
                setPlayerStorageValue
(cidvar_actions.doSetSV1)            
            
end    
            
--log(cid,'Pomyslny koniec hehs.')    
            
doSendMagicEffect(frompos,ME_MAGIC_BLUE)
            return 
1  Koniec :p
        end
    end    
end