Jump to content

[Guide] Add new Hateffect (Aura Style)


khyle650

Recommended Posts


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  42
  • Reputation:   37
  • Joined:  05/08/12
  • Last Seen:  

 

1. rathena/src/map/script.hpp

Search:

	HAT_EF_MAX

Replace:

	/* Custom Hateffects */
	HAT_EF_arcane_aura_A,
	HAT_EF_arcane_aura_B,
	HAT_EF_gluttony_aura_A,
	HAT_EF_gluttony_aura_B,

	HAT_EF_MAX = 9999

2. rathena/src/map/script_constants.hpp

Search:

	export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT);

Replace:

	export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT);
	/* Custom Hateffects */
	export_constant(HAT_EF_arcane_aura_A);
	export_constant(HAT_EF_arcane_aura_B);
	export_constant(HAT_EF_gluttony_aura_A);
	export_constant(HAT_EF_gluttony_aura_B);

3. Compile you Server.

4. Copy in you Data/texture/effect/(arcane_aura) and (gluttony_aura) Data(Example_Auras).zip

5. Data/luafiles514/lua files/hateffectinfo/hateffectinfo.lub

Search:

	HAT_EF_efst_C_20th_Anniversary_Hat = 176
}

Replace:

	HAT_EF_efst_C_20th_Anniversary_Hat = 176,
	HAT_EF_arcane_aura_A = 177,
	HAT_EF_arcane_aura_B = 178,
	HAT_EF_gluttony_aura_A = 179,
	HAT_EF_gluttony_aura_B = 180
}

resourceFileName: route effect(Data/effect/name you effect folder/name you str file.str)
IsIgnoreRiding: if true when mounting a mount or asking for hateffect will not go up, it will ignore this action
isRenderBeforeCharacter: If true when using hateffect it will be over the character.
hatEffectPos: Position the Y anchor (up and down) of the hateffect
hatEffectPosX: Positions hateffect X anchor (left right)
isAdjustPositionWhenShrinkState: always true
isAdjustSizeWhenShrinkState: always true

Search:

	[HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = {
		resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str",
		hatEffectPos = -6,
		hatEffectPosX = 0,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	}
}

Replace:

	[HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = {
		resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str",
		hatEffectPos = -6,
		hatEffectPosX = 0,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_arcane_aura_A] = {
		resourceFileName = "arcane_aura\\arcane_aura_particle.str",
		hatEffectPos = -1,
		hatEffectPosX = 0,
		isRenderBeforeCharacter = false,
		isIgnoreRiding = false,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_arcane_aura_B] = {
		resourceFileName = "arcane_aura\\arcane_aura.str",
		hatEffectPos = -2,
		hatEffectPosX = 0.2,
		isRenderBeforeCharacter = true,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_gluttony_aura_A] = {
		resourceFileName = "gluttony_aura\\gluttony_aura_particle.str",
		hatEffectPos = -1,
		hatEffectPosX = 0,
		isRenderBeforeCharacter = false,
		isIgnoreRiding = false,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_gluttony_aura_B] = {
		resourceFileName = "gluttony_aura\\gluttony_aura.str",
		hatEffectPos = -2,
		hatEffectPosX = 0.2,
		isRenderBeforeCharacter = true,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	}
}

 

6. Add Script NPC: rathena\npc\custom\hateffect.txt (Use command @efc in game)

-	script	HATEFFECT	-1,{

OnHatEffect:
	if(getgmlevel()>= 80){
	input .@number;
	if (.@number < 1) end;
	if (.@number >= 301) end;
	for(.@i = 1; .@i < 300; ++.@i)
		hateffect .@i,false;
	hateffect .@number,true;
	end;
	}

	
OnInit:
	bindatcmd "efc",strnpcinfo(3)+"::OnHatEffect";
	end;
}

7. Add npc in rathena\npc\scripts_custom.conf

npc: npc/custom/hateffect.txt

8. (OPTIONAL) Add Hateffect in item:
Example:

  - Id: 2301
    AegisName: Cotton_Shirt
    Name: Cotton Shirt
    Type: Armor
    Buy: 10
    Weight: 100
    Defense: 1
    Locations:
      Armor: true
    ArmorLevel: 1
    Refineable: true
    Script: |
      hateffect HAT_EF_arcane_aura_A,true;
      hateffect HAT_EF_arcane_aura_B,true;
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;

Update: My project all Auras. (09/27/2023)

- Pack Auras: My Project All Auras

Too my project Ragnarok Online Pre-Renewal(Offline) and guide for easy update.

- Data Folder + Server: Google Drive or MediaFire

- Client RO: Google Drive or MediaFire

Guide for start server and Play:

