Hello,
W silniku RonIT kompilowanym po 12 kwietnia niezbędna jest modyfikacja systemu rozdawania startowych wyglądów. Silnik od tej pory nie będzie w ogóle ingerował i miał na stałe wpisane looktype postaci z obsługi czy zwykłych graczy zaczynających swoją przygodę.
W pliku /actions/triggers/onlogin.lua dodajemy:
Sprawdzamy czy w pliku global.lua są zdefiniowane makra(zmienne):
oraz funkcje:
jeżeli nie ma dopisujemy je.
Oczywiście tablice konfiguracyjną zgodne z opisami możemy modyfikować pod nasze wymagania
Pozdrawiam,
Meritus
W silniku RonIT kompilowanym po 12 kwietnia niezbędna jest modyfikacja systemu rozdawania startowych wyglądów. Silnik od tej pory nie będzie w ogóle ingerował i miał na stałe wpisane looktype postaci z obsługi czy zwykłych graczy zaczynających swoją przygodę.
W pliku /actions/triggers/onlogin.lua dodajemy:
PHP Code:
ON_LOGIN_ADD_OUTFITS = {
-- Jezeli player ma juz dany outfit, to go nie doda
-- Pamiętaj ze jak gracz zaloguje juz do gry i doda mu outfit a usuniesz
-- dany wyglad to nie zostanie on usunienty graczu
-- looktype w tabelach ponizej jest to klucz w globalnej tablicy MALE_OUTFITS badz FEMALE_OUTFITS znajdujacej sie w global.lua
[GM] = {
outfits = {
{looktype = "TR", addons = 0},
--(...)--
},
default = {lock = 0, looktype = "TR", addon = 0, lookHead = 5, lookBody = 80, lookLegs = 40, lookFeet = 160},
},
[CM] = {
outfits = {
{looktype = "TR", addons = 0},
--(...)--
},
default = {lock = 1, looktype = "TR", addon = 0, lookHead = 130, lookBody = 80, lookLegs = 30, lookFeet = 48},
},
[TR] = {
outfits = {
{looktype = "TR", addons = 0},
--(...)--
},
default = {lock = 1, looktype = "TR", addon = 0, lookHead = 148, lookBody = 112, lookLegs = 154, lookFeet = 10},
},
[BH] = {
outfits = {
{looktype = "TR", addons = 0},
--(...)--
},
default = {lock = 1, looktype = "TR", addon = 0, lookHead = 48, lookBody = 68, lookLegs = 79, lookFeet = 130},
},
[PLAYER] = {
outfits = {
{looktype = "CITIZEN", addons = 0, pacc = 0, level = 0 },
{looktype = "HUNTER", addons = 0, pacc = 0, level = 0 },
{looktype = "MAGE", addons = 0, pacc = 0, level = 0 },
{looktype = "KNIGHT", addons = 0, pacc = 0, level = 0 },
{looktype = "NOBLEMAN", addons = 0, pacc = 1, level = 0 },
{looktype = "WIZARD", addons = 0, pacc = 1, level = 200 },
{looktype = "ORIENTAL", addons = 0, pacc = 1, level = 100 },
{looktype = "SHAMAN", addons = 0, pacc = 1, level = 150 },
{looktype = "DRUID", addons = 0, pacc = 1, level = 50 },
{looktype = "ORIENTAL", addons = 0, pacc = 1, level = 100 },
--(...)--
},
default = {lock = 0, looktype = "CITIZEN", addon = 0, lookHead = 100, lookBody = 100, lookLegs = 100, lookFeet = 100},
}
-- default: okresla Outfit ktory ma byc ustawiony po zalogowaniu,
-- JEŻELI lock jest ustawiony (1) to zawsze ustawi wyglad podany w default oraz go zablokuje, nie bedzie mozliwosci jego zmiany, jezeli nie ustawiony badz 0 to tylko przy 1 probie zalogowania do gry ustawi taki wyglad
-- i jezeli looktype podany w default nie znajduje sie w tablicy outfits (znajdujacej sie nad default) to outfit zostanie dodany tylko do czasu jego zmiany ( nie bedzie mozliwosci ponownego ustawienia tego wygladu)
-- lookHead, lookBody, lookLegs, lookFeet koloruje wyglad
-- addon, flaga okreslajaca jaki dodatek ma byc bazowo ustawiony (0 - sam outfit, 1 - pierwszy dodatek, 2 drugi dodatek, 3 - oba dodatki )
}
local PlayerInfoAccess = getPlayerAccess(cid)
local Playerlevel = getPlayerLevel(cid)
local PlayerPACC = getPlayerPACC(cid)
--Ustawianie Outfitu
for key, val in pairs(ON_LOGIN_ADD_OUTFITS) do
if (PlayerInfoAccess == key) then
if trigger.optionid == 0 then
LUAsetCurrentOutfit(cid, val.default.looktype, val.default.lookHead, val.default.lookBody, val.default.lookLegs, val.default.lookFeet, val.default.addon)
end
if LUAgetOutfit(cid, "TR", 0) == TRUE and PlayerInfoAccess == 0 then
LUAremOutfit(cid, "TR", 255,1) -- Usuwam wyglad TRa, nie wazne kim jestem
changeOutfitUnlock(cid)
LUAsetCurrentOutfit(cid, "CITIZEN", 0, 0, 0, 0,0)
end
if val.default.lock == 1 then
changeOutfitUnlock(cid)
LUAsetCurrentOutfit(cid, val.default.looktype, val.default.lookHead, val.default.lookBody, val.default.lookLegs, val.default.lookFeet, val.default.addon)
changeOutfitLock(cid)
else
changeOutfitUnlock(cid)
end
for _, outfit in pairs(val.outfits) do
flag = true
if outfit.pacc == 1 then
if PlayerPACC == LUA_FALSE then
flag = false
end
end
if outfit.level ~= nil then
if Playerlevel < outfit.level then
flag = false
end
end
if (flag) then
LUAaddOutfit(cid, outfit.looktype, outfit.addons)
end
end
end
end
if PlayerPACC == LUA_FALSE then
--Ukrywanie outfitow jezeli skonczylo sie premium
TO_HIDE_OUTFITS = {
"NOBLEMAN", "SUMMONER", "WARRIOR", "JESTER",
"BOB" ,"NIGHTMARE", "SNOWMAN", "BARBARIAN",
"DRUID", "WIZARD", "ORIENTAL", "PIRATE", "ASSASSIN",
"BEGGAR", "SHAMAN", "DEMONHUNTER", "YALAHAR",
"WARMASTER", "WEDDING", "WAYFARER", "SLAYER"
}
LUAhideOutfits(cid, TO_HIDE_OUTFITS)
end
Sprawdzamy czy w pliku global.lua są zdefiniowane makra(zmienne):
PHP Code:
FEMALE_OUTFITS = {
["CITIZEN"] = 139,
["HUNTER"] = 140,
["MAGE"] = 144,
["KNIGHT"] = 142,
["NOBLEMAN"] = 143,
["SUMMONER"] = 141,
["WARRIOR"] = 145,
["JESTER"] = 146,
["BOB"] = 147,
["NIGHTMARE"] = 148,
["SNOWMAN"] = 149,
["BARBARIAN"] = 278,
["DRUID"] = 277,
["WIZARD"] = 276,
["ORIENTAL"] = 275,
["PIRATE"] = 274,
["ASSASSIN"] = 273,
["BEGGAR"] = 272,
["SHAMAN"] = 271,
["DEMONHUNTER"] = 270,
["YALAHAR"] = 279,
["WARMASTER"] = 325,
["WEDDING"] = 314,
["WAYFARER"] = 364,
["SLAYER"] = 292,
["KING"] = 298,
["TR"] = 371,
}
MALE_OUTFITS = {
["CITIZEN"] = 128,
["HUNTER"] = 129,
["MAGE"] = 130,
["KNIGHT"] = 131,
["NOBLEMAN"] = 132,
["SUMMONER"] = 133,
["WARRIOR"] = 134,
["DRUID"] = 268,
["WIZARD"] = 267,
["ORIENTAL"] = 266,
["JESTER"] = 135,
["BOB"] = 136,
["NIGHTMARE"] = 137,
["SNOWMAN"] = 138,
["BARBARIAN"] = 269,
["PIRATE"] = 265,
["ASSASSIN"] = 264,
["BEGGAR"] = 263,
["SHAMAN"] = 262,
["DEMONHUNTER"] = 261,
["YALAHAR"] = 280,
["WARMASTER"] = 324,
["WEDDING"] = 313,
["WAYFARER"] = 365,
["SLAYER"] = 292,
["KING"] = 298,
["TR"] = 371,
}
GM = 1
CM = 2
TR = 3
BH = 4
PLAYER = 0
oraz funkcje:
PHP Code:
function LUAgetOutfit(cid, outfit_name, nr)
if getSex(cid) == 0 then
outfit_table = FEMALE_OUTFITS
else
outfit_table = MALE_OUTFITS
end
for _, i in pairs(outfit_table) do
if outfit_name == _ then
ret = getOutfit(cid,i,nr)
--log(cid, "ret == "..ret.."")
return ret
end
end
log(cid, "<SET_OUTFIT> ERROR outfit name = "..outfit_name.." do not exist!")
return -1
end
function LUAhideOutfits(cid, to_hide)
local outfit_table = {}
local PlayerPACC = getPlayerPACC(cid)
if getSex(cid) == 0 then
outfit_table = FEMALE_OUTFITS
else
outfit_table = MALE_OUTFITS
end
for _, i in pairs(to_hide) do
hideOutfit(cid, outfit_table[i])
end
end
function LUAgetOutfitLookTypeByName(cid, outfit_name)
local outfit_table = {}
if getSex(cid) == 0 then
outfit_table = FEMALE_OUTFITS
else
outfit_table = MALE_OUTFITS
end
return outfit_table[outfit_name:upper()]
end
function LUAremOutfit(cid, outfit_name, nr, logs)
if getSex(cid) == 0 then
outfit_table = FEMALE_OUTFITS
else
outfit_table = MALE_OUTFITS
end
for _, i in pairs(outfit_table) do
if outfit_name == _ then
remOutfit(cid,i,nr)
if logs == 1 then
log(cid, "<REM_OUTFIT> outfit name = "..outfit_name.." looktype = "..i.." nr = "..nr.." successfull")
end
return 1
end
end
log(cid, "<SET_OUTFIT> ERROR outfit name = "..outfit_name.." do not exist!")
return -1
end
function LUAaddOutfit(cid, outfit_name, nr)
if LUAgetOutfit(cid, outfit_name, nr) == 1 then
--log(cid, "<SET_OUTFIT> outfit name = "..outfit_name.." nr = "..nr.." error: player already have this outfit")
return -1
end
if getSex(cid) == 0 then
outfit_table = FEMALE_OUTFITS
else
outfit_table = MALE_OUTFITS
end
for _, i in pairs(outfit_table) do
if outfit_name == _ then
ret = addOutfit(cid,i,nr)
if ret == 1 then
log(cid, "<SET_OUTFIT> outfit name = "..outfit_name.." looktype = "..i.." nr = "..nr.." successfull: addOutfit returned "..ret.."")
else
log(cid, "<SET_OUTFIT> outfit name = "..outfit_name.." looktype = "..i.." nr = "..nr.." fail: addOutfit returned "..ret.."")
end
return 1
end
end
log(cid, "<SET_OUTFIT> ERROR outfit name = "..outfit_name.." do not exist!")
return -1
end
function LUAsetCurrentOutfit(cid, outfit_name, lookHead, lookBody, lookLegs, lookFeet, nr)
if getSex(cid) == 0 then -- FEMALE
outfit_table = FEMALE_OUTFITS
else
outfit_table = MALE_OUTFITS
end
for _, i in pairs(outfit_table) do
if outfit_name == _ then
setCurrentOutfit(cid, i, lookHead, lookBody, lookLegs, lookFeet, nr)
log(cid, "<SET_CURRENT_OUTFIT> outfit_name = "..outfit_name.." looktype = "..i.." lookHead = "..lookHead.." lookBody = "..lookBody.." lookLegs = "..lookLegs.." lookFeet = "..lookFeet.." addon = "..nr.."")
return 1
end
end
log(cid, "<SET_CURRENT_OUTFIT> ERROR outfit name = "..outfit_name.." do not exist!")
return -1
end
jeżeli nie ma dopisujemy je.
Oczywiście tablice konfiguracyjną zgodne z opisami możemy modyfikować pod nasze wymagania

Pozdrawiam,
Meritus

