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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

du boulot pour les modos :)

Par tonton le grognon le 8/3/2002 à 7:40:29 (#1081892)

moyuhahaha que je suis evil...

bref plein de chose TRES interessantes sur ignvault nwn qui ne demandent qu'a etre traduites pour les anglophobes..


David Gaider - Design, Bioware corp. -

Scripting:
Quote: I could be all confused on this, but I don't believe you can do that. The reason is I don't thing you are really "attaching" scripts to the sword, but rather executing scripts from events that are associated with that sword. Those scripts that are executed would have to exist in every module where the sword was to be used.

Gladimir has the right of it. Scripted items must have their scripts stored in the OnItemActivate() portion of the module.



XP:
Quote: 1. How does that work with the Scripting Wizards? Is it possible to modify the wizards such that they use my wrapper function instead of RewardXP()?

Actually, RewardXP() is not a proper command with the scripting language. The proper command is GiveXPtoCreature(). What you're hinting at is exactly what we've done with RewardXP() in the official campaign... we wrote up a seperate script that assigns all sorts of rules to how XP is given out and assigned it to the function 'RewardXP()'.

Then anytime we want to give out XP with a script, we use '#include' to call on the XP script and then, in the new script, use the RewardXP() function.

So yes... it can only be done with scripts (with rewarding XP by scripts, I mean), but you can make your own function scripts and call on them with #include... and you will have an example in the official campaign to work from.

I hope that all made sense. If not, let me know... it's still early.

Quote: 2. How does this work with experience received from monsters? Must I / is it even possible to modify all monster so that they deal no experience except through script (my wrapper function again) in their OnDeath() event?

I think so... there is a slider when you create a module that allows you to set a ratio for XP. I haven't played with it, myself (which is why I'm not sure), but I believe this affects automatic XP like from monsters. You could set this slider to 0, then, and give out all your XP manually (and refer to your XP function in their OnDeath() event, certainly).

Quote: 3. Are there any (other) hard-coded calls that reward experience? How would I go about circumventing these?

Nothing else hard-coded... so long as you avoid assigning experience through the journal system.

Beyond that, there is no OnReceiveXP() event and no ability for items to adjust XP percentage... but I think the stuff I've described above should pretty much cover what you want to do.

Creating Monsters:
Quote: This is great information! I'm curious though, if I give two levels of Cleric to a goblin, does the Toolset make some automatic adjustment to CR or will that have to be done manually?

If you used the Creature Wizard to make the goblin and assigned him 2 levels of Cleric, the CR would be assigned automatically (along with assigning him default skills, feats, spells and scripts so that you could plunk said goblin down and he would immediately begin Blessing and Curing his goblin comrades... all that stuff being manually changeable, of course).

If you built the Creature from the ground up without the Wizard, you would have to assign the CR yourself.

More On XP:
Quote: A quick thought would be to minimize that slider David was talking about and hijaak the OnDeath() script for the fearsome beast, and accumulate XP in a local variables, perhaps even attached to the PCs themselves. Then, when they are in an appropriate location, they can "train", and get that potential XP converted to real XP.

Exactly. This would work very well, I think, since NWScript allows you to store integers and objects and such on any creature... such as the PC.

So you could very easily increment an integer on each PC in the party which is set on them in the Death event script of the creatures. Then when they go and talk to their trainer in town, his dialog can recognize that they have XP to assign, train them and then assign them all the XP they're due. A very interesting way of doing it.


Item Scripting:
Quote: Kring, if I understand what you're getting at then this might be a way to do it: When using the wand you set a variable to remember that the characters used it (in the wand's OnUse function). In the OnDeath of the creature you could check if this variable is set (i.e. if the wand was used) and then give out experience based on that.

The only thing I would comment on here is that the wand wouldn't have an OnUse() event... items can't carry scripts. You would have to detect that the player used the item with a script either in the module's OnItemActivate() event or in the creature's Damaged() or Death() script (who just damaged me and what are they using? Oh, they're using CHKN_DEATH_WAND01? Let's change their "U_Screwed_Ur_XP" local to 1, then).


