Jump to content
EmergencyFan97

Removing Vehicles/Changing Models

Recommended Posts

If I wanted to remove a vehicle from a station, how would I go about doing that?  Simply delete the box-thingy (prototype?) in the editor?  And if I wanted to change the model of a truck, would I simply replace the model with the one of the same name and ensure it had a skin?

Link to comment
Share on other sites

If I wanted to remove a vehicle from a station, how would I go about doing that?  Simply delete the box-thingy (prototype?) in the editor?  And if I wanted to change the model of a truck, would I simply replace the model with the one of the same name and ensure it had a skin?

To remove a vehicle, simply remove the part in the script that calls the ingame function to spawn the vehicle. This is in LAFireStationStart.script

You are correct about how to change the model of a truck. Lights, physics and commands are another problem you will face afterwards.

Link to comment
Share on other sites

What about physics?  I can handle the lights and commands.

Nothing too serious. Just set it up so that the yellow box fits the model perfectly. This is to make sure the vehicle's collision is correct and it can go around obstacles properly. Be sure to check "always use physics geom". This little tick box nearly killed my mod by making it unplayable because I forgot to actually set the game to use the custom collision boxes.

Link to comment
Share on other sites

OK.  And the part I am looking for in LAFireStationStart, is this it?

const char VO_ALS5[]     = "fs_als5";

Edit:  Also, I am looking to re-insert a changeclothes command to where SCBA FF can change to regular FF.  I gave the commands to each person, but they disappear when I execute the command in-game.  What am I doing wrong?

Link to comment
Share on other sites

OK.  And the part I am looking for in LAFireStationStart, is this it?

const char VO_ALS5[]     = "fs_als5";

Edit:  Also, I am looking to re-insert a changeclothes command to where SCBA FF can change to regular FF.  I gave the commands to each person, but they disappear when I execute the command in-game.  What am I doing wrong?

 

Not really. You would be looking for this:

ActorList l19 = Game::GetActors(VO_HAZMAT);for(int i=0; i < l19.GetNumActors(); i++){	Vector Hazmat = l19.GetActor(0)->GetPosition();	Vehicle m = Game::CreateVehicle(OBJ_HAZMATSQUAD, UNNAMED);	m.EnableBlueLights(false);	m.EnableHeadLights(false);	m.SetChildEnabled("exhaust", false);	m.SetPosition(Hazmat);	m.SetRotation(gate6);	m.UpdatePlacement();	m.SetMaxPassengers(4);	m.SetMaxTransports(2);	m.SetSpeed(8.0f);	m.PushActionWait(ACTION_NEWLIST, 1.0f);	m.PushActionExecuteCommand(ACTION_APPEND, CMD_COMMANDS, Caller, 0, false);	m.PushActionExecuteCommand(ACTION_APPEND, CMD_NORMAL, Caller, 0, false);}

Simply comment it out with this:

//

for every line or /* at the beginning of that section and */ at the end.

Or you could just delete it, but then you might have a change of mind and want to bring it back. Its up to you really.

Has your changeclothes script been modified?

Link to comment
Share on other sites

OK, thanks for the help on that.  And I have no idea if it's been modified, it's from Manchester Mod, not base LA mod.

 

Edit:  I looked through the script, but as I have very minor scripting experience, I'm not sure what's wrong with it.  Script in its entirety is found below.

 

 

