Odpowiedz 
Outfity przy starcie (Zmiana wymagana)
12-04-2011, 01:21 PM (Ten post był ostatnio modyfikowany: 17-04-2011 12:21 PM przez Meritus.)
Post: #1
Outfity przy starcie (Zmiana wymagana)
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:

Kod PHP:
ON_LOGIN_ADD_OUTFITS = {
    -- 
Jezeli player ma juz dany outfitto 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 0looktype "TR"addon 0lookHead 5lookBody 80lookLegs 40lookFeet 160}, 
    },
    [
CM] = {
        
outfits = {
            {
looktype "TR"addons 0},
            --(...)--
        },
        default = {
lock 1looktype "TR"addon 0lookHead 130lookBody 80lookLegs 30lookFeet 48}, 
    },
    [
TR] = {
        
outfits = {
            {
looktype "TR"addons 0},
            --(...)--
        },
        default = {
lock 1looktype "TR"addon 0lookHead 148lookBody 112lookLegs 154lookFeet 10}, 
    },
    [
BH] = {
        
outfits = {
            {
looktype "TR"addons 0},
            --(...)--
        },
        default = {
lock 1looktype "TR"addon 0lookHead 48lookBody 68lookLegs 79lookFeet 130}, 
    },
    [
PLAYER] = {
        
outfits = {
            {
looktype "CITIZEN"addons 0pacc 0level }, 
            {
looktype "HUNTER"addons 0pacc 0level }, 
            {
looktype "MAGE"addons 0pacc 0level }, 
            {
looktype "KNIGHT"addons 0pacc 0level }, 
            {
looktype "NOBLEMAN"addons 0pacc 1level }, 
            {
looktype "WIZARD"addons 0pacc 1level 200 }, 
            {
looktype "ORIENTAL"addons 0pacc 1level 100 }, 
            {
looktype "SHAMAN"addons 0pacc 1level 150 }, 
            {
looktype "DRUID"addons 0pacc 1level 50 }, 
            {
looktype "ORIENTAL"addons 0pacc 1level 100 }, 
            --(...)--
        },
        default = {
lock 0looktype "CITIZEN"addon 0lookHead 100lookBody 100lookLegs 100lookFeet 100}, 
    }
    -- default: 
okresla Outfit ktory ma byc ustawiony po zalogowaniu
    -- 
JEŻELI lock jest ustawiony (1to zawsze ustawi wyglad podany w default oraz go zablokujenie bedzie mozliwosci jego zmianyjezeli 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)
    -- 
lookHeadlookBodylookLegslookFeet koloruje wyglad
    
-- addonflaga okreslajaca jaki dodatek ma byc bazowo ustawiony (sam outfitpierwszy dodatek2 drugi dodatekoba dodatki )
}

local PlayerInfoAccess getPlayerAccess(cid)
local Playerlevel getPlayerLevel(cid)
local PlayerPACC getPlayerPACC(cid)
--
Ustawianie Outfitu
for keyval in pairs(ON_LOGIN_ADD_OUTFITS) do 
    if (
PlayerInfoAccess == keythen 
        
if trigger.optionid == 0 then
            LUAsetCurrentOutfit
(cidval.default.looktypeval.default.lookHeadval.default.lookBodyval.default.lookLegsval.default.lookFeetval.default.addon)
        
end
        
if LUAgetOutfit(cid"TR"0) == TRUE and PlayerInfoAccess == 0 then
            LUAremOutfit
(cid"TR"255,1) -- Usuwam wyglad TRanie wazne kim jestem
            changeOutfitUnlock
(cid)
            
LUAsetCurrentOutfit(cid"CITIZEN"0000,0)
        
end
        
if val.default.lock == 1 then
            changeOutfitUnlock
(cid)
            
LUAsetCurrentOutfit(cidval.default.looktypeval.default.lookHeadval.default.lookBodyval.default.lookLegsval.default.lookFeetval.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 (flagthen 
                LUAaddOutfit
(cidoutfit.looktypeoutfit.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(cidTO_HIDE_OUTFITS)
end 

Sprawdzamy czy w pliku global.lua są zdefiniowane makra(zmienne):

Kod PHP:
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 


oraz funkcje:

Kod PHP:
function LUAgetOutfit(cidoutfit_namenr)

    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(cidto_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(cidoutfit_table[i])
    
end
end

function LUAgetOutfitLookTypeByName(cidoutfit_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(cidoutfit_namenrlogs)
        
    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(cidoutfit_namenr)

    if 
LUAgetOutfit(cidoutfit_namenr) == 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(cidoutfit_namelookHeadlookBodylookLegslookFeetnr)
    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
(cidilookHeadlookBodylookLegslookFeetnr)
            
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 Smile

Pozdrawiam,
Meritus
Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości