jrc24 Posted July 6, 2004 Share Posted July 6, 2004 hi how can I give upgrade item to a weapon I try CreateItemOnObject(oWeapon, "upgrade_item") but I think it is not the right way because it doesn t work correctly, the weapon get the upgrade item but if I go to see in the weapon wich upgrade item is installed, the upgrade item slot of upgrade item installed by my script is grayed (can t see the upgrade item) and I can t uninstall the upgrade item and I would try ActionEquipItem but there is no slot for upgrade item of weapon, I think if somebody know thanks Link to comment Share on other sites More sharing options...
Darth333 Posted July 6, 2004 Share Posted July 6, 2004 I think you could try using functions like: EffectBlasterDeflectionIncrease(int nChange); effect EffectDamageDecrease(int nPenalty, int nDamageType=DAMAGE_TYPE_UNIVERSAL); Combined with ApplyEffectToObject (search nwscript.nss for more functions) But I never tried it and it may not work. Other most possible solution would be to create a new .uti file with an object that has the stats you wish and use a script like the one I give you the other day to replace the old item: void main() { object oNPC=GetObjectByTag("npc_name"); object oOldobject = GetItemInSlot(INVENTORY_SLOT_RIGHTWEAPON,OBJECT_SE LF); object oNewobject = CreateItemOnObject("my_item_name",OBJECT_SELF); if (GetIsObjectValid (oOldobject)) { DestroyObject(oOldobject); } AssignCommand(oNPC,ActionEquipItem(oNewobject,INVE NTORY_SLOT_RIGHTWEAPON,TRUE)); } Hope this helps Link to comment Share on other sites More sharing options...
jrc24 Posted July 7, 2004 Author Share Posted July 7, 2004 I done that, this script find wich upgrade items is installed in the weapon in every hand, and replace these upgrade items when recreate weapon after destruction. but with CreateItemOnObject : for exemple if vibrations cell was installed in my weapon (or other upgrade item), vibrations cell is replaced in the new weapon but when I open workbench screen, I see vibations cell slot, empty but grayed and I can t use this slot. I think, it works but it is not the right way to do that. void main() { int nSlot=(INVENTORY_SLOT_RIGHTWEAPON); int nSlotb=(INVENTORY_SLOT_LEFTWEAPON); object oNPC=GetObjectByTag("Zaalbar"); object oOldright=GetItemInSlot(nSlot, OBJECT_SELF); object oOldleft=GetItemInSlot(nSlotb, OBJECT_SELF); object oNewobject=CreateItemOnObject("jr_w_vbroswrd01", OBJECT_SELF); string sOldleft=GetTag(oOldleft); string sOldright=GetTag(oOldright); object oNewleft=CreateItemOnObject(sOldleft, OBJECT_SELF); object oNewright=CreateItemOnObject(sOldright, OBJECT_SELF); object oOldupgradea=GetItemPossessedBy(oOldleft, "g_i_upgrade007"); object oOldupgradeb=GetItemPossessedBy(oOldleft, "g_i_upgrade008"); object oOldupgradec=GetItemPossessedBy(oOldleft, "g_i_upgrade009"); object oOldupgradeaa=GetItemPossessedBy(oOldright, "g_i_upgrade007"); object oOldupgradebb=GetItemPossessedBy(oOldright, "g_i_upgrade008"); object oOldupgradecc=GetItemPossessedBy(oOldright, "g_i_upgrade009"); if (GetTag(oOldleft)=="g_w_vbroswrd05") { AssignCommand(oNPC, ActionUnequipItem(oOldleft, TRUE)); AssignCommand(oNPC, ActionUnequipItem(oOldright, TRUE)); AssignCommand(oNPC, ActionEquipItem(oNewright, nSlot, TRUE)); AssignCommand(oNPC, ActionEquipItem(oNewobject, nSlotb, TRUE)); if (GetIsObjectValid(oOldupgradea)==TRUE) { CreateItemOnObject("g_i_upgrade007", oNewobject); } if (GetIsObjectValid(oOldupgradeb)==TRUE) { CreateItemOnObject("g_i_upgrade008", oNewobject); } if (GetIsObjectValid(oOldupgradec)==TRUE) { CreateItemOnObject("g_i_upgrade009", oNewobject); } if (GetIsObjectValid(oOldupgradeaa)==TRUE) { CreateItemOnObject("g_i_upgrade007", oNewright); } if (GetIsObjectValid(oOldupgradebb)==TRUE) { CreateItemOnObject("g_i_upgrade008", oNewright); } if (GetIsObjectValid(oOldupgradecc)==TRUE) { CreateItemOnObject("g_i_upgrade009", oNewright); } } if (GetTag(oOldleft)!="g_w_vbroswrd05") { AssignCommand(oNPC, ActionUnequipItem(oOldleft, TRUE)); AssignCommand(oNPC, ActionUnequipItem(oOldright, TRUE)); AssignCommand(oNPC, ActionEquipItem(oNewobject, nSlot, TRUE)); AssignCommand(oNPC, ActionEquipItem(oNewleft, nSlotb, TRUE)); if (GetIsObjectValid(oOldupgradeaa)==TRUE) { CreateItemOnObject("g_i_upgrade007", oNewobject); } if (GetIsObjectValid(oOldupgradebb)==TRUE) { CreateItemOnObject("g_i_upgrade008", oNewobject); } if (GetIsObjectValid(oOldupgradecc)==TRUE) { CreateItemOnObject("g_i_upgrade009", oNewobject); } if (GetIsObjectValid(oOldupgradea)==TRUE) { CreateItemOnObject("g_i_upgrade007", oNewleft); } if (GetIsObjectValid(oOldupgradeb)==TRUE) { CreateItemOnObject("g_i_upgrade008", oNewleft); } if (GetIsObjectValid(oOldupgradec)==TRUE) { CreateItemOnObject("g_i_upgrade009", oNewleft); } } SetLocalBoolean(GetObjectByTag("Zaalbar"),1,TRUE); } I search in nwscript.nss file and I find nothing but perhaps I done a bad search, I will search again. I search a script corresponding to workbench use, because the workbench do the thing that I want but I don t find that. If you get some informations later, tell me thanks Link to comment Share on other sites More sharing options...
tk102 Posted July 7, 2004 Share Posted July 7, 2004 Hey Darth333, look at this guy. I think jrc24 has emerged as the new script-slinger in town. Wish I could be more help, jrc24. If I find something I'll let you know. Link to comment Share on other sites More sharing options...
Darth333 Posted July 7, 2004 Share Posted July 7, 2004 Originally posted by tk102 Hey Darth333, look at this guy. I think jrc24 has emerged as the new script-slinger in town. :D et en plus il parle français Hey JRC24 I think I found something interesting here but i haven't tried it yet (and have no means of testing it where i am right now). Perhaps you could try using these inventory slots for the upgrades ( i think they correspond to weapon upgrades but I am not sure): INVENTORY_SLOT_CWEAPON_L INVENTORY_SLOT_CWEAPON_R INVENTORY_SLOT_CWEAPON_B Link to comment Share on other sites More sharing options...
jrc24 Posted July 8, 2004 Author Share Posted July 8, 2004 that does not seem to be the good solution thank you nevertheless I continue to seek through if you get informations later....thanks Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.