//******************************************************************************************// #Version 2.5#////  Includes: All Changing clothes commands//// - PcmdChangeToFF// - PcmdChangeHazmat// - PcmdChangeToMask// - PcmdGetTrafficVest// - PcmdRemoveTrafficVest// - PcmdGetTacVest// - PcmdRemoveTacVest// - DummyChange//// Original script for Emergency 3 by Rev Bem// Made compatible for Emergency 4 by Hoppah// // Usage of this script in other mods is NOT allowed without permission of Hoppah////******************************************************************************************const char CMD_DOORS[] = "OpenCloseDoor2";const char OBJ_FIREFIGHTER[] = "mod:Prototypes/Persons/02 LA Fire Department/firefighter.e4p";const char OBJ_FFSCBA[] = "mod:Prototypes/Persons/02 LA Fire Department/FFSCBA.e4p";const char OBJ_HAZMAT[] = "mod:Prototypes/Persons/02 LA Fire Department/hazmat.e4p";const char OBJ_OFFICER_M[] = "mod:Prototypes/Persons/03 LA Police/officer.e4p";const char OBJ_OFFICER_CHP[] = "mod:Prototypes/Persons/03 LA Police/trooper.e4p";const char OBJ_TRAFFIC_OFFICER_M[] = "mod:Prototypes/Persons/03 LA Police/officer_vest.e4p";const char OBJ_TRAFFIC_OFFICER_CHP[] = "mod:Prototypes/Persons/03 LA Police/trooper_vest.e4p";const char OBJ_FBI[] = "mod:Prototypes/Persons/07 Government/fbi_agent.e4p";const char OBJ_FBI_TAC[] = "mod:Prototypes/Persons/07 Government/fbi_agent_tac.e4p";const char DUMMY_CHANGE[] = "DummyChange";const char SND_SCBA[] = "mod:Audio/FX/Misc/SCBA.wav";object PcmdChangeToFF : CommandScript{PcmdChangeToFF(){SetCursor("clothes");SetIcon("clothes");//SetGroupID(CGROUP_GETEQUIPMENT);SetPossibleCallers(ACTOR_PERSON);SetValidTargets(ACTOR_VEHICLE | ACTOR_OBJECT);SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING | RESTRICT_HASFIREAXE);SetNeedsCarWithFlagSet(OF_HAS_FIREAXE);}/*bool CheckPossible(GameObject *Caller){if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if (p.IsCarryingPerson() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling())return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Game::ExistsNormalObjectWithFlagSet(OF_HAS_FIREAXE))return false;return true;}*/bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || !Target->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsCarryingPerson() || p.IsInDLKBasket() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;Vehicle v(Target);if (v.IsValid() && !v.IsDestroyed() && v.GetVehicleType() == VT_FIREFIGHTERS_RW || v.GetVehicleType() == VT_FIREFIGHTERS_GTF || v.GetVehicleType() == VT_FIREFIGHTERS_DLK || v.GetVehicleType() == VT_FIREFIGHTERS_TLF || v.GetVehicleType() == VT_FIREFIGHTERS_LPF || v.GetVehicleType() == VT_AMBULANCE_ITW || v.GetVehicleType() == VT_AMBULANCE_RTW){return true;}return false;}void PushActions(GameObject *Caller, Actor *Target, int childID){Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_PASSENGERDOOR);Caller->PushActionTurnTo(ACTION_APPEND, Target);Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHANGE, Target, 1, false);}};object PcmdChangeToMask : CommandScript{PcmdChangeToMask(){SetCursor("clothes");SetIcon("clothes");//SetGroupID(CGROUP_GETEQUIPMENT);SetPossibleCallers(ACTOR_PERSON);SetValidTargets(ACTOR_VEHICLE | ACTOR_OBJECT);SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING | RESTRICT_HASFIREAXE);SetNeedsCarWithFlagSet(OF_HAS_FIREAXE);}/*bool CheckPossible(GameObject *Caller){if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if (p.IsCarryingPerson() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling())return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Game::ExistsNormalObjectWithFlagSet(OF_HAS_FIREAXE))return false;return true;}*/bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || !Target->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsCarryingPerson() || p.IsInDLKBasket() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;Vehicle v(Target);if (v.IsValid() && !v.IsDestroyed() && v.GetVehicleType() == VT_FIREFIGHTERS_RW || v.GetVehicleType() == VT_FIREFIGHTERS_GTF || v.GetVehicleType() == VT_FIREFIGHTERS_DLK || v.GetVehicleType() == VT_FIREFIGHTERS_TLF || v.GetVehicleType() == VT_FIREFIGHTERS_LPF || v.GetVehicleType() == VT_AMBULANCE_ITW || v.GetVehicleType() == VT_AMBULANCE_RTW){return true;}return false;}void PushActions(GameObject *Caller, Actor *Target, int childID){Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_PASSENGERDOOR);Caller->PushActionTurnTo(ACTION_APPEND, Target);Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHANGE, Target, 2, false);}};object PcmdChangeToHAZMAT : CommandScript{PcmdChangeToHAZMAT(){SetCursor("clothes");SetIcon("clothes");//SetGroupID(CGROUP_GETEQUIPMENT);SetPossibleCallers(ACTOR_PERSON);SetValidTargets(ACTOR_VEHICLE | ACTOR_OBJECT);SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING | RESTRICT_HASFIREAXE);SetNeedsCarWithFlagSet(OF_HAS_FIREAXE);}/*bool CheckPossible(GameObject *Caller){if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if (p.IsCarryingPerson() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling())return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Game::ExistsNormalObjectWithFlagSet(OF_HAS_FIREAXE))return false;return true;}*/bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || !Target->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsCarryingPerson() || p.IsInDLKBasket() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;Vehicle v(Target);if (v.IsValid() && !v.IsDestroyed() && v.GetVehicleType() == VT_FIREFIGHTERS_RW || v.GetVehicleType() == VT_FIREFIGHTERS_GTF || v.GetVehicleType() == VT_FIREFIGHTERS_DLK || v.GetVehicleType() == VT_FIREFIGHTERS_TLF || v.GetVehicleType() == VT_FIREFIGHTERS_LPF || v.GetVehicleType() == VT_AMBULANCE_ITW || v.GetVehicleType() == VT_AMBULANCE_RTW){return true;}return false;}void PushActions(GameObject *Caller, Actor *Target, int childID){Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_PASSENGERDOOR);Caller->PushActionTurnTo(ACTION_APPEND, Target);Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHANGE, Target, 2, false);}};object PcmdGetTrafficVest: CommandScript{PcmdGetTrafficVest(){SetCursor("clothes");SetIcon("clothes");SetGroupID(CGROUP_GETEQUIPMENT);SetPossibleCallers(ACTOR_PERSON);SetValidTargets(ACTOR_VEHICLE | ACTOR_OBJECT);SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING | RESTRICT_HASROADBLOCK);SetNeedsCarWithFlagSet(OF_HAS_ROADBLOCK);}/*bool CheckPossible(GameObject *Caller){if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if (p.IsCarryingPerson() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling())return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Game::ExistsNormalObjectWithFlagSet(OF_HAS_ROADBLOCK))return false;return true;}*/bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || !Target->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsCarryingPerson() || p.IsInDLKBasket() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;Vehicle v(Target);if (v.IsValid() && !v.IsDestroyed() && v.GetVehicleType() == VT_POLICE_STW || v.GetVehicleType() == VT_POLICE_MTW || v.GetVehicleType() == VT_POLICE_SW || v.GetVehicleType() == VT_POLICE_GTW || v.GetVehicleType() == VT_POLICE_WAW){return true;}return false;}void PushActions(GameObject *Caller, Actor *Target, int childID){Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_PASSENGERDOOR);Caller->PushActionTurnTo(ACTION_APPEND, Target);Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHANGE, Target, 3, false);}};object PcmdRemoveTrafficVest: CommandScript{PcmdRemoveTrafficVest(){SetCursor("clothes");SetIcon("clothes");SetGroupID(CGROUP_GETEQUIPMENT);SetPossibleCallers(ACTOR_PERSON);SetValidTargets(ACTOR_VEHICLE | ACTOR_OBJECT);SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING | RESTRICT_HASROADBLOCK);SetNeedsCarWithFlagSet(OF_HAS_ROADBLOCK);}/*bool CheckPossible(GameObject *Caller){if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if (p.IsCarryingPerson() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling())return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Game::ExistsNormalObjectWithFlagSet(OF_HAS_ROADBLOCK))return false;return true;}*/bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || !Target->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsCarryingPerson() || p.IsInDLKBasket() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;Vehicle v(Target);if (v.IsValid() && !v.IsDestroyed() && v.GetVehicleType() == VT_POLICE_STW || v.GetVehicleType() == VT_POLICE_MTW || v.GetVehicleType() == VT_POLICE_SW || v.GetVehicleType() == VT_POLICE_GTW || v.GetVehicleType() == VT_POLICE_WAW){return true;}return false;}void PushActions(GameObject *Caller, Actor *Target, int childID){Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_PASSENGERDOOR);Caller->PushActionTurnTo(ACTION_APPEND, Target);Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHANGE, Target, 4, false);}};object PcmdGetTacVest : CommandScript{PcmdGetTacVest(){SetCursor("clothes");SetIcon("clothes");SetGroupID(CGROUP_GETEQUIPMENT);SetPossibleCallers(ACTOR_PERSON);SetValidTargets(ACTOR_VEHICLE | ACTOR_OBJECT);SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING | RESTRICT_HASROADBLOCK);SetNeedsCarWithFlagSet(OF_HAS_ROADBLOCK);}/*bool CheckPossible(GameObject *Caller){if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if (p.IsCarryingPerson() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling())return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Game::ExistsNormalObjectWithFlagSet(OF_HAS_ROADBLOCK))return false;return true;}*/bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || !Target->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsCarryingPerson() || p.IsInDLKBasket() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;Vehicle v(Target);if (v.IsValid() && !v.IsDestroyed() && v.GetVehicleType() == VT_POLICE_STW || v.GetVehicleType() == VT_POLICE_MTW || v.GetVehicleType() == VT_POLICE_SW || v.GetVehicleType() == VT_POLICE_GTW || v.GetVehicleType() == VT_POLICE_WAW){return true;}return false;}void PushActions(GameObject *Caller, Actor *Target, int childID){Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_PASSENGERDOOR);Caller->PushActionTurnTo(ACTION_APPEND, Target);Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHANGE, Target, 5, false);}};object PcmdRemoveTacVest : CommandScript{PcmdRemoveTacVest(){SetCursor("clothes");SetIcon("clothes");SetGroupID(CGROUP_GETEQUIPMENT);SetPossibleCallers(ACTOR_PERSON);SetValidTargets(ACTOR_VEHICLE | ACTOR_OBJECT);SetRestrictions(RESTRICT_NOTDESTROYED | RESTRICT_NOTBURNING | RESTRICT_HASROADBLOCK);SetNeedsCarWithFlagSet(OF_HAS_ROADBLOCK);}/*bool CheckPossible(GameObject *Caller){if(!Caller->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if (p.IsCarryingPerson() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling())return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;if (!Game::ExistsNormalObjectWithFlagSet(OF_HAS_ROADBLOCK))return false;return true;}*/bool CheckTarget(GameObject *Caller, Actor *Target, int childID){if(!Caller->IsValid() || !Target->IsValid() || Caller->GetType() != ACTOR_PERSON)return false;Person p(Caller);if(p.IsValid() && (p.IsCarryingPerson() || p.IsInDLKBasket() || p.IsLinkedWithPerson() || p.GetFirehoseID()!=0 || p.IsPulling() || p.GetEnteredCarID() != -1))return false;if (p.IsCurrentAction("EActionTreatPerson"))return false;Vehicle v(Target);if (v.IsValid() && !v.IsDestroyed() && v.GetVehicleType() == VT_POLICE_STW || v.GetVehicleType() == VT_POLICE_MTW || v.GetVehicleType() == VT_POLICE_SW || v.GetVehicleType() == VT_POLICE_GTW || v.GetVehicleType() == VT_POLICE_WAW){return true;}return false;}void PushActions(GameObject *Caller, Actor *Target, int childID){Caller->PushActionMove(ACTION_NEWLIST, Target, TARGET_PASSENGERDOOR);Caller->PushActionTurnTo(ACTION_APPEND, Target);Caller->PushActionExecuteCommand(ACTION_APPEND, DUMMY_CHANGE, Target, 6, false);}};object DummyChange : CommandScript{DummyChange(){}bool CheckTarget(GameObject *Caller, Actor *Target, int childID){}void PushActions(GameObject *Caller, Actor *Target, int childID){Person p(Caller);Vector Pos = p.GetPosition();float r[9];p.GetRotation(r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8]);int PlayerID = p.GetPlayerMP();float health = p.GetHealth();p.PushActionSwitchAnim(ACTION_NEWLIST, "useobjmid");p.PushActionWait(ACTION_APPEND, 5.0f);p.SetCommandable(false);Person n;if(childID == 1){if(StrCompare(p.GetPrototypeFileName(), OBJ_FFSCBA) == 0)             n = Game::CreatePerson(OBJ_FIREFIGHTER, Target->GetName());if(StrCompare(p.GetPrototypeFileName(), OBJ_HAZMAT) == 0)             n = Game::CreatePerson(OBJ_FIREFIGHTER, Target->GetName());}if(childID == 2){Audio::PlaySample3D(SND_SCBA, Pos, false);if(StrCompare(p.GetPrototypeFileName(), OBJ_FIREFIGHTER) == 0)             n = Game::CreatePerson(OBJ_FFSCBA, Target->GetName());if(StrCompare(p.GetPrototypeFileName(), OBJ_FIREFIGHTER) == 0)             n = Game::CreatePerson(OBJ_HAZMAT, Target->GetName());int Money = Mission::GetMoneyLeft();int NewMoney = Money - 50;Mission::SetMoney(NewMoney);}if(childID == 3){if(StrCompare(p.GetPrototypeFileName(), OBJ_OFFICER_M) == 0)             n = Game::CreatePerson(OBJ_TRAFFIC_OFFICER_M, Target->GetName());if(StrCompare(p.GetPrototypeFileName(), OBJ_OFFICER_CHP) == 0)             n = Game::CreatePerson(OBJ_TRAFFIC_OFFICER_CHP, Target->GetName());}if(childID == 4){if(StrCompare(p.GetPrototypeFileName(), OBJ_TRAFFIC_OFFICER_M) == 0)             n = Game::CreatePerson(OBJ_OFFICER_M, Target->GetName());if(StrCompare(p.GetPrototypeFileName(), OBJ_TRAFFIC_OFFICER_CHP) == 0)             n = Game::CreatePerson(OBJ_OFFICER_CHP, Target->GetName());}if(childID == 5){             n = Game::CreatePerson(OBJ_FBI_TAC, Target->GetName());int Money = Mission::GetMoneyLeft();int NewMoney = Money - 200;Mission::SetMoney(NewMoney);}if(childID == 6){             n = Game::CreatePerson(OBJ_FBI, Target->GetName());}if(n.HasCommand("Heal")){n.RemoveCommand("Heal");n.RemoveCommand("RemoveEquipment");n.AssignCommand("PcmdHeal");}p.PushActionDeleteOwner(ACTION_APPEND);n.SetPlayerMP(PlayerID);n.SetHealth(health);n.SetUpgradeLevel(3);n.SetPosition(Pos);n.SetRotation(r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8]);n.Hide();n.PushActionWait(ACTION_NEWLIST, 5.f);n.PushActionShowHide(ACTION_APPEND, false); Vehicle v(Target);v.PushActionExecuteCommand(ACTION_APPEND, CMD_DOORS, Caller, 1, false);                }};
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.
Note: Your post will require moderator approval before it will be visible.

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...