Jump to content

Landmine V1.0. - I Think I Have It!


davros
 Share

Recommended Posts

Hi folks,

This is another thread of my continuing attempt to make an anti-personnel landmine for GRAW.

I have discovered that the composition_manager.xml has the abibility to cause damage from compositions (explosions), but for some reason, GRIN turned this off...even for the composition named "MortarDirtExplosion_damage"

The code in the composition_manager.xml looks like this...

<composition name="MortarDirtExplosion_damage">

<fragment name="MortarDirtExplosion" delay="0.0" type="particle" range="500" damage="50" damage_type="explosion" offset="0 0 0"/>

<fragment name="mortar_explode" delay="0.0" type="particle" offset="0 0 0" />

</composition>

This looks ok, but the tag type="particle" has to be type="damage" for it to cause damage.

So, my mine code works (ie. it kills you!) using the following modified version of the composition_manager.xml (and some script to trigger the composition when people move over a spot on the map)...ie. it's lethal out to 25m radius and then causes 2 points out to 25m radius...

<composition name="MortarDirtExplosion_damage">

<fragment name="MortarDirtExplosion" delay="0.0" type="damage" range="1500" damage="101" damage_type="explosion" offset="0 0 0"/>

<fragment name="MortarDirtExplosion" delay="0.0" type="damage" range="2500" damage="2" damage_type="explosion" offset="0 0 0"/>

<fragment name="MortarDirtExplosion" delay="0.0" type="particle" offset="0 0 0"/>

<fragment name="mortar_explode" delay="0.0" type="particle" offset="0 0 0" />

</composition>

The problem/question I have is how to package this so I can use it in a mission. If I put it as a mod (in the /mods folder) AFAIK, there can only be one mod...and most use Bretzies mod...so what to do?

Anyone?

Dav.

Link to comment
Share on other sites

Only 2 things you can do.

1: Continue making custom levels and continue banging your head against the wall each time you end up here.

2: Go ahead and make a mod. Maybe a few extra bits to make it more appealable. Add more mags, frags, GL rounds. Would be good if others followed suit, you could start to share some common files from there. Tweaking AI and weapon stats for 1. Adding a few simple fixes for the original game also. Once you get going, now you are using a mod system, you start adding allsorts of other things now with no issues. Reskin the characters, add your face, change the textures and build a winter map... Add a new cool GameSpy icon >PIC< :shifty:

Link to comment
Share on other sites

Thanks Tinker. I guess I know in my heart I'll have to face into this soon enough...

For now though, I choose to bang my head a bit longer!

Although I do like your ideas...and chance of a collaboration on this...does sound exciting!

I call it the "One Mod."

One mod to rule them all, one mod to find them, one mod to bring them all, and in the darkness bind them. - appologies to Tolkien

Dav.

Link to comment
Share on other sites

Attempt#1

Use a the "at_mine" object...It's an (anti-tank) mine already in the game and does do damage when it explodes. The big problem with it as an AP mine is it only activates by collision, bullet damage or explosion....not walking over it and there is no script event to trigger it. ARGH!!!

Re. the collision part, the reason it does not explode when you walk over it is that a human does not trigger the <damange_manager> event....not sure why this is...

  1. Hmmm...I wonder if I could edit something such that it responds to a humans cause collision damage?
  2. Anyone know if this is possible, where to look?
  3. Any other ideas on how to trigger the at_mine?

Attempt#2

Re. mortars, it's a silly (perhaps deliberate) oversigtht by GRIN. The code is there in the composition_manager.xml to do damage from a composition..., there is even instructions at the top of the composition_manager.xml on how to set the tags for damage and a composition named "MortarDirtExplosion_damage" but they have set it to particle effect!!! This looks ok, but as per prev post the tag type="particle" has to be type="damage" for it to cause damage. I have tested this and it works fine - ie. it blows you up!

<composition name="MortarDirtExplosion_damage">

<fragment name="MortarDirtExplosion" delay="0.0" type="particle" range="500" damage="50" damage_type="explosion" offset="0 0 0"/>

