100 Skills pro Entity zu wenig!!

Posted By: miles

100 Skills pro Entity zu wenig!! - 03/13/07 20:00

Hallo,
wie ich ja mitbekommen habe kann ja jede Entity bis zu 100 Skills verwenden
Ich arbeite schon seit 1/2 Jahren an einem Tool und hab jetzt schon alle verbraucht. Gibt es da ne Möglichkeit mehr Skills pro Entity zu reservieren???

Bei einer Anzahl von 100 glaubt man viele zu haben doch letztendlich sind sie schnell weg wenn das Programm komplizierter oder größer wird!
(Übrigens hab ich auch für nur zwei Zustände auch alle Flags benutzt)

Danke im Voraus!
Posted By: fogman

Re: 100 Skills pro Entity zu wenig!! - 03/13/07 20:12

Ohne weiteres (via Plugin) geht das nicht.
Es gibt aber einen schmutzigen Trick, der funktionieren könnte:

Lass die Entity eine "Child" Entity erschaffen:

you = ent_create("dummy.mdl", my.x, null);

You sollte in der Aktion der Parent Entity also auf die Child Entity zeigen.
Nun kannst Du folgendes machen:

you.invisible = on;
you.passable = on;

Dann siehst Du die Child Entity nicht mehr und sie ist passabel.

Nun hast Du 100 Skills mehr.

you.skill10 = 123;

Nicht getestet!

edit: Zur Beachtung, falls Du ein MP Projekt hast:
"On multiplayer systems, it can take up to 0.5 seconds until the entity is created on all connected machines and the handle becomes valid."
Posted By: Scorpion

Re: 100 Skills pro Entity zu wenig!! - 03/13/07 20:18

@miles:
ich denke nicht, dass man wirklich 100 skills braucht...verwende wenn eben möglich interne variablen, dannwirst du sicher ne menge sparen...
Posted By: miles

Re: 100 Skills pro Entity zu wenig!! - 03/13/07 20:19

Danke für die schnelle Antwort.

ich werde das mal testen. und melde mich dann wieder
Posted By: miles

Re: 100 Skills pro Entity zu wenig!! - 03/13/07 20:22

Hallo Scorpion,

wenn aber jede entity individuell funktionen oder bestimmte Eigesschaften haben soll dann muss man Skills verwenden und glaub mir ich hab schon da variabeln werwendet wo ich nur konnte
Posted By: TWO

Re: 100 Skills pro Entity zu wenig!! - 03/13/07 21:26

Wie wärs mit arrays? Oder du könntest in C++ arbeiten; Gegen Bezahlung fertige ich übrigens auch solche kleineren Sachen an
Posted By: Uhrwerk

Re: 100 Skills pro Entity zu wenig!! - 03/14/07 00:04

Es gibt noch einen weiteren Trick. Wenn Du Variablen hast, die nur einen begrenzten Bereich haben (z.B. Du brauchst nur eine 16 Bit Integer Zahl) dann kannst Du einen Skill nehmen und darin zwei Variablen speichen. Guck mal im Handbuch unter den bitshifting Operatoren << und >> nach.

Der beste Rat, den ich Dir aber geben kann ist folgender: Überdenke dein Design. Wenn Du 100 Skills verbraucht hast, dann ist dein Projekt entweder aus dem Ruder gelaufen, oder aber sehr sehr ehrgeizig...
Posted By: piposlav

Re: 100 Skills pro Entity zu wenig!! - 03/14/07 07:15

Use database (GSADO plugin)
Posted By: Damocles

Re: 100 Skills pro Entity zu wenig!! - 03/18/07 16:48

100 Skills zu verbrauche heißt doch nicht aus dem ruder zu laufen....

Kleine Kikifax Template shooter brauchen sicher nicht 100 Skills,
aber wenn man komplexere Logig verwendet kommt man locker an die Grenzen
von 100 Skills, vor allem wenn man doppelnutzung von Skills vermeiden möchte.

Da 3dGS keine Möglichkeit bietet Strukts (erst in Lite C) oder Klassen zu verwenden,
ist man das die Entitiy skills angewiesen um einigermaßen eleganten Code zu haben.
Denn my.skillHealth ist eleganter zu verwenden, als irgend eine
referenz auf ein Array, (zB health=skillarray[my.idnumber*100+myhealth]; )

