Jump to content

Fratini

Members
  • Content Count

    3
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    Fratini got a reaction from w0wZukuBg in [Showcase] Navayo + Nav_in01   
    Beautiful
  2. Upvote
    Fratini reacted to w0wZukuBg in [Showcase] Navayo + Nav_in01   
    You can believe, you can not believe, but the idea for my next map
    was found by randomly clicking on Google maps in search of inspiration!
    So there was Navagio - an incredible beach on the coast of Zakynthos,
    in Greece, hidden between the rocks with a mysterious ship in the middle of it.
    I fell in love with it at first sight 
    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.

    Navayo

    Please rate it  if the map is good enough
  3. Upvote
    Fratini reacted to w0wZukuBg in [Showcase] Ttmoon   
    We continue to experiment!
    This is my first attempt to send my imagination into space.
    Not open, but still distant and mysterious.
    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.
    ttmoon

    Please rate it  if the map is good enough
  4. Upvote
    Fratini reacted to w0wZukuBg in [w0w] Mini World Project   
    I liked the idea of @vykimo, that these maps can turn into a project.
    I would say that these were supposed to be a project, but there's still a long way.
    While I'm working on expanding the mini world, all information on progress will be here.
    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.
    Rune-Midgards
     Youtube Link: https://www.youtube.com/watch?v=u2xDTdNBmOQ

       
    New World
     Youtube Link: https://www.youtube.com/watch?v=z819j_6QvwU

       
    PvP Arena
     Youtube Link: https://www.youtube.com/watch?v=A928NksS0y4
       
    .•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.•°'°•.
    A few questions, if you know the answers, please help : P
    1. In fact, the island of Lasagna is almost ready, and it could have been added to
    New World, but since I was stuck in 2012, neither my Brow nor the client
    see most of the objects from the last episodes, unfortunately.
    Brow 620 is alright, but 586 can't open map file to save
    it and fix the problem points on this island : C
    2. Also after the 13.2 episode I'm not very good at new cities.
    How many of them and in which worlds should they be located?
     
  5. Upvote
    Fratini reacted to Tio Akima in Custom Effect   
    add in SRC?

    Example:
    clif->specialeffect(&sd->bl, 609, AREA); ( target, effect number, effect type )

    If I'm not mistaken, it's in that order
    Someone correct me if I'm wrong, please.
  6. Upvote
    Fratini reacted to Sephus in Official Refine Rate Correction   
    As of e171deb58c7 we have the official refine rates from kRO.
     
    Normal Ores
     Refine Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 60% 60% 100% 100% 100% 60% 6 40% 40% 100% 100% 60% 40% 7 40% 40% 100% 60% 50% 40% 8 20% 20% 60% 40% 20% 20% 9 20% 20% 40% 20% 20% 20% 10 9% 9% 19% 19% 19% 9% 11 - 8% 18% 18% 18% 8% 12 - 8% 18% 18% 18% 8% 13 - 8% 18% 18% 18% 8% 14 - 8% 18% 18% 18% 8% 15 - 7% 18% 18% 18% 7% 16 - 7% 17% 17% 17% 7% 17 - 7% 17% 17% 17% 7% 18 - 7% 17% 17% 17% 7% 19 - 5% 15% 15% 15% 5% 20 - 5% 15% 15% 15% 5%  
    Enriched Ores
    Refine   Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 90% 90% 100% 100% 100% 90% 6 70% 70% 100% 100% 90% 70% 7 70% 70% 100% 90% 80% 70% 8 40% 40% 90% 70% 40% 40% 9 40% 40% 70% 40% 40% 40% 10 20% 20% 30% 30% 30% 20% 11 -  8% 18% 18% 18% 8% 12 -  8% 18% 18% 18% 8% 13 -  8% 18% 18% 18% 8% 14 -  8% 18% 18% 18% 8% 15 -  7% 18% 18% 18% 7% 16 -  7% 17% 17% 17% 7% 17 -  7% 17% 17% 17% 7% 18 -  7% 17% 17% 17% 7% 19 -  5% 15% 15% 15% 5% 20 -  5% 15% 15% 15% 5%  
    Normal Ores - Smelting Event
    Refine Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 60% 60% 100% 100% 100% 60% 6 40% 40% 100% 100% 60% 40% 7 40% 40% 100% 60% 50% 40% 8 20% 20% 60% 40% 20% 20% 9 20% 20% 40% 20% 20% 20% 10 9% 9% 19% 19% 19% 9% 11 - 20% 40% 40% 40% 20% 12 - 20% 40% 40% 40% 20% 13 - 16% 35% 35% 35% 16% 14 - 16% 35% 35% 35% 16% 15 - 15% 30% 30% 30% 15% 16 - 15% 30% 30% 30% 15% 17 - 14% 20% 20% 20% 14% 18 - 14% 20% 20% 20% 14% 19 - 10% 15% 15% 15% 10% 20 - 10% 15% 15% 15% 10%  
    Enriched Ores - Smelting Event
       Refine  Shadow equipment Armor Weapon (1st level) Weapon (2nd level) Weapon (3rd level) Weapon (4th level) 1 100% 100% 100% 100% 100% 100% 2 100% 100% 100% 100% 100% 100% 3 100% 100% 100% 100% 100% 100% 4 100% 100% 100% 100% 100% 100% 5 95% 95% 100% 100% 100% 95% 6 80% 80% 100% 100% 95% 80% 7 80% 80% 100% 95% 90% 80% 8 60% 60% 95% 85% 70% 60% 9 50% 50% 85% 60% 60% 50% 10 35% 35% 55% 45% 45% 35% 11 - 20% 40% 40% 40% 20% 12 -  20% 40% 40% 40% 20% 13 -  16% 35% 35% 35% 16% 14 -  16% 35% 35% 35% 16% 15 -  15% 30% 30% 30% 15% 16 -  15% 30% 30% 30% 15% 17 -  14% 20% 20% 20% 14% 18 -  14% 20% 20% 20% 14% 19 -  10% 15% 15% 15% 10% 20 -  10% 15% 15% 15% 10%  
     
    This corrects the previous behaviour of enriched ores which would simple double roll the item refinement.
     
    Script Command Changes
    getequippercentrefinery(<equipment slot>{, <type>}) Example: if (getequippercentrefinery(EQI_HAND_L, REFINE_CHANCE_TYPE_NORMAL) <= rand(100)) mes("Aww");  
    Constants exported to constants.conf are -
    REFINE_CHANCE_TYPE_NORMAL: 1 Retrieves Normal ore refine rate REFINE_CHANCE_TYPE_ENRICHED: 2 Retrieves Enriched ore refine rate REFINE_CHANCE_TYPE_E_NORMAL: 3 Retrieves Normal Event ore refine rate REFINE_CHANCE_TYPE_E_ENRICHED: 4 Retrieves Enriched Event ore refine rate  
  7. Upvote
    Fratini reacted to Like it~* in [Guia e orientação] Criando habilidades. PT-BR   
    Criando habilidades ou clonando-as   Introdução   Uma grande área onde os jogadores têm dificuldade é adicionar novas habilidades para a fonte e o cliente. Abaixo será documentado como implementar essas novas habilidades.   A habilidade   A habilidade que estaremos trabalhando é simples.  
    Nome: Earth Bolt Level Máx: 10 Tipo: Ativa Custo de SP: 20 + 5*SkillLV Alvo: 1 inimigo Tempo de conjuração: 2 seg Delay: 1 seg Duração: Instantânea Descrição: Causa dano mágico de elemento terra ao inimigo, conforme level da habilidade, a 150% MATK por hit. Basicamente, essa habilidade deve atingir 1 inimigo e lidar com 10 hits de 150% MATK, propriedade elemental da Terra e deve ser baseada em dano mágico.    
    Abra /src/map/skill.h Role para baixo até encontrar  
    EL_STONE_HAMMER, EL_ROCK_CRUSHER, EL_ROCK_CRUSHER_ATK, EL_STONE_RAIN,    
    Depois daqui é onde nós adicionamos quaisquer habilidades adicionais. É melhor dar às habilidades um ID personalizado para começar. Então, vamos adicionar a nossa habilidade "Earth Bolt". Depois disso, adicione MG_EARTHBOLT = 8443,    
    MG_ definição significa "Mago", você vai trabalhar para fora as siglas como você percorrer as habilidades. Definimos a base da habilidade. Como você pode ver, o id de habilidade é definido como '8443' desde Stone Elemental's Stone Rain é definido como 8442 (e é o última habilidade de jogador acessível).   Abra /src/map/skill.c   Esse arquivo é onde definimos as implementações de habilidades reais. Para habilidades de alvo único, todo o processamento dessa habilidade irá em skill_castend_damage_id (para habilidades prejudiciais) ou skill_castend_nodamage_id (para skills que não causam danos).   Habilidades baseadas em mágica ou mágia.   Como o Earth Bolt é baseado em danos, encontre a função skill_castend_damage_id e localize:  
        case AB_RENOVATIO:     case AB_HIGHNESSHEAL:     case AB_DUPLELIGHT_MAGIC:     case WM_METALICSOUND:     case MH_ERASER_CUTTER:     case KO_KAIHOU:    
    A razão pela qual estaremos colocando a case para Earth Bolt aqui é porque:    
           skill->attack(BF_MAGIC,src,src,bl,skill_id,skill_lv,tick,flag);    
    A definição BF_MAGIC significa que a habilidade é baseada em magia e deve ser calculada sob cálculos de batalha mágica. Assim, após a case NJ_HUUJIN adicionar:  
        case MG_EARTHBOLT:    
    Habilidades baseadas em armas   No caso de querer adicionar uma habilidade que é baseada em Arma, em vez de Magia, encontre:  
        case WM_GREAT_ECHO:     case GN_SLINGITEM_RANGEMELEEATK:     case KO_JYUMONJIKIRI:     case KO_SETSUDAN:     case GC_DARKCROW:     case LG_OVERBRAND_BRANDISH:     case LG_OVERBRAND:    
    E adicione a case depois disso. Se quiséssemos que o Earth Bolt fosse baseado em armas, ficaria assim:  
        case WM_GREAT_ECHO:     case GN_SLINGITEM_RANGEMELEEATK:     case KO_JYUMONJIKIRI:     case KO_SETSUDAN:     case GC_DARKCROW:     case LG_OVERBRAND_BRANDISH:     case LG_OVERBRAND:     case MG_EARTHBOLT:    
    No entanto, vamos manter a função Magic em vez disso.   Abra /src/map/battle.c   Nesta função, todos os cálculos de danos principais são realizados. E em funções separadas, as % modificadoras para as habilidades são armazenados. Portanto, para os nossos danos de 150%, adicionamos o extra de 50% (já que 100% é o padrão) na função apropriada. Ataques baseado em mágica Para ataques baseados em Magia, os modificadores são encontrados em battle_calc_magic_attack. Basta encontrar:  
    case NPC_EARTHQUAKE:     skillratio += 100 +100*skill_lv +100*(skill_lv/2);     break;    
    E adicione o modificador de danos abaixo. Como Earth Bolt é baseado em magia, nós adicionaremos-a aqui.  
        case MG_EARTHBOLT:         skillratio += 50;         break;    
    Isso agora significa que o Earth Bolt causará dano mágico de 150% MATK.   Átaques baseado em armas   Para ataques baseados em armas, os modificadores são encontrados em battle_calc_weapon_attack. Basta encontrar:  
        case NPC_VAMPIRE_GIFT:         skillratio += ((skill_lv-1)%5+1)*100;         break;    
    E adicione seu modificador de dano lá. Por exemplo, se o Earth Bolt fosse baseado em Weapon, acrescentaríamos:  
        case MG_EARTHBOLT:         skillratio += 50;         break;    
    O + = 50 significa simplesmente "Adicionar 50% ao 100%" para danos de ATK de 150%.   Suporte a banco de dados de habilidades   Tecnicamente falando, a base da habilidade está agora correta. Claro, se você quiser implementar habilidades mais complexas, há muito mais para isso. A seção separada será criada no futuro para isso. Mas, por enquanto, precisamos implementar as entradas do banco de dados de habilidades. Os arquivos abaixo podem ser encontrados em db / (pre / re) /. Apenas um de ambos (pre / re) precisa ser atualizado, é o qual você usa em seu servidor.   Nessa parte é sempre aconselhável que você tenha alguma habilidade escolhida para se utilizar como base, pois facilitará muito a criação e/ou clonagem de sua habilidade. Aqui há diferenças, então dependendo do emulador usado, cada forma será de um jeito, caso o seu emulador seja alguns dos abaixos, continue. Caso não, pule para a parte: ** p/ Hercules.   ** p/ rAthena, brAthena, Cronus.   Skill_db.txt   Para a nossa habilidade Earth Bolt, podemos agora digitar o seguinte: Estrutura:
    8443,5,8,1,2,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic, 0, MG_EARTHBOLT, Earth Bolt    
    Isso define que: Earth Bolt tem um intervalo de 5 células, bate várias vezes, é elemento da Terra e alvos 1 inimigo. Ele pode ser interrompido, e é de dano de tipo mágico. A quantidade de acessos aumenta em 1 em cada nível, com um nível máximo de 10.   Skill_cast_db.txt   Para a nossa habilidade Earth Bolt, podemos agora digitar o seguinte: Estrutura:
    8443,2000,1,000,0,0,0    
    Isso define que: Earth Bolt tem um segundo tempo de ligação e um tempo de atraso de 1 segundo. Não há atraso de caminhada após o lançamento.   Skill_require_db.txt   Para o nosso Earth Bolt, podemos agora digitar o seguinte: Estrutura:
     
    8443,0,0,25: 30: 35: 40: 45: 50: 55: 60: 65: 70,0,0,0,0,0,0,0,0,0,0,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0    
    Isso define que: Earth Bolt requer 25 SP no nível 1, 30 SP no nível 2 .. 70 SP no nível 10. Pode ser lançado com qualquer arma, não requer nenhum estado e não requer nenhum item para ser consumido. =========================================================================== ** p/ Hercules.   Skill_db.txt  
     
     
     
    ===========================================================================   Skill_tree.txt   Esta parte do banco de dados não é necessária se não for lida por uma classe. No entanto, se você quiser que uma classe aprenda uma habilidade, você deve fazer uma entrada em skill_tree.txt. Um exemplo abaixo:
     
    MG_EARTHBOLT: { MaxLevel: 10 MG_FIREBOLT: 5 MG_LIGHTNINGBOLT: 5 }   Isso define que: Earth Bolt pode ser aprendido por Mago, tem um nível máximo de 10 (para esta classe), e requer habilidade MG_FIREBOLT no nível 5 e habilidade MG_LIGHTNINGBOLT no nível 5. Tecnicamente, estas são as partes geralmente utilizas com arquivos de banco de dados de habilidade. Há mais, mas isso ficará pra vocês explorarem.   Arquivos .lua e .lub   As seguintes implementações estão de acordo com a Revisão 228 do Projeto Lua (2012-05-23). A implementação é diferente entre muitas versões de cliente, mas geralmente há 2 implementações:   Sem arquivos skillinfoz   Em data/lua files/skillinfo/skilltreeview.lua encontre: {"MG_FIREWALL", 18; Pos = 19, MaxLv = 10, NeedSkillList = {6, 12}} Adicione a baixo:
    {"MG_EARTHBOLT",8443; Pos = 20, MaxLv = 10, NeedSkillList = {19,20}}  
    Com arquivos skillinfoz   Em skillid.lua encontre: ECLAGE_RECALL = 3035, Depois adicione:
    MG_EARTHBOLT = 8443, in data/lua files/skillinfo/skilldescript.lua localize:
    [SKID.MG_THUNDERSTORM] = { "Thunder Storm", "Max Level:^777777 10 ^000000", "Type:^777777 Offensive ^000000", "SP Cost:^777777 24 + 5*SkillLV ^000000", "Target:^777777 cell ^000000", "Range:^777777 9 cells ^000000", "Cast Time:^777777 1*SkillLV sec ^000000", "Cool Down:^777777 2 sec ^000000", "Duration:^777777 0.2*SkillLV sec ^000000", "Effect:^777777 Hits every Enemy in a 5x5 area around the targeted cell with 1 Wind Element Bolt per level at a rate of 1 bolt every 0.2 seconds. Each bolt does 0.8*MATK Wind element damage. ^000000", "[LV 1]^777777 1 Bolt ^000000", "[LV 2]^777777 2 Bolts ^000000", "[LV 3]^777777 3 Bolts ^000000", "[LV 4]^777777 4 Bolts ^000000", "[LV 5]^777777 5 Bolts ^000000", "[LV 6]^777777 6 Bolts ^000000", "[LV 7]^777777 7 Bolts ^000000", "[LV 8]^777777 8 Bolts ^000000", "[LV 9]^777777 9 Bolts ^000000", "[LV 10]^777777 10 Bolts ^000000", }, Depois adicione:
    [SKID.MG_EARTHBOLT] = { "Earth Bolt", "Max Level:^777777 10 ^000000" "Type:^77777 Active ^000000" "SP Cost:^777777 20 + 5*SkillLV ^000000" "Target:^777777 1 Enemy ^000000" "Cast Time:^777777 2 sec ^000000" "Cool Down:^777777 1 sec ^000000" "Duration:^777777 Instant ^000000" "Effect: ^777777 Deals SkillLV bolts of Earth magic damage to one enemy, at 150% MATK per hit.^000000", }, skilltreeview.lua mude:
    [JOBID.JT_MAGICIAN] = { [1] = SKID.MG_STONECURSE, [2] = SKID.MG_COLDBOLT, [3] = SKID.MG_LIGHTNINGBOLT, [4] = SKID.MG_NAPALMBEAT, [5] = SKID.MG_FIREBOLT, [6] = SKID.MG_SIGHT, [8] = SKID.MG_SRECOVERY, [9] = SKID.MG_FROSTDIVER, [10] = SKID.MG_THUNDERSTORM, [11] = SKID.MG_SOULSTRIKE, [12] = SKID.MG_FIREBALL, [13] = SKID.MG_ENERGYCOAT, [18] = SKID.MG_SAFETYWALL, [19] = SKID.MG_FIREWALL },  para:
    [JOBID.JT_MAGICIAN] = { [1] = SKID.MG_STONECURSE, [2] = SKID.MG_COLDBOLT, [3] = SKID.MG_LIGHTNINGBOLT, [4] = SKID.MG_NAPALMBEAT, [5] = SKID.MG_FIREBOLT, [6] = SKID.MG_SIGHT, [8] = SKID.MG_SRECOVERY, [9] = SKID.MG_FROSTDIVER, [10] = SKID.MG_THUNDERSTORM, [11] = SKID.MG_SOULSTRIKE, [12] = SKID.MG_FIREBALL, [13] = SKID.MG_ENERGYCOAT, [18] = SKID.MG_SAFETYWALL, [19] = SKID.MG_FIREWALL, [20] = SKID.MG_EARTHBOLT }, skillinfolist.lua Mude:
    [SKID.ECL_SEQUOIADUST] = { "ECL_SEQUOIADUST"; SkillName = "Sequoia Dust", MaxLv = 1, SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 7 }, } Para:
    [SKID.ECL_SEQUOIADUST] = { "ECL_SEQUOIADUST"; SkillName = "Sequoia Dust", MaxLv = 1, SpAmount = { 0 }, bSeperateLv = false, AttackRange = { 7 }, }, [SKID.MG_EARTHBOLT] = { "MG_EARTHBOLT"; SkillName = "Earth Bolt", MaxLv = 10, SpAmount = { 25, 30, 35, 40, 45, 50, 55, 60, 65, 70 }, _NeedSkillList = { { SKID.MG_FIREBOLT, 5}, { SKID.MG_LIGHTNINGBOLT, 5} } Finalizando   Não se esqueça que você precisará de adicionar o arquivo Sprite e BMP apropriado para a habilidade. Use o nome MG_EARTHBOLT como o nome do arquivo em: data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\item data\sprite\¾ÆÀÌÅÛ   Efeitos   Vá a src/map/skill.h, Procure a skill que deseja adicionar/editar o efeito:
     
            case WE_BABY:             if(sd) {                 struct map_session_data *f_sd = pc->get_father(sd);                 struct map_session_data *m_sd = pc->get_mother(sd);                 bool we_baby_parents = false;                 if(m_sd && check_distance_bl(bl,&m_sd->bl,AREA_SIZE)) {                     sc_start(src,&m_sd->bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv));                     clif->specialeffect(&m_sd->bl,408,AREA);                     we_baby_parents = true;                 }     Aqui está sendo utilizado como exemplo a habilidade de convocação das classes bebês. Onde 408 é o efeito adicionado para que seja mostrado ao utilizar a skill. Para a sua habilidade customizada, como ela é uma habilidade nova, não há nenhum efeito, então você terá que adicioná-lo ao arquivo, seguindo de exemplo a mesma forma mostrada acima. Para saber a lista de todos os efeitos, basta utilizar doc/effect_list.txt.     Fontes e créditos   https://github.com/HerculesWS/ https://github.com/Cronus-Emulator/ https://github.com/brAthena/ https://github.com/rAthena/ http://forum.cronus-emulator.com/ https://forum.brathena.org/ http://herc.ws/wiki/Adding_new_skills http://herc.ws/ https://google.com/   Comentários   Decidi fazer esse tutorial pois percebi que ainda não há nenhum guia com esse assunto em PT-BR e havia uma grande demanda de pessoas procurando. Tinha dado uma olhada no Hercules e percebi que é um bom tutorial, mas ainda estava incompleto e bem desatualizado, então decidi usa-lo como base e também pensei, por que não criar um? Espero que esteja de boa compreensão, caso estiver faltando algo que eu esqueci ou que eu não saiba, por favor me informe para torná-lo o melhor possível. Estou aberto a sugestões e críticas construtivas. Façam um bom proveito 
  8. Upvote
    Fratini reacted to Sephus in Achievement & Item Link System   
    Working on this
     
    The complete system is vast and requires scripting for most achievements as they're through NPCs. And we don't have much official info. But I've made it flexible enough to be customized for types of possible achievements, even ones not present in kRO.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.