Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Trappe et HCR comment s'arracher les cheveux

Par ruru666 le 20/1/2003 à 17:11:41 (#3061450)

Salutations,

Je croyais avoir compris mais finalement c pas ca...

Dans le manuel du HCR ils est dis ke pour trouver les trappes (pieges), il fo utiliser le "search tool", puis comme on passe sur un systeme de recherche aver du D100 il fo donc modifier les pieges en ajoutant a la difficulté 100 (exemple si tu ve desamé un piege ki etait basé sur un 18 tu met 118).

Il rajoute ensuite ke c inutil d'utiliser le mode recherche du jeu de base (oui la petite loupe).

Mes constatations : le search tool ne donne rien du tout, et le mode recherche au bout de kelke sec planté devant la trappe (car je terste ca en mode mj et je vois donc les trappes) fini pa me dire "you find a trappe", et la on peut utiliser l'outil du voleur du HCR pour desarmé.

Ou est le blem et kelkun ki utiliserais cela pourrait il m expliké ce ke g loupé ????

G passé une apres midi dessus, je suis fatiguer de pa trouver SVP aidez moi ou ma campagne et a l'eau...

Re: Trappe et HCR comment s'arracher les cheveux

Par Jaha Effect le 20/1/2003 à 17:43:10 (#3061709)

Provient du message de ruru666
SVP aidez moi ou ma campagne et a l'eau...


J'adore les campagnes basées sur un piège ... heu tu en fait pas un tout petit peu trop là :D
Par contre je peux pas trop t'aider là, le HCR me donne des boutons même si je reconnais le talent de ces créateurs :)

Jaha Effect :D

Par ruru666 le 20/1/2003 à 20:59:12 (#3063357)

En effet pris au mot de la lettre ca a lair nul pourtant la personne ki joue son voleur se sentirait comme ki dirait 50 % moins utile ? donc les otres prendrait les pieges dans la figure, donc dessuite les joueurs sont moins entousiaste, donc ma campagne deviens moins bien, et finie par tomber a l'eau.

Donc je reformule ma question et svp si vous savez repondez moi sinon pa la peine de faire des commentaires ki me ferons pa avancer (g rien contre toi jaha mais je c ou ca part apres)

Merci de votre aide.

Par Jaha Effect le 20/1/2003 à 21:15:59 (#3063508)

Bha en bon détracteur, je te dirais de désactiver cette fonction.

Mais on pourrait surement t'aider tu nous mettais le paragraphe qui traite de ça et le code si tu le trouve.

Jaha Effect :D

Par ruru666 le 21/1/2003 à 14:49:52 (#3068233)

Je v essayer de trouver kek chose pour vous mettre sur la piste, mais bon c pas gagné...

Merci ken meme de vous interressé a moi ki suis vraiment désespéré...

Par ruru666 le 21/1/2003 à 15:10:20 (#3068422)

voila le script des pieges, ke dois je modifier pour ke les joueurs (voleurs) puissent trouver la trappe sans rester 5mn devant, comment ca marche kelles sont les variables ki peuvent etre utiles ???


//::///////////////////////////////////////////////
//:: HCR Detectable Object Heartbeat Script
//:: hc_detect_hrtbt
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*

Created By: yibble
Created On: September 25, 2002
Hacked up version of hc_act_search.
Using GetDetectMode function to avoid using the
SearchTool.

*/
//:://////////////////////////////////////////////
//:: Created By: Nathan Reynolds
//:: Created On: 25th September 2002
//:://////////////////////////////////////////////
#include "hc_text_traps"

void main()
{
/* Get the nearest searcher */
object oUser;
location lTrap = GetLocation(OBJECT_SELF);
int nDetectMode = 0;
float fSearchDist = 100.0;
oUser = GetFirstObjectInShape(SHAPE_SPHERE, fSearchDist, lTrap, TRUE, OBJECT_TYPE_CREATURE);

while(GetIsObjectValid(oUser))
{
if((nDetectMode = GetDetectMode(oUser)))
{
int nRogueLevel = GetLevelByClass(CLASS_TYPE_ROGUE, oUser);
location locPlayer = GetLocation(oUser);
float fDis = FeetToMeters(0.0);
int nFT = FALSE;

// elves have inate search ability search will always be active
if(nDetectMode == DETECT_MODE_ACTIVE)
{
fDis = FeetToMeters(10.0);
nFT = TRUE;
}

// Check to see if the object has a trap.
if ((GetIsTrapped(OBJECT_SELF)) && (GetDistanceToObject(oUser) <= fDis) && (nFT = TRUE))
{

// Yes, so begin detection routine.
int oTrapDC = GetTrapDetectDC(OBJECT_SELF) - 100;
int bCanSpotTrap = FALSE; // Assume that the person cannot spot a trap.

// Determine spotting capability
if ((oTrapDC 20) && (nRogueLevel >= 1 )))
bCanSpotTrap = TRUE;

// Only check to see if detected if not previously detected
// and the PC has the ability to do detect it.
if (!GetTrapDetectedBy(OBJECT_SELF, oUser) && bCanSpotTrap)
{
int nSearch = GetSkillRank(SKILL_SEARCH, oUser);
int nDCCheck = d20() + nSearch;
if (nDCCheck >= oTrapDC) // Trap found
{
SetTrapDetectedBy(OBJECT_SELF, oUser);
SendMessageToPC(oUser, TRAPFOUND);
//SendMessageToPC(oUser, "DEBUG: DETECT_MODE was " + IntToString(nDetectMode) + ". fDis was " + FloatToString(fDis) + ". nFT was " + IntToString(nFT) + ". oTrapDC was " + IntToString(oTrapDC) + ". nDCCheck was " + IntToString(nDCCheck) + ".");
}
}
}
}
oUser = GetNextObjectInShape(SHAPE_SPHERE, fSearchDist, lTrap, TRUE, OBJECT_TYPE_CREATURE);
}
}

Par Jaha Effect le 21/1/2003 à 15:34:20 (#3068647)

Alors si j'ai bien compris le principe, Tu augmente la valeur nominale de détection de ton piège de 100 pour qu'il soit invisible a tout le monde exepté aux voleurs qui utilisent le search tool.
Dans ce cas le search tool applique un -100 a la valeur de détection du piège.

Tu as essayé, out d'abord de décommenter (enlever les //) cette ligne pour vérifier si tout marche bien?

//SendMessageToPC(oUser, "DEBUG: DETECT_MODE was " + IntToString(nDetectMode) + ". fDis was " + FloatToString(fDis) + ". nFT was " + IntToString(nFT) + ". oTrapDC was " + IntToString(oTrapDC) + ". nDCCheck was " + IntToString(nDCCheck) + ".");


Jaha Effect :D

Par ruru666 le 21/1/2003 à 15:39:55 (#3068695)

Je te rapels ke j y comprends un baigné a tout ca je suis comme ki dirait NUL en script (oui désolé je c je suis chiant) tu ve ke je face koi en faite ???

Par ailleur g vu ki avait ca aussi si ca pe te mettre sur la voie, il semble ke ca joue plus pour les detections :


#include "hc_text_activate"
void main()
{
object oUser=OBJECT_SELF;
object oOther=GetLocalObject(oUser,"OTHER");
object oItem=GetLocalObject(oUser,"ITEM");
DeleteLocalObject(oUser,"ITEM");
DeleteLocalObject(oUser,"OTHER");
int nRogueLevel = GetLevelByClass(CLASS_TYPE_ROGUE, oUser);
location locPlayer= GetLocation(oUser);
int nFT=GetLocalInt(oUser,"FINDTRAP");
float fDis=10.0;
if(nFT) fDis=100.0;
object oSearchedItem = GetFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(fDis),
locPlayer, TRUE, OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_TRIGGER);
while (oSearchedItem != OBJECT_INVALID)
{
// Check to see if the object has a trap.
if (GetIsTrapped(oSearchedItem))
{
// Yes, so begin detection routine.
int oTrapDC = GetTrapDetectDC(oSearchedItem) - 100;
int bCanSpotTrap = FALSE; // Assume that the person cannot spot a trap.
// Determine spotting capability
if ((oTrapDC 20) && (nRogueLevel >= 1 || nFT)))
bCanSpotTrap = TRUE;
// Only check to see if detected if not previously detected
// and the PC has the ability to do detect it.
if (!GetTrapDetectedBy(oSearchedItem, oUser) && bCanSpotTrap)
{
int nSearch = GetSkillRank(SKILL_SEARCH, oUser);
int nDCCheck = d20() + nSearch;
if (nDCCheck >= oTrapDC) // Trap found
SetTrapDetectedBy(oSearchedItem, oUser);
}
}
else
{
// Hidden door detection
if (GetName(oSearchedItem) == "Secret Door Placeholder" && GetLocalInt(oSearchedItem, "bFound") != TRUE)
{
string strTag = GetTag(oSearchedItem);
location locDoor = GetLocation(oSearchedItem);
int nDC = GetWillSavingThrow(oSearchedItem);
int nSearch = GetSkillRank(SKILL_SEARCH, oUser);
int nRoll = d20();
// Search is not a trained skill, so a search of 0 is valid
if ((nRoll + nSearch) >= nDC)
{
SendMessageToPC(oUser, FINDSECRET);
// yes we found it, now create a trap door for us to use. it.
object oidDoor = CreateObject(OBJECT_TYPE_PLACEABLE, "secret_door", locDoor);
SetLocalString( oidDoor, "strDestination" , "dst_" + strTag );
SetPlotFlag(oidDoor,1);
SetLocalInt(oSearchedItem, "bFound", TRUE);
SetLocalObject(oSearchedItem, "oDoor", oidDoor);
DelayCommand(60.0f, SetLocalInt(oSearchedItem, "bFound", FALSE));
DelayCommand(60.0f, SetLocalInt(oSearchedItem, "bReset", TRUE));
}
}
}
oSearchedItem = GetNextObjectInShape(SHAPE_SPHERE, FeetToMeters(fDis),
locPlayer, TRUE, OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE | OBJECT_TYPE_TRIGGER);
}
}

Par Jaha Effect le 21/1/2003 à 15:52:53 (#3068809)

La ligne dans laquelle je t'ai demandé de retirer les // est une ligne de débug, elle envoi un message en jeu pour vérifier que tout marche bien.
Enleve les // a cette ligne
Compile le scripte
lance le jeu et fait un test et tu me dis ce que cette ligne te marque en jeu.

Jaha Effect :D

JOL Archives 1.0.1
@ JOL / JeuxOnLine