Ich denke auch das man die Skills ruhig weiter hochschrauben kann. Früher gab es zB nur
60 Skills, und es wurde auf 100 angehoben. Das hatte ja auch seinen Grund.
Posted By: HeelX

Re: 100 Skills pro Entity zu wenig!! - 03/18/07 17:04

Hm. Also wenn jede Entity an die 100 skills verwendet ist es sicherlich schön, wenn da ein paar mehr wären. Aber mal ehrlich: 90% aller entities verwenden gerade mal einen bruchteil davon (jetzt mal ganz grob gesagt) und da empfinde ich 100 skills sogar als Verschwendung von ressourcen. Und bitte jetzt nicht auf moderne Speicherbankkapazitäten hinweisen! Man muss ja nicht immer das Prinzip der Verschwendung ansetzen und ich weiß nicht wieso ich für ein asset was da nur so rumsteht hunderte von KB an ungenutzten Datenstrukturen verwenden soll. Wer wirklich mehr als 100 skills braucht, der sollte Gebrauch von angehängten dummy entities machen oder über eigene Datenstrukturen oder sowas. Dann schreibt man sich get'ter und set'ter funktionen usw. und dann ist das im code dann auch egal wie man das im Endeffekt löst.

Oder auf LiteC und A7 wechseln, dann hat der Schwachsinn auch ein Ende - obwohl sich an der Entity Datenstruktur eh nichts ändert. Aber man kann dann nach Belieben eigene Objekte erschaffen die dann den ganzen Kram storen.
Posted By: Damocles

Re: 100 Skills pro Entity zu wenig!! - 03/18/07 17:14

Wie gesagt, da C-Skript keinerlei Modernen Klassenstrukturen
unterstützt, muß man auf Entityskill als Hilfslösung umsteigen.

Workarounds kann man immer machen (arrays, Hilfsentity), aber eleganter wird es dadurch nicht
gerade.

Lite-C ist ja schön und gut, aber im Augenblick kann man es nur als Demo verwenden,
und wer weiß wann es fertig Rauskommt. Deswegen nutze ich es auch nicht zur Zeit.
Posted By: HeelX

Re: 100 Skills pro Entity zu wenig!! - 03/18/07 17:36

OOP hast du mit LiteC auch nicht. Also im Moment arbeite ich hauptsächlich an meinem game framework geschrieben in LiteC, von daher lässt sich die Version die im Moment aktuell ist, gut nutzen. Ich weiß ja nicht, ob du im Moment was anderes vorhast, zuviel arbeiten musst oder dein RTS erstmal nur auf Eis gelegt ist, aber wenn du wirklich vorhast erstmal nur rein trockene systematische Sachen zu machen, dann kannst du mit LiteC direkt anfangen. Für echte Spieleprogrammierung würde ich noch warten und crunchtime mit ner Sprache die in der beta ist? Iiieehhh.

Way offtopic mal wieder, also: nimm dummy entities! ^^
Posted By: Damocles

Re: 100 Skills pro Entity zu wenig!! - 03/18/07 17:53

Ich will ja nicht ein Projekt in Lite-C anfangen, und dann die Fertigstellung
von den wagen Aussagen über den Realease der Vollversion abhängig machen.
Das ist der Grund. Wenn man ein Projekt hat, was 2 Jahre braucht ist das was anderes.
Posted By: Puppeteer

Re: 100 Skills pro Entity zu wenig!! - 03/19/07 13:44

Stimmt schon, aber da du mehr brauchst:
nimm ne var wie das skill heißen soll:
var my_health[9999999];//für jede entity

jetzt definierst du ein Skill namens ID
define id,skill1;

dann sorgst du beim start des spiels dafür dass jede entity eine eigene ID hat:
var vergebene_IDs=0;

in der Action ganz am Anfang:
my.ID=vergebene_IDs;
vergebene_IDs+=1;

so jetzt kannst du beliebig viele Skills haben.

So fragst du sie ab:
my_health[my.ID]

Beispiel:
if(my_health[my.ID]==0)
{
my_health[my.ID]=60;
}

Grüße
Omega
© 2024 lite-C Forums