object

Section Française de l'emulateur Dawn of light.

Moderators: Support Team, Other Language Team

object

Postby snoopydo » Wed Jul 23, 2014 7:09 pm

Bonjour dol,

j'aimerais créer un objet qui est attaquable et qui drop un item a sa mort.
est se possible?
si oui , puis je avoir les propriétés a utiliser svp?
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby snoopydo » Wed Jul 23, 2014 8:47 pm

re en faite je sais toujours pas si ca s'appele proprieté donc je vais dire comme en c++ (les fonctions)
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby snoopydo » Thu Jul 24, 2014 2:12 am

rebonjour, j'arrive vraiment pas a creer un objet qui peut etre attaqué et apres un certain timer a taper dessus , il droperait un item dans l'inventaire. pouvez vous m'aider un peu svp? :)
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby Graveen » Thu Jul 24, 2014 10:07 am

Y'en a... ca s'appelle une classe et c'est GameMovingObject

C'est un hybride Mob + Objet. Je ne sais plus s'il loot ou autre, mais ca en fait un objet attaquable.
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12660
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: object

Postby snoopydo » Thu Jul 24, 2014 2:20 pm

merci Graveen :)
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby snoopydo » Thu Jul 24, 2014 4:50 pm

bonjour dol :)

donc j'ai créé un objet attaquable et qui drop a sa mort. jusque la c'est presque parfait car maintenant, j'aimerais que cet objet ne soit attaquable que par une arme unique que j'aurais créé pour.
si vous pouvez me filer un coup de main ça serait parfait :p
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby snoopydo » Fri Jul 25, 2014 10:13 am

rebonjour,
je ne trouve pas svp aidez moi si vous le pouvez :p
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby snoopydo » Sat Jul 26, 2014 2:10 pm

bonjour dol,

mon probleme est resolu :)
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby Graveen » Sun Jul 27, 2014 11:00 am

Cool :) Ce serait bien de mettre comment tu as fais, ca peut aider voire même si c'est bien fait déboucher sur des modifs de DOL (je n'ai rien contre virtualiser certaines méthodes et les tester dans les ServerRules par exemple).
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12660
Joined: Fri Oct 19, 2007 9:22 pm
Location: France

Re: object

Postby snoopydo » Sun Jul 27, 2014 5:03 pm

Bonjour Graveen :)

Je veux bien partager avec toi car tu m'as aidé beaucoup ;)
le problème c'est que je partagerais pas ici car personne partage en gros a part des base de donnée bug a mort qui faut trois ans pour débugguer.
donc, soit je t'envoie ça par email . soit je suis joignable sur skype a bouba421@hotmail.be
soit tu trouve un autre moyen ...
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby HunabKu » Sun Jul 27, 2014 6:24 pm

Un code épuré démonstratif :
Code: Select all
namespace DOL.GS { public class MonObjet : GameMovingObject { public GamePlayer Player { get; set; } public override void TakeDamage(GameObject source, eDamageType damageType, int damageAmount, int criticalAmount) { if (IsAlive) { List<GameObject> attackerList; lock (this.Attackers) attackerList = new List<GameObject>(this.Attackers); foreach (GameObject obj in attackerList) { foreach (GamePlayer player in attackerList) { if (player.AttackWeapon.Model == 1658) { Health -= (damageAmount + criticalAmount); if (!IsAlive) { Health = 0; Die(source); } } else { player.Out.SendMessage("Vous ne pouvez attaquer cet objet qu'avec le Présent de Tartaros !", eChatType.CT_Staff, eChatLoc.CL_ChatWindow); } } } } } public override void Die(GameObject killer) { base.Die(killer); GamePlayer player = killer as GamePlayer; if (killer is GamePlayer) { Random rnd = new Random(); int nbre = rnd.Next(1, 10); if (nbre == 1) { player.Out.SendMessage("Vous obtenez une pièce rare !", eChatType.CT_Staff, eChatLoc.CL_ChatWindow); } if (nbre >= 2 && nbre <= 10) { player.Out.SendMessage("Vous obtenez " + nbre + " pièces rares !", eChatType.CT_Staff, eChatLoc.CL_ChatWindow); } for (int i = nbre; i >= 1; i--) { ReceiveItemSansMessage(this, "PieceRare"); } } base.Die(killer); StartRespawn(); } }
ReceiveItemSansMessage est une version modifiée de ReceiveItem afin de ne pas envoyer de message dans le chat, car je le gère moi même. Du coup il n'y a qu'un seul message de loot.

Pour plus de précision n'hésitez pas à me demander 8)
Last edited by HunabKu on Sun Jul 27, 2014 6:32 pm, edited 3 times in total.
"C'est l'ignorance qui apporte le chaos, pas la connaissance."
Scarlett Johansson dans "Lucy" de Luc Besson
-------------------------------------------------------------------------------
"Ignorance brings chaos, not knowledge."
Scarlett Johansson on "Lucy" by Luc Besson
User avatar
HunabKu
Developer
 
Posts: 1905
Joined: Sat Jun 18, 2011 4:48 am

Re: object

Postby snoopydo » Sun Jul 27, 2014 6:29 pm

Je veux bien une petite table ou deux française quand même ;)
snoopydo
DOL Freak
 
Posts: 578
Joined: Mon Jan 02, 2006 12:48 pm

Re: object

Postby Graveen » Tue Jul 29, 2014 10:12 pm

La section contribution est tellement pleine que je n'arrive pas à vérifier et committer tous les scripts.

DOL partage sans cesse ^^
Image
* pm me to contribute in Dawn of Light: code, database *
User avatar
Graveen
Project Leader
 
Posts: 12660
Joined: Fri Oct 19, 2007 9:22 pm
Location: France


Return to “%s” Français

Who is online

Users browsing this forum: No registered users and 1 guest