dalvorsn 46 #1 Posted June 28, 2011 (edited) Flags e Custom Flags O que são flags ? Provavelmente ao configurar seu otserv, já se deparou ao mecher no groups.xml com alguns elementos estranhos da tag (flags, customFlags). Eles normalmente são números enormes e aparentemente sem sentido, porém eles são importantíssimos, são eles que definem inumeras permissões e limitações que determinado group terá. Como eles funcionam? Cada flag ou customFlag tem seu número e sua constante, são eles: »» Flags «« [center][b]╔═══════════════════════════════════════════╗║PLAYERFLAG_CANNOTUSECOMBAT = 0 ║║PLAYERFLAG_CANNOTATTACKPLAYER = 1 ║║PLAYERFLAG_CANNOTATTACKMONSTER = 2 ║║PLAYERFLAG_CANNOTBEATTACKED = 3 ║║PLAYERFLAG_CANCONVINCEALL = 4 ║║PLAYERFLAG_CANSUMMONALL = 5 ║║PLAYERFLAG_CANILLUSIONALL = 6 ║║PLAYERFLAG_CANSENSEINVISIBILITY = 7 ║║PLAYERFLAG_IGNOREDBYMONSTERS = 8 ║║PLAYERFLAG_NOTGAININFIGHT = 9 ║║PLAYERFLAG_HASINFINITEMANA = 10 ║║PLAYERFLAG_HASINFINITESOUL = 11 ║ ║PLAYERFLAG_HASNOEXHAUSTION = 12 ║ ║PLAYERFLAG_CANNOTUSESPELLS = 13 ║║PLAYERFLAG_CANNOTPICKUPITEM = 14 ║║PLAYERFLAG_CANALWAYSLOGIN = 15 ║║PLAYERFLAG_CANBROADCAST = 16 ║║PLAYERFLAG_CANEDITHOUSES = 17 ║║PLAYERFLAG_CANNOTBEBANNED = 18 ║║PLAYERFLAG_CANNOTBEPUSHED = 19 ║║PLAYERFLAG_HASINFINITECAPACITY = 20 ║║PLAYERFLAG_CANPUSHALLCREATURES = 21 ║║PLAYERFLAG_CANTALKREDPRIVATE = 22 ║║PLAYERFLAG_CANTALKREDCHANNEL = 23 ║║PLAYERFLAG_TALKORANGEHELPCHANNEL = 24 ║║PLAYERFLAG_NOTGAINEXPERIENCE = 25 ║║PLAYERFLAG_NOTGAINMANA = 26 ║║PLAYERFLAG_NOTGAINHEALTH = 27 ║║PLAYERFLAG_NOTGAINSKILL = 28 ║║PLAYERFLAG_SETMAXSPEED = 29 ║║PLAYERFLAG_SPECIALVIP = 30 ║║PLAYERFLAG_NOTGENERATELOOT = 31 ║║PLAYERFLAG_CANTALKREDCHANNELANONYMOUS = 32 ║║PLAYERFLAG_IGNOREPROTECTIONZONE = 33 ║║PLAYERFLAG_IGNORESPELLCHECK = 34 ║║PLAYERFLAG_IGNOREWEAPONCHECK = 35 ║║PLAYERFLAG_CANNOTBEMUTED = 36 ║║PLAYERFLAG_ISALWAYSPREMIUM = 37 ║║PLAYERFLAG_CANANSWERRULEVIOLATIONS = 38 ║║PLAYERFLAG_39 = 39 -- ignore ║║PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION = 40 ║║PLAYERFLAG_HASINFINITESTAMINA = 41 ║║PLAYERFLAG_CANNOTMOVEITEMS = 42 ║║PLAYERFLAG_CANNOTMOVECREATURES = 43 ║║PLAYERFLAG_CANREPORTBUGS = 44 ║║PLAYERFLAG_45 = 45 -- ignore ║║PLAYERFLAG_CANNOTBESEEN = 46 ║╚═══════════════════════════════════════════╝[/b][/center] »» Custom Flags «« [b] [center]╔═════════════════════════════════════════════════╗ ║PLAYERCUSTOMFLAG_ALLOWIDLE = 0 ║ ║PLAYERCUSTOMFLAG_CANSEEPOSITION = 1 ║ ║PLAYERCUSTOMFLAG_CANSEEITEMDETAILS = 2 ║ ║PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS = 3 ║ ║PLAYERCUSTOMFLAG_NOTSEARCHABLE = 4 ║ ║PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES = 5 ║ ║PLAYERCUSTOMFLAG_CANTHROWANYWHERE = 6 ║ ║PLAYERCUSTOMFLAG_CANPUSHALLITEMS = 7 ║ ║PLAYERCUSTOMFLAG_CANMOVEANYWHERE = 8 ║ ║PLAYERCUSTOMFLAG_CANMOVEFROMFAR = 9 ║ ║PLAYERCUSTOMFLAG_CANLOGINMULTIPLECHARACTERS = 10 ║ ║PLAYERCUSTOMFLAG_HASFULLLIGHT = 11 ║ ║PLAYERCUSTOMFLAG_CANLOGOUTANYTIME = 12 ║ ║PLAYERCUSTOMFLAG_HIDELEVEL = 13 ║ ║PLAYERCUSTOMFLAG_ISPROTECTED = 14 ║ ║PLAYERCUSTOMFLAG_ISIMMUNE = 15 ║ ║PLAYERCUSTOMFLAG_NOTGAINSKULL = 16 ║ ║PLAYERCUSTOMFLAG_NOTGAINUNJUSTIFIED = 17 ║ ║PLAYERCUSTOMFLAG_HIDELEVEL = 18 ║ ║PLAYERCUSTOMFLAG_IGNOREPACIFICATION = 19 ║ ║PLAYERCUSTOMFLAG_CANSTAIRHOP = 20 ║ ║PLAYERCUSTOMFLAG_CANTURNHOP = 21 ║ ║PLAYERCUSTOMFLAG_IGNOREHOUSERENT = 22 ║ ║PLAYERCUSTOMFLAG_CANWEARALLADDONS = 23 ║ ╚═════════════════════════════════════════════════╝[/center] [/b] Observem que cada flag ou customFlag tem um valor correlacionado, esse mesmo valor é usado no cálculo para se obter a somas das flags/customFlags. Primeiramente vamos entender algumas flags, pelo próprio nome da para se ter uma noção boa do que ela representa: • PLAYERFLAG_CANNOTATTACKPLAYER (1) = Não pode atacar jogadores(cannot attack player) • PLAYERFLAG_CANNOTUSESPELLS (13) = Não pode usar magias(cannot use spells) • PLAYERFLAG_CANSUMMONALL (5) = Pode convocar todos(can summon all) Aproveitando os exemplos, mostrarei como aplicá-los.As flags são calculadas em análise combinatória de acordo com o valor de cada constante. (2 ^ (valor da constante)) Então vamos calcular o valor do exemplo. soma_das_flags = ((2^[color="red"]1[/color]) + (2^[color="red"]13[/color]) + (2^[color="red"]5[/color]))soma_das_flags = (2 + 8192 + 32)soma_das_flags = ([color="red"]8226[/color]) O resultado que obtivemos foi 8226, e esse mesmo resultado que usaremos na tag(flags) do groups.xml. As custom Flags são calculadas da mesma maneira, porém flag soma com flag e customFlag soma com customFlag e cada soma tem seu lugar na tag. Devemos então somar todos os valores de todas as permissões que quer para determinado grupo. Escolherei algumas como exemplo também: • PLAYERCUSTOMFLAG_ALLOWIDLE (0) = Permitir ocioso (allow idle) • PLAYERCUSTOMFLAG_HIDELEVEL (13) = Esconder nível (hide level) • PLAYERCUSTOMFLAG_CANPUSHALLITEMS (7) = Pode empurrar todos os itens (can push all items) Somandos as customFlags: soma_das_customFlags = ((2^[color="blue"]0[/color]) + (2^[color="blue"]13[/color]) + (2^[color="blue"]7[/color]))soma_das_customFlags = (1 + 8192 + 128)soma_das_customFlags = ([color="blue"]8321[/color]) O resultado que obtivemos foi 8321, e esse número é o que será usado na tag (customFlags) do groups.xml. Em data/XML/groups.xml: <group id="1" name="Players" flags="[color="red"][b]8226[/b][/color]" customFlags="[color="blue"][b]8321[/b][/color]"/> Os jogadores que tiverem group definido como 1, terão as permissões/restrições que foram configuradas: »» Flags «« •Não pode atacar jogadores (restrição) •Não pode usar magias (restrição) •Pode convocar todos (permissão) »» Custom Flags «« • Permitir ocioso (permissão) • Esconder nível (permissão) • Pode empurrar todos os itens (permissão) As flags de restrição se não definidas, são consideradas permissões, e as flags de permissão não definidas são consideradas restrições. (bem óbvio) Bom galera, o tutorial fica por aqui, espero que tenha-lhes sido útil. (Y) Em caso de dúvidas poste que tento ajudar. Caso tenha algo errado, por favor me avisem. [Tutorial feito para OTBR, não permito postagem em outros locais.] Edited June 28, 2011 by dalvorsn Share this post Link to post
iuniX 4 #2 Posted June 28, 2011 Bom, não tem nem o que te falar né. Como eu te disse no msn, ficou perfeito o tutorial. Ótima formatação, ótima explicação e ainda um assunto bem importante... Avaliação: A- Explicação: 85Organização: 90 Utilidade: 75 Média Final: 83,75 Muito obrigado por contribuir. Att. iuniX~ Share this post Link to post
joaotesch 0 #3 Posted June 28, 2011 minhas 2 muié tao de sub mod agora é?? kkkk' fico massa dalvo, vai ajudar bastante a galera aqui! Share this post Link to post
Startix 9 #4 Posted June 28, 2011 (edited) Achei interessante,demorei um pouquinho pra entender mais consegui.Eu tinha entendido frags quando li.... Edited June 28, 2011 by Startix Share this post Link to post
dalvorsn 46 #5 Posted June 28, 2011 #Unix Vlw por aprovar, não imaginei que a nota seria alta assim *-* ty #Tesch porque tu fica mentindo falando essas coisas? sabes que tu é o passivo. ty #giocundo Normal, tu mora no acre. HEIHEIEHIEH zoa, ty =D Share this post Link to post
Oneshot 24 #6 Posted June 29, 2011 Até que o tutorial serve para aqueles que procuram, sei lá, criar novos cargos em seus servidores (aliás, tipinho raro esse). É... tá bem explicadinho... paraba aí. Share this post Link to post
Rômulo Souza 14 #7 Posted July 3, 2011 Oche, aqui nao ta funcionando, elevei ao quadrado todos, mas na hora, nao funciona. Eu coloquei somente flags... e fiz realmente tudo certo. tem certeza que a formula eh essa? http://hem.bredband.net/johannesrosen/playerflags.html Share this post Link to post
dalvorsn 46 #8 Posted July 4, 2011 A formula é essa sim, explique melhor o que você fez e o que não deu certo pra que seja possível eu te ajudar, até então me parece muito vago. E tu colou o site ae, se quiser conferir com os do site, verás que todos batem. Mais por segurança, vá no seu data/lib/000-constant.lua e verifique se as flags e customFlags são as mesmas. Share this post Link to post
LsM 2 #9 Posted July 4, 2011 Oche, aqui nao ta funcionando, elevei ao quadrado todos, mas na hora, nao funciona. Eu coloquei somente flags... e fiz realmente tudo certo. tem certeza que a formula eh essa? http://hem.bredband.net/johannesrosen/playerflags.html Não há erro algum : Share this post Link to post
Henke Rula 4 #10 Posted August 31, 2011 PArabens pelo tutorial cara. Muito bem explicado Share this post Link to post
f@bio 0 #11 Posted August 2, 2018 Ei amigo meu servidor nao tem esse arquivo data/lib/000-constant.lua como devo prosseguir??? Share this post Link to post
Kuma Bear 33 #12 Posted August 2, 2018 11 horas atrás, f@bio disse: Ei amigo meu servidor nao tem esse arquivo data/lib/000-constant.lua como devo prosseguir??? qual seu server parsero? Share this post Link to post
f@bio 0 #13 Posted August 2, 2018 (edited) 1 hora atrás, bolotabunito disse: qual seu server parsero? OTX 3.1 amigo https://hem.bredband.net/johannesrosen/playerflags.html Esse site nao funciona mais, alguem tem algum que possa ver os flags tipo ele??? Edited August 2, 2018 by f@bio Share this post Link to post