JeuxOnLineForumsPlusConnectés : 630 (sites) | 1490 (forums)Créer un compte
Neverwinter Nights 2
La Tour des Arcanes
Répondre
Partager Outils Rechercher
Kragg le Severe
Roi / Reine
 

(Script) Respawn

j'ai un soucis j'aimerai enlevé le systeme de créatin d'item pour déclancher le respawn est ce obligatoire ?
et autre chose j'aimerai crée un script de départ pour mes 8 races d'ethnies et la je suis pommé svp


Code PHP:
void main()
{

    
// J'ai pour habitude de déclarer toutes mes variables en tête de script
    
object oPC GetLastRespawnButtonPresser();
    
object oDroitRespawn GetItemPossessedBy(oPC"vie");
    
int nPV;
    
effect eSoins;
    
string sTag;
    
object oDestination;
    
string sSubRace;

    if (
oDroitRespawn != OBJECT_INVALID)
    {
        
nPV GetMaxHitPoints(oPC);
        
eSoins EffectHeal(nPV);
        
ApplyEffectToObject(0EffectResurrection(), oPC);
        
ApplyEffectToObject(DURATION_TYPE_INSTANTeSoinsoPC0.0);

        if (
GetStringLowerCase(GetSubRace(oPC)) == "stark"sTag "RESPAWN_STARK";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "lannister"sTag "RESPAWN_LANNISTER";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tully"sTag "RESPAWN_TULLY";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "arryn"sTag "RESPAWN_ARRYN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "targaryen"sTag "RESPAWN_TARGARYEN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tyrell"sTag "RESPAWN_TYRELL";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "baratheon"sTag "RESPAWN_BARATHEON";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "martel"sTag "RESPAWN_MARTEL";

        
oDestination GetObjectByTag(sTag);
        
AssignCommand(oPCJumpToObject(oDestination1));
        
SetItemCursedFlag(oDroitRespawnFALSE);
        
DestroyObject(oDroitRespawn0.0);
        
SendMessageToPC(oPC"Votre Dieu a été généreux, vous avez été ressucité");

    }
     else
    {
        
SendMessageToPC(oPC"Vous avez épuisé vos chances. Ce sera pour une autre fois, peut-être");
        return;
    }

j'aimerai remplacé les classes par les 8 ethnies citées sur le respawn

Code PHP:
void main()
{
object oPlayer GetEnteringObject();
object oWP;
 
if (
GetIsPC(oPlayer)==TRUE)
    { 
    
int iMetier GetClassByPosition(1,oPlayer);
    if ((
iMetier == CLASS_TYPE_FIGHTER) ||(iMetier == CLASS_TYPE_PALADIN) ||(iMetier == CLASS_TYPE_BARBARIAN) ||(iMetier == CLASS_TYPE_RANGER))
        {
oWP GetWaypointByTag("WP_guerrierentre");}
    else if ((
iMetier == CLASS_TYPE_SORCERER) ||(iMetier == CLASS_TYPE_WARLOCK) ||(iMetier == CLASS_TYPE_WIZARD))
        {
oWP GetWaypointByTag("WP_magicienentre");}
    else if ((
iMetier == CLASS_TYPE_CLERIC) ||(iMetier == CLASS_TYPE_DRUID) ||(iMetier == CLASS_TYPE_MONK))
        {
oWP GetWaypointByTag("WP_pretreentre");}
    else if ((
iMetier == CLASS_TYPE_BARD) ||(iMetier == CLASS_TYPE_ROGUE))
        {
oWP GetWaypointByTag("WP_filouentre");}
    }
else if (
GetIsDM (oPlayer)) oWP GetWaypointByTag ("WP_DMentre ");

if (
GetAreaFromLocation (GetLocation (oWP)) == OBJECT_INVALID)oWP GetWaypointByTag ("WP_DEFAULT ");
DelayCommand (5.0fAssignCommand(oPlayerJumpToObject(oWP)));


Dernière modification par Kragg le Severe ; 09/07/2014 à 21h56.
Lien direct vers le message - Vieux
Avatar de Crom29
Crom29
Duc
 
Avatar de Crom29
 
Désolé mais j'ai rien compris, alors...
(Cliquez le bouton ou survolez le contenu pour afficher ce spoiler.)
Lien direct vers le message - Vieux
Kragg le Severe
Roi / Reine
 
pour déclencher mon respawn j'ai besoin d'avoir un item qui se nomme "vie" et j'aimerai savoir si c'est possible de faire un respawn basique sans item , tu meurt tes téléportés selon ton ethnies.

Pour le 2 eme script j'aimerai remplacé les
Code PHP:
{oWP GetWaypointByTag("WP_pretreentre");} 
part des subraces "ethnies" lorsque l'on rentre sur le module le pj est téléporté dans son châteaux.

j'espère avoir été plus clair , merci
Lien direct vers le message - Vieux
Avatar de Crom29
Crom29
Duc
 
Avatar de Crom29
 
Code PHP:
void main()
{

    
// J'ai pour habitude de déclarer toutes mes variables en tête de script
    
object oPC GetLastRespawnButtonPresser();
    
//object oDroitRespawn = GetItemPossessedBy(oPC, "vie");
    
int nPV;
    
effect eSoins;
    
string sTag;
    
object oDestination;
    
string sSubRace;

    
//if (oDroitRespawn != OBJECT_INVALID)
    //{
        
nPV GetMaxHitPoints(oPC);
        
eSoins EffectHeal(nPV);
        
ApplyEffectToObject(0EffectResurrection(), oPC);
        
ApplyEffectToObject(DURATION_TYPE_INSTANTeSoinsoPC0.0);

        if (
GetStringLowerCase(GetSubRace(oPC)) == "stark"sTag "RESPAWN_STARK";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "lannister"sTag "RESPAWN_LANNISTER";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tully"sTag "RESPAWN_TULLY";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "arryn"sTag "RESPAWN_ARRYN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "targaryen"sTag "RESPAWN_TARGARYEN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tyrell"sTag "RESPAWN_TYRELL";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "baratheon"sTag "RESPAWN_BARATHEON";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "martel"sTag "RESPAWN_MARTEL";

        
oDestination GetObjectByTag(sTag);
        
AssignCommand(oPCJumpToObject(oDestination1));
        
//SetItemCursedFlag(oDroitRespawn, FALSE);
        //DestroyObject(oDroitRespawn, 0.0);
        
SendMessageToPC(oPC"Votre Dieu a été généreux, vous avez été ressuScité");

    
//}
    // else
    //{
    //    SendMessageToPC(oPC, "Vous avez épuisé vos chances. Ce sera pour une autre fois, peut-être");
    //    return;
    //}

Code PHP:
void main()
{
object oPlayer GetEnteringObject();
object oWP;
 
if (
GetIsPC(oPlayer)==TRUE)
    { 
        
string sTag;
        if (
GetStringLowerCase(GetSubRace(oPC)) == "stark"sTag "WP_STARK";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "lannister"sTag "WP_LANNISTER";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tully"sTag "WP_TULLY";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "arryn"sTag "WP_ARRYN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "targaryen"sTag "WP_TARGARYEN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tyrell"sTag "WP_TYRELL";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "baratheon"sTag "WP_BARATHEON";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "martel"sTag "WP_MARTEL";    int iMetier GetClassByPosition(1,oPlayer);

        
oWP GetWaypointByTag("WP_filouentre");    }
else if (
GetIsDM (oPlayer)) oWP GetWaypointByTag ("WP_DMentre ");

if (
GetAreaFromLocation (GetLocation (oWP)) == OBJECT_INVALID)oWP GetWaypointByTag ("WP_DEFAULT ");
DelayCommand (5.0fAssignCommand(oPlayerJumpToObject(oWP)));

Je ne vois pas ce que tu veux de plus...
Lien direct vers le message - Vieux
Kragg le Severe
Roi / Reine
 
Merci pour ton aide, le réel problème du premier script c'est que je n'ai pas créé d'inventaire de départ donc l'objet vie n'existe pas donc le respawn ne marche pas évidemment pour le 2ème script je te remercie je vais tester ce soir
Lien direct vers le message - Vieux
Kragg le Severe
Roi / Reine
 
je viens de testé le script et j'aime un message d'erreur :
(Cliquez le bouton ou survolez le contenu pour afficher ce spoiler.)
11/07/2014 21:44:03 : Erreur. 'teleportation_pj' n’est pas compilé.
teleportation_pj.nss(9): ERREUR : VARIABLE DEFINED WITHOUT TYPE



le script a été mi sur le OnClientEnter du module
Lien direct vers le message - Vieux
Avatar de Crom29
Crom29
Duc
 
Avatar de Crom29
 
Code PHP:
void main()
{
    
object oPlayer GetEnteringObject();
    
object oWP;

    if (
GetIsPC(oPlayer) == TRUE)
    {
        
string sTag;
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "stark"sTag "WP_STARK";
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "lannister"sTag "WP_LANNISTER";
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "tully"sTag "WP_TULLY";
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "arryn"sTag "WP_ARRYN";
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "targaryen"sTag "WP_TARGARYEN";
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "tyrell"sTag "WP_TYRELL";
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "baratheon"sTag "WP_BARATHEON";
        if (
GetStringLowerCase(GetSubRace(oPlayer)) == "martel"sTag "WP_MARTEL";

        
oWP GetWaypointByTag(sTag);
    }
    else if (
GetIsDM (oPlayer))
        
oWP GetWaypointByTag ("WP_DMentre ");

    if (
GetAreaFromLocation(GetLocation (oWP)) == OBJECT_INVALID)
        
oWP GetWaypointByTag ("WP_DEFAULT ");

    
DelayCommand (5.0fAssignCommand(oPlayerJumpToObject(oWP)));

par contre:
GetSubRace(oPlayer) renvoit un int (numéro de la ligne dans racialsubtypes.2da), pas un string. Donc ça ne peut pas compiler.

Honnêtement, essaye de faire des scripts plus simples pour apprendre à scripter, et reviens vers nous si quelque chose coince.
Parce que là j'ai plus l'impression que tu bricoles tes scripts et/ou tu veux qu'on les fasse à ta place
Lien direct vers le message - Vieux
Kragg le Severe
Roi / Reine
 
bah écoute j'ai 3,4 gros scripts le reste c'est du facile mais sans votre aide j'aurai fait 200 zones pour rien vue que j'ai pris le thème de game of thrones (action) donc c'est vrai je suis pas un scripteur mais plutot un mappeur mais si près du but sa me ferai chier de tout abandonné pour 3 voir 4 gros scripts
Lien direct vers le message - Vieux
Avatar de Crom29
Crom29
Duc
 
Avatar de Crom29
 
Un module avec 200 maps (aussi belles qu'elles soient) ira aussi loin qu'un mappeur sans scripteur, c'est à dire nulle part.
Il te faut manifestement un scripteur, et tu as deux options:
- Trouver un scripteur libre prêt à travailler avec toi
- Apprendre toi même à scripter (va voir sur http://nwn2.jeuxonline.info/articles/4333.html )

En tout cas je ne peux pas trop t'aider, vu qu'il faudrait que je regarde comment est intégrées tes races & classes custom et que je n'ai ni tes fichiers module, ni le temps de regarder tout ça...
Lien direct vers le message - Vieux
Kragg le Severe
Roi / Reine
 
Voici le script

Code PHP:
void main()
{

    
// J'ai pour habitude de déclarer toutes mes variables en tête de script
    
object oPC GetLastRespawnButtonPresser();
    
//object oDroitRespawn = GetItemPossessedBy(oPC, "vie");
    
int nPV;
    
effect eSoins;
    
string sTag;
    
object oDestination;
    
string sSubRace;

    
//if (oDroitRespawn != OBJECT_INVALID)
    //{
        
nPV GetMaxHitPoints(oPC);
        
eSoins EffectHeal(nPV);
        
ApplyEffectToObject(0EffectResurrection(), oPC);
        
ApplyEffectToObject(DURATION_TYPE_INSTANTeSoinsoPC0.0);

        if (
GetStringLowerCase(GetSubRace(oPC)) == "stark"sTag "RESPAWN_STARK";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "lannister"sTag "RESPAWN_LANNISTER";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tully"sTag "RESPAWN_TULLY";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "arryn"sTag "RESPAWN_ARRYN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "targaryen"sTag "RESPAWN_TARGARYEN";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "tyrell"sTag "RESPAWN_TYRELL";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "baratheon"sTag "RESPAWN_BARATHEON";
        if (
GetStringLowerCase(GetSubRace(oPC)) == "martel"sTag "RESPAWN_MARTEL";

        
oDestination GetObjectByTag(sTag);
        
AssignCommand(oPCJumpToObject(oDestination1));
        
//SetItemCursedFlag(oDroitRespawn, FALSE);
        //DestroyObject(oDroitRespawn, 0.0);
        
SendMessageToPC(oPC"Votre Dieu a été généreux, vous avez été ressuScité");

    
//}
    // else
    //{
    //    SendMessageToPC(oPC, "Vous avez épuisé vos chances. Ce sera pour une autre fois, peut-être");
    //    return;
    //} 
Lien direct vers le message - Vieux
Kragg le Severe
Roi / Reine
 
me revoici , comment instauré une perte d'xp en fonction de sont niveaux et la perte total de sont inventaire + po (lui laisser 100 po) ? merci
Lien direct vers le message - Vieux
Arno4485
Duc / Duchesse
 
Bonjour,

je profite de ce topic pour poser ma question vu qu'elle est clairement liée.

j'ai bien implanté mon script de respawn, mais celui ci ne se lance jamais lorsque je clique sur respawn, le Pj est soigné mais sur place, et jamais renvoyé dans le sanctuaire.
en gros le respawn de base.

en fait je me demande s'il ne faut pas paramétrer le bouton respawn pour qu'il renvoie vers le script de respawn, mais je ne trouve pas comment faire.

Pourriez vous m'aider s'il vous plait ?

j'ai regardé avec ce topic ci, mais le souci vient surtout du fait que le script de ne se lance jamais.


merci



EDIT : en fait c'est moi qui faisait mal les choses, désolé

Dernière modification par Arno4485 ; 01/12/2014 à 00h55.
Lien direct vers le message - Vieux
Arno4485
Duc / Duchesse
 
en fait non, j'ai bien un souci.

Lorsque je place mon script sur le onrespawn, il ne semble pas se lancer, et le respawn se fait sur place

Code:
void main()
{
object oTargetHeaven = GetWaypointByTag("WP_HEAVEN");
location lTargetHeaven = GetLocation(oTargetHeaven);

effect eRespawnHell = EffectVisualEffect(VFX_FNF_SUMMON_GATE);
effect eRespawnPurg = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
effect eRespawnHeaven = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL);
object oRespawner = GetLastRespawnButtonPresser();

ApplyEffectToObject(DURATION_TYPE_INSTANT, eRespawnHeaven, oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
AssignCommand(oRespawner, JumpToLocation(lTargetHeaven));

}
ai je loupé une étape quelque part ? ou bien pas saisit une spécificité de cette fonction respawn ?

merci

EDIT : bon ben décidément .. en écrivant mon souci j'ai trouvé la réponse, la fonction Onrespawn du module n' est plus utilisée, mais les fichier gui_death_respawn et gui_death_respawn_self.

merci quand même
Désolé je n'ai pas trouvé comment delete mon post.

Dernière modification par Arno4485 ; 03/12/2014 à 15h39.
Lien direct vers le message - Vieux
Répondre

Outils Rechercher
Rechercher:

Recherche avancée

Thème visuel : Fuseau horaire GMT +1. Il est actuellement 21h27.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite