badblood est dans le vrai.
Si on joue le tutorial, avec les patchs 1.8bis et le mod-clan, on est immortel durant le reste du jeu, quel que soit le clan joué.
Par contre, si on zappe le tutorial en envoyant bouler Jack, et bien mortel.
Le problème c'est qu'en tentant de faire un correctif j'ai eu un léger souci : le trigger MakePlayerUnkillable se charge en même temps que la carte mais je ne sais pas quand rendre le joueur tuable.
En mettant juste à la fin :
"pc_0,MakePlayerKillabe,,0,-1,," ?
Je doute que la carte se contente de fonctions appelées sans conditions.
D'autant qu'il faut rétablir la frénésie
Donc pas de problème pour faire un correctif mais comment on doit appeler la fonction? _________________ -Est-ce que vous avez Nosferatu?
-Oui nous avons vos Sfératu!
Mel Brooks Aggllgenngkrekgrekpgeproooo
que veut tu faire exactement, rendre le joueur tuable dans le tutorial ?
si c'est le cas tu supprime simplement les deux lignes dans le trigger "pc_0"
celle de la frenesie et de l'immortalite.
si tu veut par contre simplement corriger le bogue il faut faire ceci.
Code:
## player skips tutorial
if (G.tut_jack == 0):
jack = Find ("jack")
jack.WillTalk(0)
#changes made by dan_upright 29/11/04
G.StoryState = -2
pc = __Main__.FindPlayer()
if pc:
pc.GiveItem ("item_g_lockpick")
pc.GiveItem("item_w_thiryeight")
pc.GiveItem("item_w_thiryeight",12)
pc = Find("pc_0")
if pc:
pc.MakePlayerKillable()
__main__.ChangeMap(2.5,"newgame","trig_leave_tutorial")
elif
etc etc etc
juste modifier une bricole ce sont les trois lignes suivantes
pc = Find("pc_0")
if pc:
pc.MakePlayerKillable()
lrespectent l'indentation comme c'est ecrit dans le cadre avec les espace la ou il faut, les decalage corrspondande a des blocs d'instruction par exemple.
Code:
if pc:
pc.GiveItem ("item_g_lockpick")
pc.GiveItem("item_w_thiryeight")
pc.GiveItem("item_w_thiryeight",12)
signifie que tout ce qui est apres le if pc: et decale vers la droite sera execute si l'instruction if pc: est verifie.
dans la suite le second if pc: precede de pc = find("pc_0")
sont des blocs a part et non compris dans le blocs precedents, par le pc.makeplayerkillable lui est decale par rapport au second ic pc: et la fait partie du bloc de la condition et ne sera execute que si la aussi cette conndition est respecte (je ne sais pas si je me suis bien fait comprendre ?).
maintenant si tu veut utiliser la fonction MakePlayerUnkillable().
il faut la mettre dans la map pawnshop_1.bsp
tu ouvre la maps pawnshop_1.bsp avec le vpktool
tu remontes le texte a la premiere ligne, clic gauche pour afficher le curseur sur la premiere ligne puis clic droit et menu find.
la tu tapes logic_auto
tu valide et tu vas te retrouver au debut d'un bloc que tu vas copier (entre les deux accolades et accolades comprises.
tu va a la fin du texte dans le vpktool et tu copie ce bloc.
tu laisse la premiere, le deuxieme et la deniere ligne et tu vires toutes les autres ou tu les remplaces par ceci.
"OnMapLoad" "pc_0,MakePlayerUnkillable,,0,-1,,"
tu modifie legerement les coordonnees dans le derniere lignes.
"origin" "1028 -92 487"
tu change l'une des premieres valeurs 1028 en 1050 par exemple
tu clic sur write new data et voila, la fonction ne s'executera qu'une seule fois parce que le trigger a un spawnflags a 1, bien sur dans ce cas la il est inutile de rendre la frenesie inerte, ton personnage ne peut pas perdre une goutte de sang ni de sante, sauf peut etre si tu le baisse avec la console (blood xxx).
bien entendu quand tu vas entrer dans la map la premiere fois ( apres la modif) ton personnage va se bloquer et tu vas avoir droit a un message de reconstruction etc, le jeu reconstruit simplement les graph de la map parce qu'elle a ete modifie donc pas d'affolement et pas de reset intempestif, attention il est peut etre necessaire de reprendre le jeu a zero avec ou sans le skip ca devrait marcher.
note que tu peut faire la meme chose dans d'autre map a un moment precis par exemple, ca peut meme se faire dans une quete ou dans un dialogue, pour faire l'inverse il suffit de creer une autre fonction avec l'autre instruction a la place et de l'appeler apres pour annuler la premiere.
par contre pour les dialogues ou script il te faudra une fonction qui pourrait etre comme ceci.
Code:
#PAWNSHOP: rendre le joueur immortel.
def modegod():
pc = __main__.FindPlayer()
if pc:
pc.MakePlayerUnkillable()
apres il faudra lui faire un appel la ou tu veut, pour descativer le modgod il suffira d'une autre fonction du meme type mais modifier le nom de la fonction et remplacer le makeplayerunillable par makeplayerkillable. _________________ je ne serais jamais un ventru avec un pseudo pareil.
Mon objectif est bien entendu de corriger le bug qui rend le joueur intuable.
Donc ce que je cherche est en fait :
- Comment rendre le joueur tuable dans une partie déjà commencée?
(Appel à la console)
- Que modifier dans le fichier sp_tutorial_1.bsp pour les parties futures?
(Mais ça tu as déjà répondu) _________________ -Est-ce que vous avez Nosferatu?
-Oui nous avons vos Sfératu!
Mel Brooks Aggllgenngkrekgrekpgeproooo
il n'est pas necessaire de modifier quoique ce soit dans la maps tutorial. si tu le fais ca resoudra bien le bogue mais ca va rendre le joueur tuable dans le tutorial et apparemment ca n'a pas ete prevu ca peut avoir des consequences surprenantes, peut etre meme un plantage.
il faut juste editer le fichier python tutorial.py comme je le precise la haut en modifiant simplement la fonction skip comme dessous.
Code:
## player skips tutorial
if (G.tut_jack == 0):
jack = Find ("jack")
jack.WillTalk(0)
#changes made by dan_upright 29/11/04
G.StoryState = -2
pc = __Main__.FindPlayer()
if pc:
pc.GiveItem ("item_g_lockpick")
pc.GiveItem("item_w_thiryeight")
pc.GiveItem("item_w_thiryeight",12)
pc = Find("pc_0")
if pc:
pc.MakePlayerKillable()
__main__.ChangeMap(2.5,"newgame","trig_leave_tutorial")
elif
etc etc etc
tu ouvres le fichier avec le bloc-note et tu regardes le debut , tu devrais facilement trouver et comparer ce qu'il y a avec ce que j'ais ecris dans le cadre.
une fois la modification faite tu valides mais bien sur tu restera immortel si tu ne reprends pas au tutorial, et meme en modifiant la maps ce sera difficile.
tu peut essayer la console et taper la commande qui permet d'etre immortel, si je me souviens bien elle marche dans les deux sens.
il y a une solution eventuelle mais qui depend de l'avancement du jeu, de la map ou tu es et des personnages rencontres.
imaginons que tu sois encore a santa monica et que tu ai a parle a kilpatrick.
dans le fichier python de santamonica tu rajoutes ceci.
Code:
#CORRECTIF TEMPORAIRE: rendre le joueur mortel.
def nomodegod():
pc = __main__.FindPlayer()
if pc:
pc.MakePlayerKillable()
une fois fais et enregistrer le fichier tu ouvres le dialogue avec kilpatrick dans le conveditor.
tu cherche une replique dont tu es sur qu'elle sera dites par lui ou par le joueur. tu essai de prendre une replique ou il n'y ait aucune action de prevue.
dans le cadre action tu ajoute simplement.
nomodegod()
c'est tout, quand tu va dialoguer avec lui, a la fin de sa replique la fonction se declenchera et rendra le joueur mortel.
une fois finis le dialogue, il suffit de faire une nouvelle sauvegarde, quitter le jeu, virer la ligne dans le dialogue, virer la fonction du fichier python (pas necessaire puisqu'elle ne sera plus appele par le dialogue).
tu reprends le jeu a cette sauvegarde et c'est tout. ca devrait parfaitement fonctionner.
tu peut faire ca avec n'importe quel npc du jeux et je pense meme avec un de ceux a qui tu as deja parle, en principe les modifications dans les dialogues et les fichier python sont pris en compte en tant reel, ce sont les modifications dans les maps et la plupart des fichiers du dossier vdata/system qui reclament ou de reprendre avant d'etre entre dens la map si c'est la map ou de reprendre tout le jeu si ce sont les fichiers.
si tu fais le correctif toi meme dans le fichier python et apres verification bien entendu, envoi le fichier a southsnake pour corriger le patch, ca rendra service a la communaute et tu auras ton pseudo dans le readme
_________________ je ne serais jamais un ventru avec un pseudo pareil.
En fait plus sûrement que faire des modifications dans le fichier py, pourquoi ne pas rendre le joueur tuable après qu'il ait parlé pour la dernière fois à Jack, dans le tutorial, quand il dit :
... on parlera politique, c'est le truc le plus dangereux ici.
On pourrait mettre ça en result de ce qu'il dit:
J'imagine que ce serait aussi simple et le fichier Jack_tutorial n'est modifié par aucun mode _________________ -Est-ce que vous avez Nosferatu?
-Oui nous avons vos Sfératu!
Mel Brooks Aggllgenngkrekgrekpgeproooo
En fait je pense que l'erreur est plus basse dans le code. A la ligne 459 JPSO(je pense que c'est Bloodipunk) a modifié 2 lignes de code pour les mettre en commentaire et rajouté le pc.makeplayerkillable() mais avec la mauvaise variable pc.
Si on enlève les deux # à ligne 459 et 460 et on commente la ligne 465 ça devrait marcher comme l'original plus le revolver. Si quelqu'un veut essayer.(En fait puisque la ligne 465 ne marche pas la commenté ou pas ne devrait faire aucune différence mais moi je prend pas de chance)
Voila le code corrigé:
Si on remarque à la ligne 468 la routine LeaveTutorialShort() est appelée par le dialogue de jacktutorial quand on skip le tuto donc le joueur est bien tuable par la suite. Ce qui n'était pas le cas pour le tutorial complet(ligne 455 routine non corrigée).
Oh, en passant, j'utilise context pour mes textes de programmation comme Python, c'est beaucoup plus facile à lire et comprendre.
moi j'utilise le bloc-note pour bloodlines.
je n'edites pas directement les fichiers sauf pour rectifier ou modifier des fonctions deja existantes.
je fais apres un copier/coller dedans.
en fait quand je commence a trafiquer avec bloodlines j'en profite pour tout noter, que ce soit les midifications de fichiers, l'ajout de chose dans les maps, ca m'evite d'avoir un editeur pour le python, le bloc-note pour modifier les fichiers, la elements dans las maps et ainsi de suite.
au fait bien vu la fonction, je ne suis pas descendu assez bas dans le fichier il faut dire que je suis actuellement ocupe avec la construction d'un refuge pour heros fatigue dans un autre jeu, et forcer des creatures a accompagner mon personnage, j'en bave pour rester poli.
bloodlines est un jeu d'enfant a cote de ca. _________________ je ne serais jamais un ventru avec un pseudo pareil.
S'il s'agit d'Oblivion j'échangerais bien avec toi si j'avais le jeu.
Pour les PNJ qui suivent le personnage je crois que c'est la fonction:
"ID du pnj"->AiFollow Player 0 0 0 0
Et pour le refuge hem là je ne peux pas t'aider
Sinon merci Dan, j'avoue que j'ai fais plusieurs essais pas très concluants, je vais continuer avec ce que tu proposes. _________________ -Est-ce que vous avez Nosferatu?
-Oui nous avons vos Sfératu!
Mel Brooks Aggllgenngkrekgrekpgeproooo
c'est bien oblivion, et ce que tu cites ce sont les packages, ca pas de probleme, le plus dure ce sont les scripts qu'il faut ecrire pour gerer mes creatures (3 en tous) en fait j'en ai bave parce que j'ai enfin reussi.
pour eviter de trop faire du or sujet ici ils seraient mieux qu'on en parle dans la section les autres jeux si ca t'interesses. _________________ je ne serais jamais un ventru avec un pseudo pareil.
Posté le: 26/08/2006 04:28 Sujet du message: Context pour bien voir le code
L'idée ici avec Context c'est la compréhension du texte de programmation. On voit immédiatement les commentaires, les mots clés et si on fait une faute de frappe avec les mots clés la couleur est différente.
En plus Context est configurable pour toute sorte de scripts c++ html asm python java etc. J'en ai vu un pour unreal va voir sur le site de context ça vaut la peine,Context.
En plus tu peux toi même configurer Context pour n'importe quel script ou modifier une configuration existente. En tout cas il faut mettre toutes les chances de notre coté en programmation.
Juste un petite truc que vous pourriez rajouter dans les futur versions : paramètres du saut à 200 au lieu de 185 (attention !!! pas les 270 prévus à l'origine par les dev', c'est trop).
Ce qui permet de passer au dessus de certaines barrières pour gagner du temps (exemple : rambardes d'escaliers, barrières de la jetée de Santa Monica, etc.) sans pour autant permettre d'escalader les poubelles et ainsi de passer à travers le décors (ce qui est le cas avec 270).
J'avais toujours été frustré d'être un vampire plein de pouvoirs spéciaux et pas être capable de sauter plus haut qu'un humain de base.
Voilà, c'est juste un petit 'plus' confort.
Bisous-bécôts ! _________________ Qui est le plus fou des deux... Le fou ou celui qui le suit ? Aucun ! car le plus fou c'est moi (^_^") !!!
Permettez que je vampirise cette idée pour l'assimiler dans l'organisme de mon projet _________________ -Est-ce que vous avez Nosferatu?
-Oui nous avons vos Sfératu!
Mel Brooks Aggllgenngkrekgrekpgeproooo
Ya pas de soucis... j'en avais déjà parlé à l'époque de l'élaboration du patch 1.6.... mais personne à du remarquer.
Un truc aussi qui m'énèrve c'est l'emplois à outrance du mot 'père' au lieu de 'sire'.... on en arrive à dès phrases pas claire en fonction du sens.
ex: quête de Patty au centre ville, l'Anarch black (connais plus son nom désolé) nous dis "je le ferai bien moi même, mais je connaissait son père".... en fait il connaissait son sire, le fameux Toréador décédé.
De même dans la scène d'intro ou à plusieur reprise Lacroix fait référence au "Sir" dans le son, mais "Père" dans le texte... ou encore plein d'autre fois ou il est dit que la mort de notre père était tragique... etc. etc.
C'est juste textuel mais moi ça me gène d'entendre "Sir" et de pas voir écris "Sire" dans le texte.
Idem dans les histoires, certaine font référence au sire, et d'un coup on tombe sur "votre père nosfératu". Attention malgrès tout, l'histoire commençant par "votre père était un salaud" fait bien référence au père familliale et non au père vampirique.
Enfin voilà quoi... pardon de vous déranger. _________________ Qui est le plus fou des deux... Le fou ou celui qui le suit ? Aucun ! car le plus fou c'est moi (^_^") !!!
Une autre question : Qu'en est il des quelques clans restant ? (True Brujah, Assamite Sorcier, Sister of machin, etc.) Sont ils prévus dans les futures versions du mod ? _________________ Qui est le plus fou des deux... Le fou ou celui qui le suit ? Aucun ! car le plus fou c'est moi (^_^") !!!
Toutes les heures sont au format GMT + 1 Heure Aller à la page Précédente1, 2, 3, 4, 5, 6, 7, 8, 9Suivante
Page 6 sur 9
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