<fragment name="mortar_explode" delay="0.0" type="particle" offset="0 0 0" />

</composition>

The problem with this approach is that...

* Based on fishmonger's experience, it may/will not work reliably the second time around on a server.

* To change the composition_manager.xml, I'd need to put it in either the "local/" or "/mods" folders...not really a viable option - as it would not work on most servers - unless they also had the mod.

So, this approach of modifying the composition_manager looks flawed.

3) Anyone got a view/different angle on this?

Attempt #3...Use a vehicle....shaped like a mine (making a model in 3dsMax will be the easy part)!

The issue here a comes down to the fact that you need a .dxe for the vehicle.

4) I have no idea how to create a dxe - does anyone?

I have used a hex editor to play with the "adats.dxe" and can confirm that this is the thing that determines what happens after you give the command "ExplodeVehicle". I basically removes the existing vehicle and created the vehicle adats_dest (and perhaps...then adats_dest_parts).

I have spent a significant amount of time on this...but am stumped at how the unit u_adats.xml and the adats.dxe are linked.

I suspect it's the bolded line in the unit file...u_adats.xml...but am not certain if there is a "master list" of vehicles to .dxe somewhere.

<?xml version="1.0" encoding="ISO-8859-1"?>

<units>

<unit type="vehicle" name="adatm" slot="25">

<network sync="bodies" />

<model file="\vehicles\adatm\adatm.xml"/>

<depends_on unit="adatm_dest"/>

<depends_on unit="adatm_dest_parts"/>

<script_class name="base" class="Adats"/>

5) Does anyone know how they are related and how I can create my own .dxe file or better still, is willing to walk me through creating my own vehicle (happy to just model it on an existing adata for now...then do 3dsmax modelling later).

Dav

Link to comment
Share on other sites

FWIW, in GRAW1, I have made a few maps with IEDs - using pretty much vehicles as the detonator and fuel cisterns below the map surface to add explosive punch.

In the map Operation Buttmunch, you'll find a few vehicles that occasionally appear on the map, which do not move. They may or may not be surrounded by a trigger area, which has "low sensitivity" to make it more random, e.g. the delay time before triggering the explosion may be a few seconds, allowing folks to wander through the zone many times without the trigger going off. Also, some zones require at least 2 players to be in the area to cause the big bang.

The explosion itself always works - vehicle blows with explode vehicle command, and then the stuff nearby that can blow goes up with it. If you play maps offline only, you can use compositions such as mortars or F15s to drop ordinance on top of hidden fuel cisterns, or parked dynamic objects such as panhard cover or vehicles to trigger the explosion. The problem with the compositions in GRAW1 is that they only work in round one of an online match.

You could also use a building explosion as a trigger, because those can be triggered easily with just one command, and they will blow up things within a certain perimeter. No idea if there is such a thing in the GRAW2 set of things you can mess with.

regarding making custom objects - how do you get them into a map? You are essentially talking about a mod, which makes your map not playable on standard game installations. I would love to create custom stuff for GRAW1, but apparently the moment you build your own buildings or custom textures, all this has to sit somewhere in the game directories other than custom_levels. Maybe I am missing out on a few tricks one can use in the bundle of a map, but I have never seen a map that actually used any custom landscape or even tiny object that's not part of the game's "Lego blocks"

Edited by fishmonger
Link to comment
Share on other sites

regarding making custom objects - how do you get them into a map? You are essentially talking about a mod, which makes your map not playable on standard game installations. I would love to create custom stuff for GRAW1, but apparently the moment you build your own buildings or custom textures, all this has to sit somewhere in the game directories other than custom_levels. Maybe I am missing out on a few tricks one can use in the bundle of a map, but I have never seen a map that actually used any custom landscape or even tiny object that's not part of the game's "Lego blocks"

This is one of the mysteries of modding this game that I have been wondering about in my mind and also in a few questions I have asked. Maybe I should also post over on the GRAW1 forum... which is sorta like an alternate parallel universe for me.

A few days ago I was attempting to change the "tint" of some objects within the Editor, specifically one of the concrete wall units and a brick wall unit. I was never able to get it to work for some reason, that is.. the color would not change nor did it appear to save anything.

But, I noticed the next day when browsing the game files and directories that there were some new directories and files produced:

/data/objects/world/city/props/cit_wall_concrete/materials_dyn.xml


<materials>
<xi:include href="/data/settings/palett.xml#xpointer(/include/city_colors/*)"/>
<!-- Generated materials from Sketchup -->
<!-- Group: General -->
<material name="con_wall" src="bump" decal_material="concrete">
<diffuse_texture file="c_wall_concrete_df"/>
<bump_normal_texture file="c_wall_concrete_bm"/>
</material>
<material name="damage" src="bump" decal_material="stone">
<diffuse_texture file="c_damage_df"/>
<bump_normal_texture file="c_damage_bm"/>
</material>
<material name="con_wall_inst" src="bump_instanced" decal_material="concrete">
<diffuse_texture file="c_wall_concrete_df"/>
<bump_normal_texture file="c_wall_concrete_bm"/>
</material>
<material name="damage_inst" src="bump_instanced" decal_material="stone">
<diffuse_texture file="c_damage_df"/>
<bump_normal_texture file="c_damage_bm"/>
</material>
<!-- End Sketchup -->
<material name="cit_wall_concrete_3m_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_3m"/>
</material>
<material name="cit_wall_concrete_3m_end_01_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_3m_end_01"/>
</material>
<material name="cit_wall_concrete_3m_end_02_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_3m_end_02"/>
</material>
<material name="cit_wall_concrete_3m_hole_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_4m_hole"/>
</material>
<material name="cit_wall_concrete_3m_low_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_3m_low"/>
</material>
<material name="cit_wall_concrete_6m_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_6m"/>
</material>
<material name="cit_wall_concrete_6m_destr_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_6m_destr"/>
</material>
<material name="cit_wall_concrete_6m_low_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_6m_low"/>
</material>
<material name="cit_wall_concrete_18m_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_18m"/>
</material>
<material name="cit_wall_concrete_18m_low_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_18m_low"/>
</material>
<material name="cit_wall_concrete_cover_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_concrete_cover"/>
</material>
<material name="cit_wall_pillar_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_pillar"/>
</material>
<material name="cit_wall_pillar_low_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="cit_wall_pillar_low"/>
</material>
</materials>
[/code] /data/objects/world/industrial/props/ind_wall_bricks/materials
[code]
<materials>
<xi:include href="/data/settings/palett.xml#xpointer(/include/city_colors/*)"/>
<!-- Generated materials from Sketchup -->
<!-- Group: General -->
<material name="br_wall" src="bump_lightmap" decal_material="stone">
<diffuse_texture file="i_wall_bricks_df"/>
<bump_normal_texture file="i_wall_bricks_bm"/>
</material>
<material name="list_rail" src="bump_lightmap" decal_material="concrete">
<diffuse_texture file="i_list_rails_df"/>
<bump_normal_texture file="i_list_rails_bm"/>
</material>
<!-- End Sketchup -->
<material name="ind_wall_brick_3m_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="ind_wall_brick_3m"/>
</material>
<material name="ind_wall_brick_3m_low_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="ind_wall_brick_3m_low"/>
</material>
<material name="ind_wall_brick_6m_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="ind_wall_brick_6m"/>
</material>
<material name="ind_wall_brick_6m_low_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="ind_wall_brick_6m_low"/>
</material>
<material name="ind_wall_brick_18m_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="ind_wall_brick_18m"/>
</material>
<material name="ind_wall_brick_18m_low_sil" src="silhouette_diffuse" decal_material="concrete">
<diffuse_texture file="ind_wall_brick_18m_low"/>
</material>
</materials>

