Page 2 sur 2
Re: Begin OnStartCombat / Begin On ?...
Posté : 25 janv. 2010, 17:15
par Karaiq
Oui, en effet, je me suis rendu compte de ça hier, sinon le joueur ne s'équipe pas automatiquement. Sauf qu'avec EquipItem, l'ordi plante dés que je suis équipé d'orcrum et que j'entre en combat... Sans l'ordi plante pas, mais le joueur ne s'équipe pas.. j'ai même demandé à Shadaoe de tester pour voir si le problème m'était propre mais non...
Edit :
Voici le script : (juste le bloc correspondant, pour l'instant j'ai viré le bloc avec les phrases, je fais un par un et les phrases j'ai pas tout à fait pigé vos moyens)
Code : Tout sélectionner
Begin GameMode
if player.GetEquipped Orcrum01 == 1
if player.IsInCombat == 1
player.removeitem Orcrum01 1
player.additem Orcrum02 ; j'ai essayé sans et avec l'additem et quand on fait sans, l'ordi plante pas mais on ne resoit pas d'Orcrum02
player.EquipeItem Orcrum02 1 ; 1 pour que le joueur ne puisse pas retirer Orcrum en combat.
Re: Begin OnStartCombat / Begin On ?...
Posté : 25 janv. 2010, 19:49
par Prechan
Je n'ai jamais fait de scripts avec EquipItem comme commande. Pourtant ton script semble correct...encore le tesc qui fait des siennes :0
Re: Begin OnStartCombat / Begin On ?...
Posté : 25 janv. 2010, 20:38
par beeratwork
Ton script est sur orcrum01 ou bien il est externe ? Sii c'est le script de orcrum01, regardes bien, tu vérifie si l'épée est en main pourqu'elle se retire toute seule avant d'ajouter un objet !
C'est délicat à gérer pour le TESC. Le mieux, c'est de faire un additem, suivit de l'equipitem puis d'un removeme
Donc fais ça dans en deux step pour bien découper.
Sinon, dans Sang Noir, par exemple, l'épée niv1 ajoute l'épée niv2 et l'épée niv2 retire toutes les éventuelles épées niv1 (celle qui a évolué + celles que le joueur pourrait avoir eu en trichant)
Re: Begin OnStartCombat / Begin On ?...
Posté : 25 janv. 2010, 21:35
par Karaiq
Hannn, quel boulette de viandelette je fais, c'est vrai que tu as raison beeratwork ! Si on relit mon script, qui est SUR Orcrum01, celui-ci retire orcrum01, qui n'est donc plus sur le joueur, et est censé ajouter après Orcrum02 et l'ajouter ! Bon ben je vais rectifier ça si je peux maintenant !
Edit :
Bon mon CS déconne, donc je mets un exemple de script que je pense mettre :
Code : Tout sélectionner
scn Orcrum01Script ; Script d'O.01
Begin GameMode
If player.GetEquipped Orcrum01 == 1 ; Si équipé O.01
If player.IsInCombat == 1 ; Si Combat
player.additem Orcrum02 1 ; Ajout d'O.02
player.EquipItem Orcrum02 1 ; Equip. d'O.02 obligatoire
Endif
Endif
End
Begin GameMode ; donc ici, normalement, on va retirer tous les Orcrum02 quand le joueur n'est pas en combat, a Orcrum01
If player.IsInCombat == 0 ; Si joueur pas en combat
If player.GetEquipped Orcrum01 == 1 ; Si le joueur est équipé d'O.01
player.removeItem Orcrum02 1 ; Virement d'O.02 !
Endif
Endif
End
Script d'O.02
Code : Tout sélectionner
scn Orcrum02Script
Begin GameMode
If player.IsInCOmbat == 0 ; Si joueur n'est pas en combat
If player.GetEquipped Orcrum02 == 1 ; Si le joueur est équipé d'O.02
player.additem Orcrum01 1 ; Ajout d'O.01
player.EquipItem Orcrum01 0 ; Equip. d'O.01 (là je ne sais pas si il faut mettre '0' parce que je veux que le joueur puisse se déséquiper d'O.01)
Endif
Endif
End
BEgin GameMode ; Ici on vire tous les O.01 si joueur en combat et si il est équipé d'O.02
If player.IsIncombat == 1 ; si joueur en combat
If player.GetEquipped Orcrum02 == 1 ; si joueur équipé d'O.02
player.removeItem Orcrum01 1 ; on retire O. 01
Endif
Endif
End
Et au fait, beeratwork, step, ça veut dire bloc ? (par bloc j'entend Begin -> End)
Re: Begin OnStartCombat / Begin On ?...
Posté : 26 janv. 2010, 07:54
par beeratwork
Par step j'entend la technique du step by step. Mais c'est inutile dans ce cas.
Tu aurais du dire que tu voulais faire une épée avec une forme de combat et une forme normale !
En combat, le joueur ne peut pas se déséquiper d'Orcrum02. Il faut qu'il ne se batte plus pour revenir à Orcrum01
Le script de la forme normale :
Code : Tout sélectionner
scn Orcrum01Script
; Orcrum01 = forme au repos
; Orcrum02 = forme de combat
short NbrOld
short RemoveOldForm
short LockChangeForm
Begin OnAdd player
; Retirer Orcrum02 si on vient d'en hériter Orcrum01
if (RemoveOldForm == 0)
set RemoveOldForm to 1
player.UnEquipItem Orcrum02 1
set NbrOld to player.GetItemCount Orcrum02
player.RemoveItem Orcrum02 NbrOld
player.EquipItem Orcrum01
endif
End
Begin GameMode
; Passage à Orcrum02
if (player.GetEquipped Orcrum01 == 1 && player.IsInCombat == 1 && LockChangeForm == 0)
set LockChangeForm to 1
player.additem Orcrum02 1
endif
End
Le script de la forme de combat :
Code : Tout sélectionner
scn Orcrum02Script
; Orcrum01 = forme au repos
; Orcrum02 = forme de combat
short NbrOld
short RemoveOldForm
short LockChangeForm
Begin OnAdd player
; Retirer Orcrum01 si on vient d'en hériter Orcrum02
if (RemoveOldForm == 0)
set RemoveOldForm to 1
set NbrOld to player.GetItemCount Orcrum01
player.RemoveItem Orcrum01 NbrOld
player.EquipItem Orcrum02 1
endif
End
Begin GameMode
; Passage à Orcrum01
if (player.GetEquipped Orcrum02 == 1 && player.IsInCombat == 0 && LockChangeForm == 0)
set LockChangeForm to 1
player.additem Orcrum01 1
endif
End
Re: Begin OnStartCombat / Begin On ?...
Posté : 26 janv. 2010, 17:45
par Karaiq
Oui, désolé de ne pas avoir précisé le but des scripts et donc d'Orcrum 01 et 02 !
Pour les scripts, merci beaucoup ! Je testerai ça demain soir ! Mon CS déconne trop sur mon ordi, à cause de Windows 7 je pense... Donc je tape les scripts tout propre dans le bloc note.
Edit :
Parfait ton script marche parfaitement beeratwork. Je me lance dans le script des paroles !