Persistant Variables:
Another way of getting around variables not being transferred between modules is to give the PC what we call a 'quest item'... then have the next module check for the presence of that item on the PC and set the appropriate conditions out for them.

So if you want a romance to carry on between modules, the first time it happens the beautiful lady could bestow her favor (a silk scarf) upon the handsome PC. Said scarf is marked as a plot item, and its tag is looked for in the next module that the PC moves to (either via portal or whatever). If the beautiful lady made an appearance in that module, she would then treat the handsome PC appropriately.

Inventory Size:
Quote: Great info dave, but that wouldn't work very well if the inventory isn't very large. I know when I played BG/BGII I dropped items in chests along the way because they seemed useless at the time, how would we go about expressing the importance of these quest items?

The inventory is quite large. You can carry quite a bit. Of course, if you carry around 3 suits of armor, 5 weapons and half the crap you come across... well, yes, you're not going to have much room. :)

If my PnP players carried around that much, I'd have them ambushed by kobolds who steal most of it and leave them naked and screaming for mercy in the pits (like in that Slave Lords module... I just love that). But I know how computer gaming convention goes.

As for expressing the importance of said items? There's no way to force them not to drop it. Marking it as a plot item will prevent it from destroying itself eventually, at least... so the only way of conveying the importance of not dropping it is by telling the player, either covertly or overtly.

You could, for instance, say in the item description 'DO NOT LOSE THIS ITEM!'. Better yet, you could come up with a logical reason why said item was important to keep... after all, what's the beautiful lady supposed to think if you don't even hang onto her favor? Obviously you're not interested.

Undroppable Items:
Quote: Heh ... curse it and make it undroppable ... is that a word?

You can't set items to undroppable when they are on a PC. That state can only be set in the creature editor (in its inventory), it's not a state you apply to an item, itself.

Invisible Weightless Objects:
Quote: A *long* time ago, there was talk of IWO (Invisible Weightless Objects) that could be used as tags such as you describe. Is that still possible? Your tales of silk scarves makes me think either you've seen what Stan has tied to his bedposts, or that IWOs are non-existant as well.

I actually don't know if IWO's exist for inventory items. I doubt it... I think the IWO's that we have are invisible placeable objects (handy for placing scripts where you need them). If the player had some inventory slot taken up by an item he couldn't see or get rid of, well, that would be annoying.

There are several 'creature' slots (claw1, claw2, special attack, hide) that would exist on a PC but the PC couldn't access... I suppose it would be quite possible to stick an important plot item in there, so long as your scripting made sure it didn't get full and destroyed the item when it wasn't needed anymore.


Encrypted Items:
Quote: Well, if BioWare will give us a crypt() function, it would be possible to create an encrypted value for the item, much like a unix password, that is at least very difficult to crack, and would be unique, as it could be based on the PC's CD-key, or PC name, or whatever.

We *will* have crypto functions, won't we?

Hmmm... haven't seen anything relating to a crypt() function, so I don't think so. Don't quote me on that, however, as I don't know for sure either way.

If the other player knew both the proper name and appearance of the item AND gave it the right tag (which could be anything, really), then I doubt there's much you could do aside from catching it in his inventory before he brought the character into your game.

Races & XP:
There's no scripting method that I can see of telling the computer 'so-and-so needs X amount of XP to go to level 2 instead of Y amount... or to 'treat so-and-so as if they were actually this level with regards to XP'.

I suppose there might be some way of scripting a RewardXP() function in a #include script... that would be fairly complex if you wanted to be 100% accurate. It would probably be easier to have the function detect the subrace and apply a constant XP % deduction, instead.



