ok, danke für die gedanken und vorschläge, werde mich mal weiter daran probieren :)
aber vielen dank schomal
aber vielen dank schomal
sonen quatsch du weißt schon das || <- oder heißt also nix mit prevMID rausnehmenQuote:
Machs so...
Denn: Stell dir vor du siehst nur ein monster. Es bewegt sich, sagen wir es hat die ID 123.
Und da bewegt es sicher wieder! aber was ist? es wird nicht gerechnet. Warum? Weil die gleiche ID sich bewegt. Also rausdamit.
2. Fall.
Es gibt 2 Mobs.
Eins bewegt sich mit x5 y4.
Das zweite bewegt sich nun mit x5 y-3.
Huch, die x5 sind gleich. Es wird wieder nichts gerechnet.
=> Speicher für jedes Mob den vorherigen schritt, nicht für alle allgemein.
... Mehr tips geb ich nicht ;]
p.s.
3. Fall:
2 Mobs vorhanden.
1. Mob bewegt sich mit x5 y4.
2. mit ---------------- x3 y4.
Das ist nicht derselbe schritt, aber er würde nach dem obigen code nich berechnet werden. also mach aus dem || ein && .
Also sodass prevx und prevy gleich sein müssen, damits nich berechnet wird.
hoffe das reicht... sonst schreib mir ne PN...
ja y hat sich verändert also speichert er es. Ändert sich X Y oder MobMID dann speichert er es ab -.-Quote:
Eins bewegt sich mit x5 y4.
Das zweite bewegt sich nun mit x5 y-3.
Quote:
wenn wir schon beim thema mobs und so sind - mal ne frage - ich habe hin und wieder absolut absurde id x und y werte - kommt das bei euch auch manchmal vor?
[rede von 0x32]
hat jmd da schon mal so ne analyse gemacht wie blood letztens gepostet hat? - wenn ja gabs ne veränderung?
ich werde es gleich mal probieren - aber naja wollte nur hören ob ihr auch hin und wieder komische werte über 9999 habt
signed char x,y;
memcpy((void*)&(x),(void*)((DWORD)buf2+3+4),1);
memcpy((void*)&(y),(void*)((DWORD)buf2+3+4+1),1);
if(lastMoveId!=id || lastMoveX != x || lastMoveY != y)
{
if(debug==0) { printf("Mob move, change:ID:%d x%d y%d\n",id,x,y); }
lastMoveX=x;
lastMoveY=y;
lastMoveId=id;
mob[i].pos.X+= lastMoveX;
mob[i].pos.Y+= lastMoveY;
}
else { if(debug==1) {printf("dropped: ID:%d x%d y%d\n",id,x,y); } }
if ((Mob[i].X > 10000)&&(Mob[i].Y > 10000)&&(Mob[i].X < 100000000)&&(Mob[i].Y < 100000000)&&(Mob[i].MID > 100000)&&(Mob[i].MID < 100000000))
{
jojo aber naja ist halt uncool - ich werde mal was anderes probierenQuote:
borsti probiers mal mit
so habe ich es also bei der schleife wo er monster suchtPHP Code:if ((Mob[i].X > 10000)&&(Mob[i].Y > 10000)&&(Mob[i].X < 100000000)&&(Mob[i].Y < 100000000)&&(Mob[i].MID > 100000)&&(Mob[i].MID < 100000000))
{