Obviously these files (and I assume any others that might be created for any custom objects... like maybe new textures or other files that might be associated with any custom models can not be included in the bundle for the custom_level.

But might not it work if these files were somehow installed along with the bundle file? It wouldn't be terribly difficult to write a batch file to copy the files into the desired location.

Forgive me if this is a dumb question and I would not be surprised if it is NOT possible.

And no.. I can't test it since I don't really have any custom objects available.

But it can't hurt to ask.

Link to comment
Share on other sites

FWIW, in GRAW1, I have made a few maps with IEDs - using pretty much vehicles as the detonator and fuel cisterns below the map surface to add explosive punch.

You see, this is why I love forums and the like...IED's how obvious and yet never done in GRAW2 and I have never thought of it! Thanks for this idea. It will certainly make an appearance in my missions. And I completely understand about the trigger mechanism you describe.

If you play maps offline only, you can use compositions such as mortars or F15s to drop ordinance on top of hidden fuel cisterns, or parked dynamic objects such as panhard cover or vehicles to trigger the explosion. The problem with the compositions in GRAW1 is that they only work in round one of an online match.

Interesting...from the code I can see that compositions in composition_manager.xml do not cause damage. I'll take a look at the GRAW1.xml and see if it's any different and have a go at setting them off on a fuel cistern and post back.

You could also use a building explosion as a trigger, because those can be triggered easily with just one command, and they will blow up things within a certain perimeter. No idea if there is such a thing in the GRAW2 set of things you can mess with.

Blow up buildings! Cool, I have not seen this...what's the script command? I'll see if it exists in GRAW2.

regarding making custom objects - how do you get them into a map? You are essentially talking about a mod, which makes your map not playable on standard game installations. I would love to create custom stuff for GRAW1, but apparently the moment you build your own buildings or custom textures, all this has to sit somewhere in the game directories other than custom_levels. Maybe I am missing out on a few tricks one can use in the bundle of a map, but I have never seen a map that actually used any custom landscape or even tiny object that's not part of the game's "Lego blocks"

This is not correct, they do just go the "normal" mission bundle in custom_levels. I think this is also the case in GRAW1.

Custom landscapes are an example...ie castle_day - a remake of the GR castle. This is just a "normal" custom_leves .bundle. The same applies to objects (at least static, not sure of dynamic). ie.,

1) you can just make your own buildings, props etc. in 3dsMax and

2) put them in the /data directory and they will appear in the list of objects in the game editor and

3) place on the map as you like.

4) bundle your mission as you normally would

5) they'll also be part of the <your mission name>.bundle and work just like any "standard" object...ie. just run/load from custom_levels.

An example of this is the invisible box LoBo created for me as part of a project I have called the sin-bin. It has the following folders/files.

box\objects\props\helpers\dav_box_col_obj_10x10m\dav_box_col_obj_10x10m.diesel

box\objects\props\helpers\dav_box_col_obj_10x10mdav_box_col_obj_10x10m.xml

box\objects\props\helpers\dav_box_col_obj_10x10mmaterial.xml

box\units\props\u_dav_box.xml

This can now be used in any map/mission .bundle just by including these files in the data dir when I am making a mission.