Par Shinji le 8/3/2002 à 9:43:23 (#1082081)

C'est surtout intéressant pour ceux qui veulent créer des campagnes sans masteriser, en fait.
J'avoue que parfois j'ai du mal à comprendre le jargon "éditeur" :monstre:
Mais ça serait pareil en français...

Par Nexys le 9/3/2002 à 10:04:58 (#1087052)

Je ne peux pas tout traduire (pas le temps) mais voila le principal :

On pourra mettre un "ratio" d'experience, qui va s'ajuster sur toutes les créatures du module pour ne pas avoir à mettre l'experience donnée par chaque créature manuellement. Il sera toujours possible d'affecter de l'experience au coup par coup, et même de mettre le ratio à 0 pour ne pas mettre d'xp aux monstres, et eventuellement pour la mettre par scripts.

Je crois avoir compris qu'on pourra "accumuler" l'experience (en mettant la variable xp dans l'ordi et non le joueur) et en arrivant dans un lieu approprié (salle d'arme par exemple), faire un entrainement et transformer l'xp potentielle en vrai xp.


L'inventaire sera assez large, on pourra transporter un minimum (c'est normal, je ne vois pas l'interet de la news mais bon). Bien sûr si on porte 3 armures, 5 armes, on sera vite débordé...

Pour les objets important de quetes, il faut prévenir le joueur directement ou indirectement de garder l'objet, soit en le montrant par l'histoire (l'objet a l'air si important que le joueur n'a pas envie de le lacher) ou en mettant (NE PAS JETER) dans la description de l'objet ou en le rendant indroppable.

Justement pour les objets indroppable, on ne pourra pas faire d'objet "indroppable" en lui même. Il faudra seulement l'attacher à un joueur ou une créature, mais au moment même de la création de l'objet (c'est ce que j'ai cru comprendre). A nous de tourner l'histoire pour éviter que le joueur ne rammasse un objet, auquel cas il sera impossible de le rendre indroppable, mais plutot de faire que l'objet apparaisse dans son inventaire.

Il est question d'objet invisibles et qui ne pésent rien, servant de "balises" pour des scripts, et à placer dans l'inventaire, mais le sujet ne me parait pas clair

Une personne demande s'il serait possible de crypter un objet avec la fonction "crypt()", pour mettre un code dedans ou autre de façon hyperprotégée et impossible à cracker, et qu'un autre joueur possédant la clef pourrait voir (c'est peut-être pratique dans certaines situations)
Et le dev répond qu'il n'en a jamais entendu parler, mais qu'il ne faut pas le prendre à parti, il ne sait pas trop.


Je ne suis qu'un simple lycéen aveugle aux yeux de l'anglais profond mais ce petit débroussaillage vous sera utile j'espere. En attendant une traduc complète.

Par Caepolla le 9/3/2002 à 12:09:05 (#1087416)

Merci Nexys. ;)

Par tonton le grognon le 9/3/2002 à 13:14:46 (#1087723)

Provient du message de Nexys
...
Je crois avoir compris qu'on pourra "accumuler" l'experience (en mettant la variable xp dans l'ordi et non le joueur) et en arrivant dans un lieu approprié (salle d'arme par exemple), faire un entrainement et transformer l'xp potentielle en vrai xp....


pas tout a fait..
il dit qu'on pourra simuler cela par script relativement facilement..
et donc obliger les joueurs a aller voir un "maitre" pour avoir effectivement le gain de leurs experience plutot que de toucher des xps "des que ca tombe"... (d'ailleur je sens que je vais m'interresser a ca de pret des la sortie du jeu car cette methode est beaucoup plus proche des regles D&D plutot que celle du "tu touches tous de suite" al mmorpg...)

(legere difference par rapport aune fonction "toute faite" :) )

Par Oxayotl le 9/3/2002 à 14:47:13 (#1088150)

J'ai pas tout compris mais ca m'a l'air assez sympa tout ca... de plus et la j'ai vraiment rien compris au cryptage machin... non, j'ai rien pigé

Par Nexys le 10/3/2002 à 8:23:45 (#1092104)

Ben apparement quelqu'un demandait si on pouvait crypter un chiffre ou une phrase (code, enigme peut-être) de façon sécurisée, je ne sais pas trop si ça peut servir mais le gars avait entendu parler de cette fonction crypt() alors il demandait.
Mais de toute façon le dev n'a jamais vu ça !
;) :D

JOL Archives 1.0.1
@ JOL / JeuxOnLine