Guten morgen,
die struct, und noch einige andere, werden innerhalb des loginprozesses an den client geschickt und erfüllen auf dem client mehrere funktionen, die auf clientseite allerdings alle kosmetischer natur sind und im spielbetrieb einfach traffic sparen sollen.
Diese ist in erster linie für die spielerinformation, die so schnell abrufbar sind, ohne das netz zu belasten. Der server schickt nur änderungen. So kann die castzeit differieren, abhängig von anderen werten wie z.b. einer thempowertung, die kosten können steigen oder fallen, abhängig vom lvl usw. Sie beinhaltet aber keinen schadenswert. Der ist reine serversache und wird so gehandhabt, wie du es vorschlägst - es wird nur die castID geschickt.
In meinem beispiel hatte ich einfach die nächst beste sendeanweisung reingebastelt.
Gedacht war das ganze in etwa so, wobei jetzt die komplette übertragung nach deinem beispiel mehr sinn macht als die einzel zu übertragen.
enet_send_data(_pl_faehigkeiten[arraywert],sizeof(pl_faehigkeiten),clienID);
um die bekannten fähigkeiten an den client zu übertragen.
Die pointer-arithmetik ist mir im groben vertraut, auch wenn ich zugeben muß, daß ich mit C in allen spielarten nicht viel anfangen kann. Ist alles viel zu umständlich *g
Ich sehe das mit dem fehler im manual auch so, was der grund für meine verwirrtheit ist. Zum anderen ist diese form der syntax, gerade für einstiger, völlig unverständlich. Ich habe z.b. structs mit weit über 200 einträgen. Wie würde das "+sizeof(var)" real aussehen, wenn ich den 175zigsten senden will? Ich denke, daß sollte dark_samurai nochmal überarbeiten. Selbst fortgeschrittene einsteiger haben bekanntermaßen probleme mit dem verständnis im bereich der strukturen und pointer. Ich denke auch, ich bin nicht der einzigste, der bei einer syntaxbeschreibung innerhalb einer anleitung erstmal davon ausgeht, daß der entwickler das fest vorgegeben hat. Experimente kosten bekanntlich eine unmenge an zeit.
Vielen dank auch für dein beispiel und die erklärungen unten. Da erkennt man recht gut, daß man die beschreibungen im manual doch recht flexibel betrachten sollte.