0. Dowloand Client RO and Update.
1. Download Data Folder + Server
2. Copy all files C:/MyServer/Client (In folder Ragnarok Onmline).
3. Run C:/MyServer/UwAmp/UwAmp.exe
4. Start Server C:/MyServer/rathena/runserver.exe

Enjoy!!!

Gluttony Aura:

FiDaoY3.gif

Arcane Aura:

11JApSs.gif

Spoiler

Credits:
LCDTheOG
Fros

Edited by khyle650
  • Upvote 2
  • Love 8
  • MVP 3
  • Like 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  170
  • Reputation:   85
  • Joined:  04/10/12
  • Last Seen:  

Thanks for the guide

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

is it possible enable hat effect within range

example

lvl 99 ~ 149

lvl 150 ~ 174

lvl 175 ~ 184

lvl 185 ~ 189

last only for lvl 200

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.01
  • Content Count:  15
  • Reputation:   11
  • Joined:  12/15/22
  • Last Seen:  

neat guide pretty straight forward 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  92
  • Topics Per Day:  0.02
  • Content Count:  354
  • Reputation:   22
  • Joined:  11/17/11
  • Last Seen:  

10 hours ago, hendra814 said:

is it possible enable hat effect within range

example

lvl 99 ~ 149

lvl 150 ~ 174

lvl 175 ~ 184

lvl 185 ~ 189

last only for lvl 200

You can do that part when putting in the itemscript.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

On 3/3/2023 at 7:43 PM, Virtue said:

You can do that part when putting in the itemscript.

hi, i'm tried using like this, but the hat effect not showed.

Quote

-    script    Hat Effect    -1,{
OnPCLoginEvent:
    if((BaseLevel >=99)||(BaseLevel <=149)){ 
    hateffect 3,true; 
    }
    end;
}

 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  92
  • Topics Per Day:  0.02
  • Content Count:  354
  • Reputation:   22
  • Joined:  11/17/11
  • Last Seen:  

1 hour ago, hendra814 said:

hi, i'm tried using like this, but the hat effect not showed.

 

you're on the right track. instead of doing it on a login script, do it on the item script directly eg:

  - Id: 9999999
    AegisName: Your_Item_Name
    Name: Your Item Name
    Type: Armor
    Buy: 10
    Weight: 10000
    Defense: 10000
    Locations:
      Costume_Head_Low: true
    ArmorLevel: 1
    Refineable: true
    Script: |
      if(BaseLevel < 200){
      hateffect HAT_EF_arcane_aura_A,true;
      }
      if(BaseLevel < 150){
      hateffect HAT_EF_arcane_aura_B,true;
      }
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;

something along the one above.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

12 hours ago, Virtue said:

you're on the right track. instead of doing it on a login script, do it on the item script directly eg:

  - Id: 9999999
    AegisName: Your_Item_Name
    Name: Your Item Name
    Type: Armor
    Buy: 10
    Weight: 10000
    Defense: 10000
    Locations:
      Costume_Head_Low: true
    ArmorLevel: 1
    Refineable: true
    Script: |
      if(BaseLevel < 200){
      hateffect HAT_EF_arcane_aura_A,true;
      }
      if(BaseLevel < 150){
      hateffect HAT_EF_arcane_aura_B,true;
      }
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;

something along the one above.

i don't want using as an item.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  92
  • Topics Per Day:  0.02
  • Content Count:  354
  • Reputation:   22
  • Joined:  11/17/11
  • Last Seen:  

32 minutes ago, hendra814 said:

i don't want using as an item.

That wasn't clear on your post. In any case, another option maybe is to create a command for your needs, or tweak the idea you've already gotten using the pclogin script. might work, might not.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

3 hours ago, Virtue said:

That wasn't clear on your post. In any case, another option maybe is to create a command for your needs, or tweak the idea you've already gotten using the pclogin script. might work, might not.

i mean, I don't want to be used as an item, ok i will try with pclogin script

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  120
  • Topics Per Day:  0.03
  • Content Count:  295
  • Reputation:   6
  • Joined:  12/02/11
  • Last Seen:  

is there a way hateffect not appear in object structure such as buildings?

Untitled.jpg

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

disable restrore model culling when patching client.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  120
  • Topics Per Day:  0.03
  • Content Count:  295
  • Reputation:   6
  • Joined:  12/02/11
  • Last Seen:  

Just now, hendra814 said:

disable restrore model culling when patching client.

i don't have restore model culling in my client thats why the structure still visible not transparent

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  42
  • Reputation:   37
  • Joined:  05/08/12
  • Last Seen:  

On 3/5/2023 at 1:08 AM, hendra814 said:

i don't want using as an item.

Use this example script npc: Orb Refine by Skorn

 

 

