La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 01/11/2024 04:36:33
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Attention ! | Vous êtes en train de lire un message hors de son contexte. Veuillez lire le sujet Aux utilisateurs du hak Rideable Horses en entier avant de répondre à ce message. |
yellow submarine Grand Chevalier Messages: 143 |
Bonjour
le Hak concené c'est Rideable Horses le script pour faire descendre de cheval, est actionné lorsque l'on active la selle (si on est à cheval ) le cheval se positionne à côté dans evenements module : OnActivateItem j'ai mis NWScript :
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème. Voilà le script gsc_include NWScript :
//:////////////////////////////////////////////// //:: Name Gilean Sistema Cavalli //:: FileName gsc_include //:: Copyright (c) 2001 Bioware Corp. //:///////////////////////////////////////////// /* Rideable Horse system made from Ardemor Persistent World on [http] */ //:///////////////////////////////////////////// //:: Created By: Gilean //:: Created On: 04.03.05 //:///////////////////////////////////////////// const int SKILL_CAVALCARE = 27; const int CD_CAVALCARE=24; //Tiro da effettuare per superare il disarcionamento int nRiga2daCavalloUmano=1036;//Riga del 2da corrispondente al cavaliere umano int nRiga2daCavalloElfo=1037;//Riga del 2da corrispondente al cavaliere elfo int nRiga2daCavalloNano=1038;//Riga del 2da corrispondente al cavaliere nano int nRiga2daCavalloGnomo=1039;//Riga del 2da corrispondente al cavaliere gnomo int nRiga2daCavalloHalfling=1032;//Riga del 2da corrispondente al cavaliere gnomo int nRiga2daCavalloOrco=1033;//Riga del 2da corrispondente al cavaliere mezz'orco //Questa funzione ritorna il numero di 2da correlato alla razza che cavalca int GSC_AssegnaCavalloARazza(object oPC); //Questa funzione fa montare (o smontare) a cavallo oPC umano; void GSC_SellaPG(object oPC,object oCavallo); //Questa funzione controlla che oPCnon abbia gia' un cavallo //evocato void GSC_CreaCavallooPonyInStalla(object oPC,string sTagCavallo); //Da porre nell'evento on activated item del modulo void GSC_AttivaSella(); //Questa funzione risetta l'apparenza normale del cavallo e del pg //la puoi porre in on client enter per far ritornare //Cavallo e cavaliere separati int GSC_SmontaDaCavallo(object oPC); //Da porre in on client enter del modulo, fa tornare il PG //con le fattezze normali void GSC_OnClientEnter(object oPC); //Ritorna TRUE se oCavallo e' il cavallo di oPC int GSC_GetMasterOfHorse(object oPC,object oCavallo); // Questa funzione posta in onCombatRoundEnd del mob //Fa il check su disarcionare void GSC_CheckDisarcionare(object oMob); //La funzione da porre in on death del modulo //Fa smontare il pg dalla sella e distrugge cavallo e cintura void GSC_OnPGDeath(object oPC); //LA funzione ritorna TRUE se oPC sta cavalcando una cavalcatura. int GSC_IsPGRidingHorse(object oPC); //Questa funzione posta nell'evento OnEquipItem del modulo //fa si che oPC non equipaggi oggetti proibiti mentre cavalce void GSC_OnEquipItem(object oPC,object ItemEquipped); /////////////////////////////////////////////// int GSC_IsPGRidingHorse(object oPC) /////////////////////////////////////////////// { if(GetAppearanceType(oPC)==nRiga2daCavalloUmano || GetAppearanceType(oPC)==nRiga2daCavalloElfo ||GetAppearanceType(oPC)==nRiga2daCavalloNano ||GetAppearanceType(oPC)==nRiga2daCavalloGnomo || GetAppearanceType(oPC)==nRiga2daCavalloHalfling || GetAppearanceType(oPC)==nRiga2daCavalloOrco) return TRUE; else return FALSE; } /////////////////////////////////////////////// int GSC_AssegnaCavalloARazza(object oPC) /////////////////////////////////////////////// { int nRace=GetRacialType(oPC); switch(nRace) { case(RACIAL_TYPE_HUMAN): return nRiga2daCavalloUmano; break; case(RACIAL_TYPE_HALFELF): return nRiga2daCavalloUmano; break; case(RACIAL_TYPE_ELF): return nRiga2daCavalloElfo; break; case(RACIAL_TYPE_DWARF): return nRiga2daCavalloNano; break; case(RACIAL_TYPE_GNOME): return nRiga2daCavalloGnomo; break; case(RACIAL_TYPE_HALFLING): return nRiga2daCavalloHalfling; break; case(RACIAL_TYPE_HALFORC): return nRiga2daCavalloOrco; break; default: { FloatingTextStringOnCreature("La tua razza non e' in grado di cavalcare",oPC,FALSE); return 0; } } return 0; } /////////////////////////////////////////////// int GSC_SmontaDaCavallo(object oPC) /////////////////////////////////////////////// { if(GetAppearanceType(oPC)==nRiga2daCavalloUmano) { SetCreatureAppearanceType(oPC,6); object oCavallo=CreateObject(OBJECT_TYPE_CREATURE,"gsc_cavallo",GetLocation(oPC),TRUE); SetLocalObject(oCavallo,"gsc_padrone",oPC); AddHenchman(oPC,oCavallo); return TRUE; } else if(GetAppearanceType(oPC)==nRiga2daCavalloElfo) { SetCreatureAppearanceType(oPC,1); object oCavallo=CreateObject(OBJECT_TYPE_CREATURE,"gsc_cavallo",GetLocation(oPC),TRUE); SetLocalObject(oCavallo,"gsc_padrone",oPC); AddHenchman(oPC,oCavallo); return TRUE; } else if(GetAppearanceType(oPC)==nRiga2daCavalloNano) { SetCreatureAppearanceType(oPC,0); object oCavallo=CreateObject(OBJECT_TYPE_CREATURE,"gsc_pony",GetLocation(oPC),TRUE); SetLocalObject(oCavallo,"gsc_padrone",oPC); AddHenchman(oPC,oCavallo); return TRUE; } else if(GetAppearanceType(oPC)==nRiga2daCavalloGnomo) { SetCreatureAppearanceType(oPC,2); object oCavallo=CreateObject(OBJECT_TYPE_CREATURE,"gsc_pony",GetLocation(oPC),TRUE); SetLocalObject(oCavallo,"gsc_padrone",oPC); AddHenchman(oPC,oCavallo); return TRUE; } else if(GetAppearanceType(oPC)==nRiga2daCavalloHalfling) { SetCreatureAppearanceType(oPC,3); object oCavallo=CreateObject(OBJECT_TYPE_CREATURE,"gsc_pony",GetLocation(oPC),TRUE); SetLocalObject(oCavallo,"gsc_padrone",oPC); AddHenchman(oPC,oCavallo); return TRUE; } else if(GetAppearanceType(oPC)==nRiga2daCavalloOrco) { SetCreatureAppearanceType(oPC,5); object oCavallo=CreateObject(OBJECT_TYPE_CREATURE,"gsc_cavallo",GetLocation(oPC),TRUE); SetLocalObject(oCavallo,"gsc_padrone",oPC); AddHenchman(oPC,oCavallo); return TRUE; } else { //FloatingTextStringOnCreature("Per montare a cavallo parlaci",oPC,FALSE); return FALSE; } } /////////////////////////////////////////////// void GSC_SellaPG(object oPC,object oCavallo) /////////////////////////////////////////////// { int nRace=GetRacialType(oPC); int NumeroRazza=GSC_AssegnaCavalloARazza(oPC); int Continua=FALSE; //Parte per smontare da cavallo //GSC_SmontaDaCavallo(oPC); //Parte per montare a cavallo if(NumeroRazza!=0 && GetTag(oCavallo)=="gsc_cavallo" || GetTag(oCavallo)=="gsc_pony" && GetStringLowerCase(GetSubRace(oPC))!="minotauro") { if(GetDistanceBetween(oPC,oCavallo)<30.0 && GetHenchman(oPC)==oCavallo) { AssignCommand(oCavallo,SetIsDestroyable(TRUE,FALSE,FALSE)); DestroyObject(oCavallo); SetCreatureAppearanceType(oPC,NumeroRazza); } } else if(GetHenchman(oPC)!=oCavallo) { FloatingTextStringOnCreature("Non puoi cavalcare questo cavallo poiche' non ti appartiene",oPC,FALSE); } else if(GetStringLowerCase(GetSubRace(oPC))=="minotauro") { FloatingTextStringOnCreature("I minotauri non possono cavalcare",oPC,FALSE); } else { FloatingTextStringOnCreature("Devi essere piu' vicino per montare la sella",oPC,FALSE); } } /////////////////////////////////////////////// void GSC_CreaCavallooPonyInStalla(object oPC,string sTagCavallo) /////////////////////////////////////////////// { int nMaxCavalli=GetMaxHenchmen(); int i; for(i==1;i<=nMaxCavalli;i++) { if(GetTag(GetHenchman(oPC,i))==sTagCavallo) { //FloatingTextStringOnCreature("Hai gia' un cavallo",oPC,FALSE); return; } } object oCavallo=CreateObject(OBJECT_TYPE_CREATURE,sTagCavallo,GetLocation(oPC),TRUE); SetLocalObject(oCavallo,"gsc_padrone",oPC); AddHenchman(oPC,oCavallo); } /////////////////////////////////////////////// void GSC_AttivaSella() /////////////////////////////////////////////// { object oSella=GetItemActivated(); if(GetTag(oSella)=="gsc_sella") { object oPC=GetItemActivator(); if(GetLocalInt(GetArea(oPC),"stalla_var")==1) { GSC_SmontaDaCavallo(oPC); object oCavallo=GetItemActivatedTarget(); int nRace=GetRacialType(oPC); switch(nRace) { case(RACIAL_TYPE_HUMAN): GSC_CreaCavallooPonyInStalla(oPC,"gsc_cavallo"); break; case(RACIAL_TYPE_HALFELF): GSC_CreaCavallooPonyInStalla(oPC,"gsc_cavallo"); break; case(RACIAL_TYPE_ELF): GSC_CreaCavallooPonyInStalla(oPC,"gsc_cavallo"); break; case(RACIAL_TYPE_DWARF): GSC_CreaCavallooPonyInStalla(oPC,"gsc_pony"); break; case(RACIAL_TYPE_GNOME): GSC_CreaCavallooPonyInStalla(oPC,"gsc_pony"); break; case(RACIAL_TYPE_HALFLING): GSC_CreaCavallooPonyInStalla(oPC,"gsc_pony"); break; case(RACIAL_TYPE_HALFORC): GSC_CreaCavallooPonyInStalla(oPC,"gsc_cavallo"); break; default: FloatingTextStringOnCreature("La tua razza non e' in grado di cavalcare",oPC,FALSE); } } else GSC_SmontaDaCavallo(oPC); /* if(GSC_SmontaDaCavallo(oPC)==FALSE && GetTag(GetItemActivatedTarget())=="gsc_cavallo" || GetTag(GetItemActivatedTarget())=="gsc_pony") FloatingTextStringOnCreature("Per montare a cavallo parlaci",oPC,FALSE); else FloatingTextStringOnCreature("Puoi evocare il tuo cavallo solo in una stalla",oPC,FALSE); */ }//Fine if(GetTag(oSella)=="gsc_sella") } /////////////////////////////////////////////// void GSC_OnClientEnter(object oPC) /////////////////////////////////////////////// { if(GetAppearanceType(oPC)==nRiga2daCavalloUmano) { SetCreatureAppearanceType(oPC,6); } else if(GetAppearanceType(oPC)==nRiga2daCavalloElfo) { SetCreatureAppearanceType(oPC,1); } else if(GetAppearanceType(oPC)==nRiga2daCavalloNano) { SetCreatureAppearanceType(oPC,0); } else if(GetAppearanceType(oPC)==nRiga2daCavalloGnomo) { SetCreatureAppearanceType(oPC,2); } else if(GetAppearanceType(oPC)==nRiga2daCavalloHalfling) { SetCreatureAppearanceType(oPC,3); } else if(GetAppearanceType(oPC)==nRiga2daCavalloElfo) { SetCreatureAppearanceType(oPC,5); } } int GSC_GetMasterOfHorse(object oPC,object oCavallo) { int nMaxCavalli=GetMaxHenchmen(); int i; for(i==1;i<=nMaxCavalli;i++) { if(GetHenchman(oPC,i)==oCavallo) return TRUE; } return FALSE; } /////////////////////////////////////////////// void GSC_CheckDisarcionare(object oMob) /////////////////////////////////////////////// { object oPC=GetAttackTarget(oMob); if(GetLastDamager(oPC)==oMob) { int PXScorsi=GetLocalInt(oPC,"gsc_px"); int nPXAttualiPC=GetCurrentHitPoints(oPC); //SendMessageToPC(oPC,"Nome delPX attuali pari a "+IntToString(nPXAttualiPC)+" , PX storati="+IntToString(PXScorsi)); if(GSC_IsPGRidingHorse(oPC)) { //Se sbaglia il tiro il pg cade da cavallo if(nPXAttualiPC!=PXScorsi && PXScorsi!=0 && !GetIsSkillSuccessful(oPC,SKILL_CAVALCARE,CD_CAVALCARE)) { SendMessageToPC(oPC,"Tiro su Cavalcare fallito,cadi da cavallo"); GSC_SmontaDaCavallo(oPC); AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT,1.0,5.0)); ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(10),oPC); SetLocalInt(oPC,"gsc_px",nPXAttualiPC); } //Nel caso di primo attacco limitiamoci ad aggiornare la soglia else if(PXScorsi==0) SetLocalInt(oPC,"gsc_px",nPXAttualiPC); //Il pg non e' stato danneggiato quindi non facciamo check //ma aggiorniamo la soglia else SetLocalInt(oPC,"gsc_px",nPXAttualiPC); } } } /////////////////////////////////////////////// void GSC_OnPGDeath(object oPC) /////////////////////////////////////////////// { if(GetAppearanceType(oPC)==nRiga2daCavalloUmano) { SetCreatureAppearanceType(oPC,6); DestroyObject(GetItemPossessedBy(oPC,"gsc_sella")); } else if(GetAppearanceType(oPC)==nRiga2daCavalloElfo) { SetCreatureAppearanceType(oPC,1); DestroyObject(GetItemPossessedBy(oPC,"gsc_sella")); } else if(GetAppearanceType(oPC)==nRiga2daCavalloNano) { SetCreatureAppearanceType(oPC,0); DestroyObject(GetItemPossessedBy(oPC,"gsc_sella")); } else if(GetAppearanceType(oPC)==nRiga2daCavalloGnomo) { SetCreatureAppearanceType(oPC,2); DestroyObject(GetItemPossessedBy(oPC,"gsc_sella")); } else if(GetAppearanceType(oPC)==nRiga2daCavalloHalfling) { SetCreatureAppearanceType(oPC,3); DestroyObject(GetItemPossessedBy(oPC,"gsc_sella")); } else if(GetAppearanceType(oPC)==nRiga2daCavalloElfo) { SetCreatureAppearanceType(oPC,5); DestroyObject(GetItemPossessedBy(oPC,"gsc_sella")); } else return; } /////////////////////////////////////////////// void GSC_OnEquipItem(object oPC,object ItemEquipped) /////////////////////////////////////////////// { if(GSC_IsPGRidingHorse(oPC)) { switch(GetBaseItemType(ItemEquipped)) { case(BASE_ITEM_TOWERSHIELD): DelayCommand(1.0,AssignCommand(oPC,ActionUnequipItem(ItemEquipped))); FloatingTextStringOnCreature("Non puoi equipaggiare questo oggetto quando cavalchi",oPC,FALSE); break; //Continua qua con la lista oggetti non consentita default: return; }//fine switch } } et pour finir le script pour faire disparaitre le cheval lors du dialogue : gsc_disevoca NWScript :
void main() { object oPC=GetPCSpeaker(); object oCavallo=OBJECT_SELF; int nMaxCavalli=GetMaxHenchmen(); int i; RemoveHenchman(oPC,oCavallo); AssignCommand(oCavallo,SetIsDestroyable(TRUE,FALSE,FALSE)); DestroyObject(oCavallo); } J'espere que tu pourras faire qq chose avec ça merci PS pendant que tu y es si j ai un autre hench je ne peux monter à cheval que si le hench n est plus avec moi ou si il est en 2ème position y a t'il moyen de faire qq chose? Et enfin quels sont les 2 autres haks? amicalement _________________ Rien ne vaut la recherche lorsqu'on veut trouver quelque chose. [J. R. R. Tolkien] |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Page 1 sur 1 ¤
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum