VB/VB.Net Topic Question

  • Auteur de la discussion Anonymous
  • Date de début
A

Anonymous

Invité
#1
Bonsoir,

aujourd'hui j'ai quelque questions à poser du coup je vais faire un seul topic.

Alors mes Question:

1) Comment trouver les Coordonnées X ; Y à partir de la cellid sur une map.

On m'a donné cette technique mais elle ne marche pas chez moi:
X = (cellId Mod 14) + cellId / 28
Y = (cellid Mod 14) - cellid / 28

2) Voila alors j'ai une variable
Public Map as new list(of MapPointeger)
Je fais:
Map.add()

Je sais que c'est du basic mais c'est la première fois que j'essaye de faire sa.
Je cherche a remplir certaine variable de la class correspondante.
Comment faire ?

Bonne soirée
 
A

Anonymous

Invité
#2
Pour ta question 1 tu confondrais pas mapid et cellid ?
 
A

Anonymous

Invité
#3
Pas du tout...
J'ai dit que je voulais obtenir ma position XY sur la map a partir de ma cellid pour mon pathfinding.
 
A

Anonymous

Invité
#4
1 - Cherche dans les sources du jeux (partie pathfinding), tu trouvera comment initialiser ta matrice ( et donc les positions )

2 -
MaList.Add(New Maclass(param1, param2, ...)) a condition que tu ai fais tes constructeur, sinon tu devras set les properties de ta class avant de l'ajouter à ta list
 
A

Anonymous

Invité
#5
Merci Max j'ai une autre question, quand une erreur apparait dans fenetre de sortie, J'aimerais afficher l'erreur dans la fenetre des logs, comment faire ? Je ne trouve pas sur msdn
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#6
au lieu de console.writeline(xxxxxxxxxx) log.append(xxxxxxxxxxx)
 
A

Anonymous

Invité
#7
Ahh je suis bête je pensais que c'était le programme qui mettait tout seul l'erreur dans la fenêtre de sortie, en fait c'est le parseur^^
 
A

Anonymous

Invité
#8
Moi c'est peut-être un peu "bourrin" comme technique mais je fais une boucle for (int i = 0; i < cellId.Count; i++) et à chaque case j'ajoute 1 à x et 0,07 à y (1/14 = 0,07 car 14 case en largeur). Et quand x = 14 je le remet à 1 (car on commence la ligne suivante).

EDIT : le nombre exact c'est pas 0,07 hein, moi j'ai pris 0.07142857142857142857142857142857 (dans un decimal)
 
A

Anonymous

Invité
#9
J'ai pas compris ta technique...
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#10
cette technique ' X = (cellId Mod 14) + cellId / 28 Y = (cellid Mod 14) - cellid / 28' est aussi une bonne façon de faire.
 
A

Anonymous

Invité
#11
tifoux a dit:
cette technique ' X = (cellId Mod 14) + cellId / 28 Y = (cellid Mod 14) - cellid / 28' est aussi une bonne façon de faire.
Je savais que je me compliquais la vie :lol: !
(Je n'ai pas essayé cette technique)
 
A

Anonymous

Invité
#12
Moi elle ne marche pas chez moi, du coup je me suis compliqué la vie mais j'ai quand meme reussi.
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#13
lolodu92 a dit:
Moi elle ne marche pas chez moi, du coup je me suis compliqué la vie mais j'ai quand meme reussi.
Tu a fais comment pour calculer ton x, y ?
 
A

Anonymous

Invité
#14
J'ai fait un programme qui m'a fait mon code tout seul, un truc de ce genre.
For i = 0 to 13
if i = cellid then
end if
next
 
A

Anonymous

Invité
#15
Bonsoir,

j'ai up mon topic question car j'aurais besoin de la liste des ids des position de l'inventaire.
J'en ai besoin pour déplacer des objets dans mon inventaires avec ObjectSetPositionMessage.
Je ne sais pas ou je peux les trouver...

public function serializeAs_ObjectSetPositionMessage(param1 As DofusWriter)

if (me.objectUID < 0)

Console.Writeline("Forbidden value (" + me.objectUID + ") on element objectUID.")
}
param1.writeInt(me.objectUID)
param1.writeByte(me.position)
if (me.quantity < 0)

Console.Writeline("Forbidden value (" + me.quantity + ") on element quantity.")
}
param1.writeInt(me.quantity)
return me
end function

Une idée ?
 
Inscrit
29 Septembre 2011
Messages
393
Reactions
3
#16
Ta essayer de faire une ListViewer avec deux colums une pour le nom de l'objet et l'autre leur position et tu pourra s'avoir les différente position.
je ne pense pas que les positions des objets change.
 
A

Anonymous

Invité
#17
J'ai essaye avec mon hl pour avoir les position mais mon inventaire est trop renpli, le parseur ne prend pas les trop grod packet.
 
A

Anonymous

Invité
#18
Bonsoir,

j'ai avancé, voilà ma progression :
0|Amulette
1|????
2|Anneau
3|Ceinture
4|Anneau 2
5|Chaussure
6|Chapeau
7|Cape
63|Inventaire
Il me manque l'emplacement du CAC et du familier.
Une question, ce que ne change pas d'un compte à l'autre c'est l'id ou l'uid ?
 
A

Anonymous

Invité
#19
C'est bon j'ai tout les ids, voilà la liste pour ceux que sa intéresse:
0|Amulette
1|CAC
2|Anneau
3|Ceinture
4|Anneau 2
5|Chaussure
6|Chapeau
7|Cape
8|Familier
63|Inventaire
 
A

Anonymous

Invité
#20
Bonsoir,

j'ai une dernière question pour finaliser ma fonction familier, comment connaitre l'heure et le jour ou un familier à mangé ?
dans InventoryContentMessage, et sa sous class : ObjectItem, il y a une variable effects. Je suppose que c'est celle-ci.
Mais comment l'utiliser ? Il y a juste un integer : actionId.
 
Haut Bas