Obviously these files (and I assume any others that might be created for any custom objects... like maybe new textures or other files that might be associated with any custom models can not be included in the bundle for the custom_level.

But might not it work if these files were somehow installed along with the bundle file? It wouldn't be terribly difficult to write a batch file to copy the files into the desired location.

Forgive me if this is a dumb question and I would not be surprised if it is NOT possible.

And no.. I can't test it since I don't really have any custom objects available.

But it can't hurt to ask.

You are right...it is possible. Hopefully my above answer covers this. it is possible and infact very easy to include new, custom objects in your missions (assuming you know how to use 3dsMax!)

Maybe I should also post over on the GRAW1 forum... which is sorta like an alternate parallel universe for me.

I think GRAW1 and GRAW2 folks should work more closely and share ideas and tactics. From what I am seeing, they have more in common that we think and I caould learn alot from those guys.

A few days ago I was attempting to change the "tint" of some objects within the Editor, specifically one of the concrete wall units and a brick wall unit. I was never able to get it to work for some reason, that is.. the color would not change nor did it appear to save anything. But, I noticed the next day when browsing the game files and directories that there were some new directories and files produced:

Ahhh...will have a look when I can.

Dav

Link to comment
Share on other sites

Too excited to post details now, but I finally think I have creacked it!

I now (appear) to have a fully working anti-personnel land mine that can be used in any map without the need to load a mod. in the /mod. dir!

Loads of testing to go yet, but as far as I can see, it's working like a charm on my PC now.

Will follow up with details and a video showing landmines at work.

Also opens up some very exciting possibilities for other mods!!!

I am doubly excited because I have also (after 6 mnts) worked out how I can have players interact with an "in-game" button/switch that can be used to trigger stuff in the script. It's all so obvious (now!). It's only taken me 6 months to start to understand the format of the unit/prop files!

Damn...I wish I did not need to sleep! So much to do.

Dav.

Link to comment
Share on other sites

Well perhaps I was a bit over excited ;) Red bull and a dozen G&T's will do that!

Not exactly a world...more like a small island...or a rock witha bit of dirt on it...Still, kind of interesting, to me at least.

I really need to get out more....

Got to work.

Dav.

Link to comment
Share on other sites

Cornie new video...domonstrating mines :) :lol:

No need for a mod. Just add the new unit (dav_mine) to your custom mission folders...and some very simple script...and kamooey...some very cautious players!

So, who wants to be the first to surprise the peeps?

I'll create a page on the wiki with the details over the next few days.

The word of the day though is "UnitSequence"...Amazing what you can do if you spend 6 months randomly trying stuff!

Dav

Link to comment
Share on other sites

Cornie new video...domonstrating mines :) :lol:

No need for a mod. Just add the new unit (dav_mine) to your custom mission folders...and some very simple script...and kamooey...some very cautious players!

The word of the day though is "UnitSequence"...Amazing what you can do if you spend 6 months randomly trying stuff!

Dav

cool - Unitsequence is what blows up buildings in GRAW1 (and works very reliably online, too)

based on what you posted above, I think I should try to stuff one of these into a GRAW1 mission - probably works just fine.

thing about 3DsMax - I don't have it nor much time I could devote to actually learning how to use it properly. Sure would love to make some new 3D terrain, but that's most likely above my pay grade.

Suppose I can unbundle GRAW2 stuff with the same tool I use in GRAW1? I don't have GRAW2 installed any longer

Link to comment
Share on other sites

Vhlad, True. And it works too.

The only downside with that is the mission maker needs to go through and name everything and then have script to make it attachable. Alot of work (even though it's been done for us in all the original maps in the [GR] mod.)

Bota, can you pls. give a more detailed explanation of what yopu are after...ie. a sequence of events and I'll give it some thought and see if there is another, easier way.

fishmonger...should be no need for 3dsMax models...but yeah, cld. prob use the ones from GRAW2...can give them to you to save you extracting it.

The unit is called at_mine. Check if it's in GRAW1.

EDIT : I have posted a draft of the wiki entry for mines up at the playpen. Check it out here for an early sneak peak if you are interested in the details.

Dav

Link to comment
Share on other sites

Dav

What a genius ...... I have watched the video (3 times) ...... and can't stop chuckling, All I keep seeing is my brother running over one of these and WhhhhOOOOmmmmmmPPP ! ..... from there into the sin bin... :rofl::rofl:

I love it ... an impertinent question (maybe) but can they be diffused .... I know ... I know its taken you six months to create them why would anyone want to defuse one ???

But imagine the tension if you had (say) 10 seconds to defuse it :grin2:

Anyway, great work mate :thumbsup:

Legacy

Link to comment
Share on other sites

Glad you like it :) Should make for some fun times while people work out they need to look down too!

I can see it now...

Nasty ghost > "hey noob guy, can you just run over there and take a position beside that rock...I'll cover you."

Noobie > "Um, yeah sounds reasonable...here I go..."

