• Home
  • Members
  • Team
  • Help
  • Search
  • Register
  • Login
  • Home
  • Members
  • Help
  • Search
Ronit.GAMES RonEngine Support / Wsparcie dla RonEngine LUA/XML Scripting / Skryptowanie LUA/XML Utworzenie prostego quest'u skrzynkowego:

 
  • 0 Vote(s) - 0 Average
Utworzenie prostego quest'u skrzynkowego:
Ron
Offline

Administrator

Posts: 54
Threads: 29
Joined: Jun 2010
Reputation: 3
#1
13-11-2012, 04:06 PM (This post was last modified: 13-11-2012, 04:10 PM by Ron.)
Najłatwiejszym zadaniem dla nowego skryptera LUA będzie dodanie nowego, prostego zadania związanego z pokonaniem chordy krwiożerczych potworków i odnalezieniem skarbów w umieszczonym w specjalnym miejscu skrzyni.

Jest to bardzo proste, w tym celu wystarczy:

  1. Otworzyć edytor map (informacja o tym jak go skonfigurować znajduje się w tym temacie: KONFIGURACJA RME), importować naszą mapę, stworzyć interesującą nas lokacje i w jakimś trudno dostępnym miejscu, na samym jej końcu postawić skrzynkę,
  2. Skrzynka musi posiadać unikalny ActionID, którego nie posiada na naszej mapie żaden inny przedmiot. Powiedzmy, że u nas to jest 1000,
  3. Po utworzeniu nowej lokacji, po dodaniu nowej skrzynki, po określeniu unikalnego ActionID na który będzie reagował skrypt, wystarczy już tylko zedytować plik actions/chest.lua:

Przykładowy fragment pliku actions/chest.lua wygląda następująco:

PHP Code:
function onUse(cid, item, frompos, item2, topos)
   
local actions = {
        {
        
_itemaid = 4000, 
        
doSetSV = SV_CHEST["CHEST_ROPE"],        
        
rewards  =    { {name = 'Rope', namepl= 'Lina', id = 2941, cout = 1}, },
   }
end 

Aby nasza skrzynka "wydawała" nagrodę trzeba dodać wpis do tablicy konfiguracyjnej "actions" w następuący sposób:

PHP Code:
function onUse(cid, item, frompos, item2, topos)
   
local actions = {
        {
        
_itemaid = 4000, 
        
doSetSV = SV_CHEST["CHEST_ROPE"],        
        
rewards  =    { {name = 'Rope', namepl= 'Lina', id = 2941, cout = 1}, },
        {
        
_itemaid = 1000, -- Nasz unikalny ActionID skrzynki
        doSetSV 
= SV_CHEST["NASZ_QUEST"],    -- Unikalny SV Zadania    
        rewards  
=    { {name = 'Our Item', namepl= 'Nasz Przedmiot', id = 3000, cout = 1}, },
   }
end 

Parametry opisane są w komentarzach skryptu i wydaje mi się, że nie potrzebują dodatkowego opisu. Gracz po naciśnięciu na skrzynkę otrzyma przedmiot o id 3000 i nazwie "Nasz Przedmiot". Należy zapisać tak zedytowany plik.

Należy również zedytować plik lua/global.lua i wyszukać w nim fragment kodu "SV_CHEST". Tablica ta może być skonfigurowana następująco:

PHP Code:
SV_CHEST = {
-- 
Rezerwacja SV od 4000 do 5000
    
["CHEST_DFQ_REWARDS"]            = 4000,
    [
"CHEST_ANNIHILATOR_REWARDS"]    = 4001,
    [
"QUEST_DJINN"]    = 4002,
    [
"QUEST_BEHEMOT"] = 4003,
    [
"QUEST_BK"] = 4004,
    [
"QUEST_GS"] = 4005,
    [
"QUEST_POI"] = 4006,
    --(...)---
} 

Musimy dodać do niej informacje o SV naszego nowego questu. W tym celu dopisujemy po ["QUEST_POI"] = 4006: ["NASZ_QUEST"] = 4007. Ostatecznie zmienna wygląda w ten sposób:

PHP Code:
SV_CHEST = {
-- 
Rezerwacja SV od 4000 do 5000
    
["CHEST_DFQ_REWARDS"]            = 4000,
    [
"CHEST_ANNIHILATOR_REWARDS"]    = 4001,
    [
"QUEST_DJINN"]    = 4002,
    [
"QUEST_BEHEMOT"] = 4003,
    [
"QUEST_BK"] = 4004,
    [
"QUEST_GS"] = 4005,
    [
"QUEST_POI"] = 4006,
    [
"NASZ_QUEST"] = 4007,
} 

Zapisujemy plik i wgrywamy go na serwer razem z actions/chest.lua. Po tej czynności restartujemy serwer lub wpisujemy po zalogowaniu na postać Mistrz Gry: /reload actions. Zadanie jest gotowe do przetestowania przez pierwszego śmiałka.
« 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