• Home
  • Members
  • Team
  • Help
  • Search
  • Register
  • Login
  • Home
  • Members
  • Help
  • Search
Ronit.GAMES RonEngine Support / Wsparcie dla RonEngine LUA/XML Scripting / Skryptowanie LUA/XML Zmiana systemu skrzyń v 1.3

 
  • 0 Vote(s) - 0 Average
Zmiana systemu skrzyń v 1.3
Meritus
Offline

Uzytkownik

Posts: 28
Threads: 19
Joined: Jun 2010
Reputation: 4
#1
21-03-2011, 11:24 PM (This post was last modified: 21-03-2011, 11:26 PM by Meritus.)
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 np. skrzynia 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 PACC, w 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 = X, count = 1},  --nazwa polska, nazwa angielska, identyfikator, ilosc, poziom wyborowosci (opcjonalne).                                                                                                                          
                        {
name = '', namepl= '', id = X, count = 1, --subtype = 1, add = 1, level = 1, luck = 1, excellent = 1, skill = 1, text = "", desc = ""},  nazwa polska, nazwa angielska, identyfikator, ilosc, poziom wyborowosci itp inne mozliwości(opcjonalne).    
                    },                                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                    
        
doSetAdditSV =     {                                                                                                                                                                                                                                                            
                            {
additSV = X, additkey = X},  --Ustawia dodatkowe SV (additSV) o wartosci (additkey) przy wykonaniu zadania ( opcjonalne )                                                                                                                            
                            {
additSV = X, additkey = X},  --Ustawia dodatkowe SV (additSV) o wartosci (additkey) przy wykonaniu zadania ( opcjonalne )                                                                                                                            
                        },                                                                                                                                                                                                                                                            
        
SummonMonsters =     {  --Summonuje potwory na daną pozycję - przypadek wykorzystania pola additfunctions ( opcjonalne )                                                                                                                                                      
                                {
monstername = "Dragon", x = X, y = X, z = X, delay = 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", x = X, y = X, z = X,               },  --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_TELEPORT, x = X, y = X, z = X, delay = X},  --Tworzy magiczny efekt ME_TELEPORT (nr 10) na pozycji 100 100 7 ( opcjonalne ) delay to czas po jakim dany efekt ma się pokazać (w ms)  ( opcjonalny parametr )                          
                                    {
nr = ME_TELEPORT, x = X, y = X, z = X                 },  --Tworzy magiczny efekt ME_TELEPORT (nr 10) na 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 additfunctions, nalezy zapewnic kominikat bledu( Dla zawansowanych ) (opcjonalne )           
    }, 

Zmiana funkcji onUse:

PHP Code:
function onUse(cid, item, frompos, item2, topos)
    for 
nr_chest, var_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._itemiuid) then

            
if var_actions.checkAnotherCondition ~= nil and var_actions.checkAnotherCondition ~= false then
                
if checkAnotherCondition(cid, item, frompos, item2, topos, var_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(cid, var_actions.doSetSV) ~= -1 then
                    doPlayerSendCancel
(cid,'' ..getMessage(cid,5358).. '')
                    
doSendMagicEffect(topos,ME_POFF)
                    return 
1
                
elseif getPlayerStorageValue(cid, var_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 u, var_rewards in pairs(var_actions.rewards) do
                    
doPlayerAddItemTable(cid, {id=var_rewards.id, count=var_rewards.count, subtype = var_rewards.subtype, add =var_rewards.add, level=var_rewards.level, luck=var_rewards.luck, excellent=var_rewards.excellent, skill=var_rewards.skill, text=var_rewards.text, desc=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
(cid, var_actions.expirence)
            else
                --
log(cid,'Brak dodawania doswiadczenia.')
            
end
                    
            
if var_actions.SummonMonsters ~= nil and var_actions.SummonMonsters ~= false then
                
for i, var_monster in pairs(var_actions.SummonMonsters) do
                    
pos = { x = var_monster.x, y = var_monster.y, z = var_monster.z }
                    if 
var_monster.delay ~= nil then
                        addEvent
(doSummonCreature,var_monster.delay,var_monster.monstername, pos)
                        --
log(cid,'Dodaje delay na summonowanie potworkow = '.. var_monster.delay ..' potworek name = '.. var_monster.monstername ..'')
                    else
                        
doSummonCreature(var_monster.monstername, pos)
                        --
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 x, var_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 j, var_SpecialMagicEffect in pairs(var_actions.SpecialMagicEffect) do
                    
pos = { x = var_SpecialMagicEffect.x, y = var_SpecialMagicEffect.y, z = var_SpecialMagicEffect.z }
                    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
(cid, item, frompos, item2, topos, var_actions.additfunctions)    
            
end
            
            
if test == 1 then
                setPlayerStorageValue
(cid, var_actions.doSetSV, 1)            
            
end    
            
--log(cid,'Pomyslny koniec hehs.')    
            
doSendMagicEffect(frompos,ME_MAGIC_BLUE)
            return 
1  Koniec :p
        end
    end    
end 
« Next Oldest | Next Newest »

Users browsing this thread: 1 Guest(s)



  • View a Printable Version
  • Subscribe to this thread
Forum Jump:

© Designed by D&D - Powered by MyBB

Linear Mode
Threaded Mode