Witam.
Słowem wstępu powiem, że system ustawiania postaci po pierwszym zalogowaniu na serwer w lua daje ogromne możliwości konfiguracyjne. Zaimplementowanie tego systemu nadpisuje działanie accountmanagera ze strony automatycznie.
Do pliku triggers.xml dodajmy:
Tworzymy w plik onlogin.lua w katalogu /actions/scripts/triggers/
Wpisujemy do niego:
Następnie dodajemy w global.lua:
Przy sekcji makr nawanych ID przedmiotów:
Na dole pliku global.lua:
UWAGA!
W global.lua powinny znajdować się niezbędne makro "ROOKSLAYER" o wartości 0 oraz ustawić pozycję w start_position konfiguratorze. POZYCJA 100:100:7 MUSI BYĆ NA MAPIE (CHOCIAŻ MIAŁ BY BYĆ TO 1 KWADRACIK)
Pozdrawiam
Meritus.
Słowem wstępu powiem, że system ustawiania postaci po pierwszym zalogowaniu na serwer w lua daje ogromne możliwości konfiguracyjne. Zaimplementowanie tego systemu nadpisuje działanie accountmanagera ze strony automatycznie.
Do pliku triggers.xml dodajmy:
PHP Code:
<trigger id="KOLEJNY_NUMER" type="ON_LOGIN" script="triggers/onlogin.lua" />
Tworzymy w plik onlogin.lua w katalogu /actions/scripts/triggers/
Wpisujemy do niego:
PHP Code:
function onTrigger(cid, thing1, frompos, thing2, topos, trigger, text)
--Rozdawanie EQ przy starcie
if trigger.optionid == 0 then -- Pierwsze zalogowanie do gry danego gracza
LUAsetFirstLoginPlayer(cid, FIRST_LOGIN)
end
end
Następnie dodajemy w global.lua:
Przy sekcji makr nawanych ID przedmiotów:
PHP Code:
ID_STUDDED_HELMET = 3314
ID_WOLVES_TOOTH_CHAIN = 2950
ID_BACKPACK = 2792
ID_LEATHER_ARMOR = 3499
ID_RAPIER = 3210
ID_WOODEN_SHIELD = 3350
ID_LEATHER_LEGS = 3497
ID_LEATHER_BOOTS = 3490
ID_POWER_RING = 2988
Na dole pliku global.lua:
PHP Code:
function LUAsetFirstLoginPlayer(cid, player_config)
doPlayerClearItems(cid)
local player_vocation = getPlayerVocation(cid)
for _, obj in pairs(player_config) do
if (player_vocation == _) then
if (setPlayer(cid, obj.player_attributes) == 1) then
for __, obj_items in pairs(obj.player_items) do
doPlayerAddItemTable(cid, obj_items , __)
end
doTeleportThing(cid, obj.start_position)
return true
else
log(cid, "Blad w ustawianiu skilli")
return false
end
end
end
log(cid,22,'Profesja nie zostala skonfigurowana')
return false
end
FIRST_LOGIN = {
[ROOKSLAYER] = {
start_position = {x=100, y=100, z=7},
player_attributes = {
level = 1,
experience = 0,
magiclevel = 0,
health = 150,
mana = 0,
vocation = 0,
skills = {
10, -- SKILL_FIST
10, -- SKILL_CLUB
10, -- SKILL_SWORD
10, -- SKILL_AXE
10, -- SKILL_DISTANCE
10, -- SKILL_SHIELD
10, -- SKILL_FISHING
},
},
player_items = {
[SLOT_AMMO] = {
id = ID_POWER_RING,
count = 300000,
},
[SLOT_ARMOR] = {
id = ID_LEATHER_ARMOR,
},
[SLOT_BACKPACK] = {
id = ID_BACKPACK,
contain = {
{id = ID_ROPE},
},
},
[SLOT_FEET] = {
id = ID_LEATHER_BOOTS,
},
[SLOT_HEAD] = {
id = ID_STUDDED_HELMET,
},
[SLOT_LEFT] = {
id = ID_WOODEN_SHIELD,
},
[SLOT_LEGS] = {
id = ID_LEATHER_LEGS,
},
[SLOT_NECKLACE] = {
id = ID_WOLVES_TOOTH_CHAIN,
},
[SLOT_RIGHT] = {
id = ID_RAPIER,
},
--[SLOT_RING] = {
-- id = ID_POWER_RING,
-- count = 300000,
--}
}
}
}
UWAGA!
W global.lua powinny znajdować się niezbędne makro "ROOKSLAYER" o wartości 0 oraz ustawić pozycję w start_position konfiguratorze. POZYCJA 100:100:7 MUSI BYĆ NA MAPIE (CHOCIAŻ MIAŁ BY BYĆ TO 1 KWADRACIK)
Pozdrawiam
Meritus.

