Emprisonnement ?

Répondre
Partager Rechercher
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.
Utilise les balises [/PHP] et [PHP] pour tes codes, sinon on ne peut rien te dire. Même si tes scripts restent simple dans leur construction (pô de cascade de condition je veux dire) c'est beaucoup mieux de voir ton script avec le code couleur.

Pour ce qui est de la téléportation, je suis pô sûr que ce soit une bonne idée, enfin ça dépend du contexte.
En tout cas, j'essaierais d'utiliser un CutScene et un ForceFollow pour que le malfrat soit obligé de suivre le représentant de l'ordre jusqu'à la cellule.
Enfin ce n'est que mon avis

(j'essaierai aussi de bidouille un effectbeam pour faire apparaitre la chaine des menottes mais bon )
Peut on utiliser ceci ?
GetEnteringObject()

Est ce que si je téléporte une cible sur un objet placable, les menottes avec chaînes liées au sol, je peux utiliser GetEnteringObject() pour activer le script de fermeture des menottes sur la cible ?

Comment dois je m'y prendre ?
__________________
Un petit pourboire, si 'ou plaît.
Citation :
Provient du message de Coursier
Peut on utiliser ceci ?
GetEnteringObject()

Est ce que si je téléporte une cible sur un objet placable, les menottes avec chaînes liées au sol, je peux utiliser GetEnteringObject() pour activer le script de fermeture des menottes sur la cible ?

Comment dois je m'y prendre ?
Pas comme ça en tout cas
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés