|
Voilà j'ai un objet qui me permet de téléporter une cible dans une des 7 cellules.
J'ai 2 scripts et un dialogue pour des menottes.
Le problème c'est que la cible qui doit cliquer sur le plaçable, les menottes qui ouvrent le dialogue qui lui permet de s'emprisonner lui même.
Et moi, je voudrais l'emprisonner quand je le téléporter comment faire ?
Dialogue pour les menottes :
[Propriétaire]Choisir une action.
-> Etre menotté. (Attention ! Vous pouvez uniquement être libéré avec la bonne clé !) [FIN DE DIALOGUE]
~ ->Ouvrir les menottes. [FIN DE DIALOGUE]
->Ne rien faire. [FIN DE DIALOGUE]
scripts :
shackle_activ
void main()
{
object oPC=GetLastUsedBy();
AssignCommand(oPC, ActionStartConversation(oPC, "shackle", TRUE));
}
**********
shackle_activ
#include "nw_i0_tool"
void main()
{
object oPC = GetPCSpeaker();
object oWP = GetNearestObjectByTag("WP_Shackle", oPC);
object oShackle=GetNearestObjectByTag("Shackle", oPC);
location lShackle = GetLocation(oShackle);
int counter;
int x=GetLocalInt(oShackle, "InUse");
if (x<1)
{
SetLocalObject(oShackle, "Prisoner", oPC);
SetLocalInt(oShackle, "InUse", 1);
SetLocalInt(oShackle, "knockdown", 1);
//SetLocalInt(oPC, "shackled6", 1);
ActionPauseConversation();
AssignCommand(oPC, JumpToObject(oWP));
float fDirectionbase = GetFacing(oWP);
DelayCommand(1.95, AssignCommand(oPC, SetFacing(0.0f)));
DelayCommand(1.5,PlaySound("as_na_branchsnp3"));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_CHEST, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_ARMS, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_BELT, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_HEAD, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_NECK, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC))));
DelayCommand(0.5,AssignCommand(oPC,ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC))));
DelayCommand(2.0,ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectKnockdown(), oPC));
//DelayCommand(2.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(), oPC, 20.0f));
DelayCommand(2.05,SetFacing(fDirectionbase));
CreateObject(OBJECT_TYPE_PLACEABLE, "plc_solblue", lShackle,FALSE);
//DelayCommand(2.5,SetCommandable(FALSE, oPC));
// x=GetLocalInt(oShackle, "InUse");
//while (x>0)
// {
// x=GetLocalInt(oShackle, "InUse");
// AssignCommand(oPC, ClearAllActions());
// AssignCommand(oPC, JumpToObject(oWP));
// DelayCommand(3.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(), oPC, 6.0f));
// AssignCommand(oPC, ActionWait(5.0f));
// }
DelayCommand(3.5,ActionResumeConversation());
}
}
*******
shacklekey
#include "nw_i0_tool"
int StartingConditional()
{
// Make sure the PC speaker has these items in their inventory
if(!HasItem(GetPCSpeaker(), "ShackleKey"))
return FALSE;
return TRUE;
}
***********
script pour téléporter dans une des cellules
teleport_jcell1
void main()
{
object oDMWP = GetObjectByTag("wp_jailcell1");
object oTeleportTarget = GetLocalObject(OBJECT_SELF, "oTeleportTarget");
AssignCommand(oTeleportTarget, PlaySound("as_mg_telepout1"));
AssignCommand(oTeleportTarget, JumpToObject(oDMWP));
DestroyObject(OBJECT_SELF);
}
*************
js_i0_dmtchk
void DMItemTeleportActivated(object oDM, object oTarget);
void DMItemTeleportActivated(object oDM, object oTarget)
{
if (oTarget == OBJECT_INVALID)
{
SendMessageToPC(oDM, "Targeted object is invalid.");
return;
}
object oTeleTalk = CreateObject(OBJECT_TYPE_PLACEABLE, "tp_tb_dmteletlk0",GetLocation(oDM), FALSE);
SetLocalObject(oTeleTalk, "oTeleportTarget", oTarget);
SetCustomToken(2000, GetName(GetLocalObject(oTeleTalk, "oTeleportTarget")));
AssignCommand(oDM, ActionStartConversation(oTeleTalk, "", TRUE));
return;
}
****************
Dialogue pour la pierre d'emprisonnement :
[Propriétaire]Vous avez ciblé <CUSTOM2000>. Voulez vous téléportez cette cible à une cellule de la prison ? ou voulez vous effectuer une exécution sur cette cible ?
->Téléporter
->[Propriétaire]Dans quelle cellule l'enverrez vous ?
->Cellule 1 [FIN DE DIALOGUE]
->Cellule 2 [FIN DE DIALOGUE]
............
Je veux utiliser le dialogue des menottes quand j'ai choisi la cellule.
Pour les dialogues, comment fait on pour ne pas mettre propriétaire ou comment mettre fin de dialogue ? Que dois je faire ?
Comment modifier les scripts des menottes pour que la cible n'est pas à cliquer sur les menottes, mais quand je la cible pour la téléporter, je peux en même temps choisir de la menoter.
Quelqu'un peut il m'aider ?
Me donner quelques astuces ?
J'attends de vos nouvelles.
Merci d'avance.
__________________
Un petit pourboire, si 'ou plaît.
|