Link to comment
Share on other sites

  • 2 months later...

  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   7
  • Joined:  04/30/14
  • Last Seen:  

could you send me the clean script as i can't download it from the creator Thx ?

 

@khyle650

Link to comment
Share on other sites

  • 3 weeks later...

  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.01
  • Content Count:  11
  • Reputation:   0
  • Joined:  03/13/23
  • Last Seen:  

Could you teach me that how to use hateffect at the monster ?

Link to comment
Share on other sites

  • 3 months later...

  • Group:  Members
  • Topic Count:  46
  • Topics Per Day:  0.03
  • Content Count:  154
  • Reputation:   0
  • Joined:  01/03/20
  • Last Seen:  

hello this is what im looking for so long sir and mam, i really just want to know if there is a script on this aura like, NPC that you can pay to change any kind of aura you want, i have a aura effect alot in my grf but i dont know how to make NPC of this ,i just do offline ragnarok 😞

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.06
  • Content Count:  79
  • Reputation:   1
  • Joined:  06/22/23
  • Last Seen:  

On 3/3/2023 at 3:51 AM, khyle650 said:

1. rathena/src/map/script.hpp

Search:

	HAT_EF_MAX

Replace:

	/* Custom Hateffects */
	HAT_EF_arcane_aura_A,
	HAT_EF_arcane_aura_B,
	HAT_EF_gluttony_aura_A,
	HAT_EF_gluttony_aura_B,

	HAT_EF_MAX = 9999

2. rathena/src/map/script_constants.hpp

Search:

	export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT);

Replace:

	export_constant(HAT_EF_EFST_C_20TH_ANNIVERSARY_HAT);
	/* Custom Hateffects */
	export_constant(HAT_EF_arcane_aura_A);
	export_constant(HAT_EF_arcane_aura_B);
	export_constant(HAT_EF_gluttony_aura_A);
	export_constant(HAT_EF_gluttony_aura_B);

3. Compile you Server.

4. Copy in you Data/texture/effect/(arcane_aura) and (gluttony_aura) Data(Example_Auras).zip

5. Data/luafiles514/lua files/hateffectinfo/hateffectinfo.lub

Search:

	HAT_EF_efst_C_20th_Anniversary_Hat = 176
}

Replace:

	HAT_EF_efst_C_20th_Anniversary_Hat = 176,
	HAT_EF_arcane_aura_A = 177,
	HAT_EF_arcane_aura_B = 178,
	HAT_EF_gluttony_aura_A = 179,
	HAT_EF_gluttony_aura_B = 180
}

resourceFileName: route effect(Data/effect/name you effect folder/name you str file.str)
IsIgnoreRiding: if true when mounting a mount or asking for hateffect will not go up, it will ignore this action
isRenderBeforeCharacter: If true when using hateffect it will be over the character.
hatEffectPos: Position the Y anchor (up and down) of the hateffect
hatEffectPosX: Positions hateffect X anchor (left right)
isAdjustPositionWhenShrinkState: always true
isAdjustSizeWhenShrinkState: always true

Search:

	[HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = {
		resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str",
		hatEffectPos = -6,
		hatEffectPosX = 0,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	}
}

Replace:

	[HatEFID.HAT_EF_efst_C_20th_Anniversary_Hat] = {
		resourceFileName = "efst_C_20th_Anniversary_Hat\\20th_f.str",
		hatEffectPos = -6,
		hatEffectPosX = 0,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_arcane_aura_A] = {
		resourceFileName = "arcane_aura\\arcane_aura_particle.str",
		hatEffectPos = -1,
		hatEffectPosX = 0,
		isRenderBeforeCharacter = false,
		isIgnoreRiding = false,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_arcane_aura_B] = {
		resourceFileName = "arcane_aura\\arcane_aura.str",
		hatEffectPos = -2,
		hatEffectPosX = 0.2,
		isRenderBeforeCharacter = true,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_gluttony_aura_A] = {
		resourceFileName = "gluttony_aura\\gluttony_aura_particle.str",
		hatEffectPos = -1,
		hatEffectPosX = 0,
		isRenderBeforeCharacter = false,
		isIgnoreRiding = false,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	},
	[HatEFID.HAT_EF_gluttony_aura_B] = {
		resourceFileName = "gluttony_aura\\gluttony_aura.str",
		hatEffectPos = -2,
		hatEffectPosX = 0.2,
		isRenderBeforeCharacter = true,
		isIgnoreRiding = true,
		isAdjustPositionWhenShrinkState = true,
		isAdjustSizeWhenShrinkState = true
	}
}

 

6. Add Script NPC: rathena\npc\custom\hateffect.txt (Use command @efc in game)

-	script	HATEFFECT	-1,{

OnHatEffect:
	if(getgmlevel()>= 80){
	input .@number;
	if (.@number < 1) end;
	if (.@number >= 301) end;
	for(.@i = 1; .@i < 300; ++.@i)
		hateffect .@i,false;
	hateffect .@number,true;
	end;
	}

	
OnInit:
	bindatcmd "efc",strnpcinfo(3)+"::OnHatEffect";
	end;
}

7. Add npc in rathena\npc\scripts_custom.conf

npc: npc/custom/hateffect.txt

8. (OPTIONAL) Add Hateffect in item:
Example:

  - Id: 2301
    AegisName: Cotton_Shirt
    Name: Cotton Shirt
    Type: Armor
    Buy: 10
    Weight: 100
    Defense: 1
    Locations:
      Armor: true
    ArmorLevel: 1
    Refineable: true
    Script: |
      hateffect HAT_EF_arcane_aura_A,true;
      hateffect HAT_EF_arcane_aura_B,true;
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;

Gluttony Aura:

FiDaoY3.gif

Arcane Aura:

11JApSs.gif

Credits:
LCDTheOG
Frost

Hello i follow your guide but its not working on me. im using 2021 client

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

11 hours ago, Dev j said:

Hello i follow your guide but its not working on me. im using 2021 client

where's do you put the STR files?

please check your client read GRF first or data folder first.

If your client read GRF first, put the files in your GRF

But if your client read data folder first, put the files in data folder

Mine working with client 2021-11-03

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.06
  • Content Count:  79
  • Reputation:   1
  • Joined:  06/22/23
  • Last Seen:  

On 9/12/2023 at 9:47 AM, hendra814 said:

where's do you put the STR files?

please check your client read GRF first or data folder first.

If your client read GRF first, put the files in your GRF

But if your client read data folder first, put the files in data folder

Mine working with client 2021-11-03

Yes in @efc working the aura but when i put it on item its no working

 

its working when i use it in @efc but when i put it on itemscript it not showing

image.png

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

1 minute ago, Dev j said:

Yes in @efc working the aura but when i put it on item its no working

try share it in here the script you put in the item.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.06
  • Content Count:  79
  • Reputation:   1
  • Joined:  06/22/23
  • Last Seen:  

Just now, hendra814 said:

try share it in here the script you put in the item.

  - Id: 54000
    AegisName: C_G_CAP
    Name: Costume G Cap
    Type: Armor
    Locations:
      Costume_Head_Top: true
    ArmorLevel: 1
    EquipLevelMin: 1
    View: 4000
    Script: |
      hateffect HAT_EF_arcane_aura_A,true;
      hateffect HAT_EF_arcane_aura_B,true;
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;
 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  55
  • Topics Per Day:  0.01
  • Content Count:  1188
  • Reputation:   161
  • Joined:  06/12/12
  • Last Seen:  

2 hours ago, Dev j said:

  - Id: 54000
    AegisName: C_G_CAP
    Name: Costume G Cap
    Type: Armor
    Locations:
      Costume_Head_Top: true
    ArmorLevel: 1
    EquipLevelMin: 1
    View: 4000
    Script: |
      hateffect HAT_EF_arcane_aura_A,true;
      hateffect HAT_EF_arcane_aura_B,true;
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;
 

for this i'm not sure, i thnk because the item have view ID it's self (4000)

maybe you can try with sample item like in example.

- Id: 2301
    AegisName: Cotton_Shirt
    Name: Cotton Shirt
    Type: Armor
    Buy: 10
    Weight: 100
    Defense: 1
    Locations:
      Armor: true
    ArmorLevel: 1
    Refineable: true
    Script: |
      hateffect HAT_EF_arcane_aura_A,true;
      hateffect HAT_EF_arcane_aura_B,true;
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;

 

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.06
  • Content Count:  79
  • Reputation:   1
  • Joined:  06/22/23
  • Last Seen:  

10 minutes ago, hendra814 said:

for this i'm not sure, i thnk because the item have view ID it's self (4000)

maybe you can try with sample item like in example.

- Id: 2301
    AegisName: Cotton_Shirt
    Name: Cotton Shirt
    Type: Armor
    Buy: 10
    Weight: 100
    Defense: 1
    Locations:
      Armor: true
    ArmorLevel: 1
    Refineable: true
    Script: |
      hateffect HAT_EF_arcane_aura_A,true;
      hateffect HAT_EF_arcane_aura_B,true;
    UnEquipScript: |
      hateffect HAT_EF_arcane_aura_A,false;
      hateffect HAT_EF_arcane_aura_B,false;

 

i also try that but still not working

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  17
  • Topics Per Day:  0.06
  • Content Count:  79
  • Reputation:   1
  • Joined:  06/22/23
  • Last Seen:  

still not working

image.png

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...