Firstly, I'll mention that you can equip/unequip weapons through an event command, in case you had accidentally missed it and all you had wanted to do was unequip through an event and thought you needed a script.
The code for unequipping through a script call, however, is:
actor.change_equip (equip_type, nil, false)
where actor is a Game_Actor object (like $game_actors[y] or $game_party.members[0], etc.). equip_type is 0-4 depending on what type you are unequipping. Weapons are 0, Shields are 1, Helmets are 2, Body Armor is 3, Accessories are 4. nil and false are just values and you leave them. You can exclude false generally unless you have a custom script which, for some reason, reverses the presumption.
So to unequip a weapon off of the lead actor in the party, it would be:
$game_party.members[0].change_equip (0, nil)
If using two weapons style, then you could remove that weapon with:
$game_party.members[0].change_equip (1, nil)
You can use the same method to also equip new weapons and replace nil with an RPG::Weapon/Armor object ($data_weapons[1-999] or $data_armors[1-999]). However, it will probably be easier to use the following method unless you are already using the RPG::Weapon/Armor object.
$game_party.members[0].change_equip_by_id (equip_type, 1-999)
where 1-999 is any id within that range and it will return the weapon/armor with that ID. equip_type is the same as in the previous method.
As for cursed weapons, look in the
RMVX Script Index. I know there is something there.