Initialement posté par Tonton
PASSAGE SECRET sans besoin d'objets clickable...et qui sera connu par le groupe entier sans besoin que chaque joueur le trouve (il fera apparaitre l'icone "passage" sur le triggers )
faire un trigger generic et dans sa partie script "on enter" mettre :
[PHP]
int secret_crypt_party_flag=0;
void main()
{
int difficulty = 20;
object oPlayer = GetNearestCreature (CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1);
int search_score = GetSkillRank(SKILL_SEARCH, oPlayer);
if ( (d20(1)+search_score > difficulty) || GetLocalInt (GetModule (), "secret_crypt_party_flag") )
{
SetMapPinEnabled (GetObjectByTag ("NW_SD_CRYPT", 0), 1);
SetLocalInt (GetModule(), "secret_crypt_party_flag", 1);
ActionStartConversation (oPlayer, "crypt_sd", TRUE);
}
}
1) la 'difficulty' est le DC pour trouver la porte secret).
2) le oPlayer est la creature la plus proche (celle qui a marché sur le trigger)
3) search_score est le jet "de fouille/chercher"
4) le 'secret_crypt_party_flag' est utiliser pour donner la connaissance du passage aux autres membres du groupe.
5) le SetMapPin valide un Waypoint qui est coller dans l'area ou se trouve le trigger de la porte secrete.
le ActionStartConversation appelle un dialogue (qu'il faut nommer "crypt_sd") -> message d'intro "prendre la porte secrete?" (seule le joueur qui trouve le passage verra le dialogue)
il faut faire 2 choix dans le dialogue:
1. le prendre
2. ne pas le prendre
si le joueur choisit de "le prendre"
le script suivant est appelé : (dans la partie script "action taken" du choix "le prendre")
void main()
{
object oPlayer = GetPCSpeaker();
object oTargetArea = GetObjectByTag ("NW_CRYPT_START", 0);
AssignCommand (oPlayer, ActionJumpToLocation (GetLocation (oTargetArea)));
}
le resultat est une teleportation du joueur qui dialogue au waypoint dans dont le tag est NW_CRYPT_START
scipt by zug sur forum bioware (téste & marche)