<boom>

Nasty ghost > <chuckle>

Re. disarming, yep. You can script this easily as there is a command do diarm the mine...http://graw2.pbwiki.com/Mines

In the (unlikely) event you want to disarm a mine after activating it, use the following script command. Change the number "01" to the number of your mine.

<element type = "TriggerEvent" event = "e_disarm_mine_01" start_time = "0"/>

Dav.

CJo1964,

Hey davros, you should incorporate your mine device into a new map alongside the guy working on that openable door......think of the possibilities !

MOUT rules !

Note sure what you mean by "the guy working on that openable door"...that was me too ;) Can you expand on what you're thinking here?

ps...had to google to find out what MOUT was.

If this could be done the result would be the new standard for GRAW 2 and a new era would begin.

We do have mines, openable doors and I have also made a switch that the players can activate (based upon the alarm switch in hacienda maps) though I am yet to release this. I think the switch will make for some interesting missions (ie. press switch to open door, deactivate nuclear bomb, call in airstrike etc etc).

Many people said that GRAW 2 was dead................what a load of old tosh.......its just being reborn !

Whatever you guys do....keep it up.....I applaud all your efforts as they give hours of enjoyment to so many military sim fans out there.

Thanks mate. It's been a heck of a ride. To be honest I think they were right, GRAW2 did flatline and was walking towards the light...but it heard the voices of those who cared for it and came back to us!

As the French say - Le Roi est mort, vive le Roi!

Link to comment
Share on other sites

Davros, excellent work buddy.

I'm extremely bummed that I'll be spending the next several months finishing my studies for the CPA exam and miss out on all the GRAW2 action but keep up the good work everyone. I can't wait to hit the download section for GRAW 2 once I return to see what goodies are in store.

I noticed in the video you have some pretty cool custom weapons and kit load outs. Are you able to get those working for everyone in your LAN games?

Again, keep up the great work.

Link to comment
Share on other sites

Thanks Bogie...looks like I neglected to move the files over from the playpen.

EDIT : Fixed.

One thing I did think of today was the texttures...

You'll recall the other threads that say we should try and use props from the same texture sets to limit the number of textures loaded into memory...or it may introduce lag issues.

I do not yet understand how textures relate to props like this and exactly what texture set the mine uses...so I'd be interested to see if you can research this.

This will not impact the use of the mine though...just may need to add a specific texture later if we find that it's going to improve performance.

Also, I've not tested the impact on FPS of having loads of mines active at the same time, or more acurately, it's the PlayerTrigger that's active. Be keen to see if you have any impact on frame rates with 10+ mines (PlayerTriggers) active at the same time.

If you do discover a lag issue by having the mines (ie PlayerTriggers) activae all the time, then You may want to have the mines activated by another Trigger/PlayerTrigger ..ie. when the player moves into the area, the mines are activated, when they move out of the area, they are deactivated?

Also, when placing the mines, space them out to more than 3.5m apart or when one blows, they will blow each other up! Normal mines will kill within 20m or more...so these are infact quite tame mines :)

Dav

Link to comment
Share on other sites

  • 2 months later...

Thanks Iceman - very kind of you.

Galor,

re your question on the wiki,

This change, which also serves for the rest of the game modes? (HH, Siege, RVSA, TDM)

I followed your step by step directions for use on a map HH, but mine does not explode when they step on it.

How or where can I link Loc_mine_01 with the object mine_01?...

The "link" is in the mines_routine.xml.

I have not tested this, but assuming you have got everything else right, you'll need to change the trigger in the mines_routines.xml so that it triggers on "team_all" instead of just "team_a".

ie.

<player_trigger name = "t_arm_mine_$mine_number" player_type="team_a" >

change to...

<player_trigger name = "t_arm_mine_$mine_number" player_type="team_all" >

Try that and if it still is not working for you, bundle it up and upload it to the playpen wiki (graw2-playen.pbwiki.com) and I'll take a look.

Dav

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.

 Share

×
×
  • Create New...