Identische Actions verhalten sich unterschiedlich

Posted By: NetStorm

Identische Actions verhalten sich unterschiedlich - 03/11/11 21:06

Hallo zusammen

Ich bin neu beim Gamestudio sowie im Forum und grad dabei ein kleines test-rpg zu basteln.

Ich habe da allerdings ein Problem mit zwei identischen Aktionen (bzw. zugehörigen Funktionen, das weis ich dann nicht so genau)

Ich habe ein Modell, dem die Aktion "Vase" zugewiesen ist, wenn ich dieses anklicke erscheint ein schlüssel und die Vase verschwindet. Soweit so gut, das funktioniert auch.
Ich habe aber jetzt eine ähnliche Funktion für den schlüssel, das er beim anklicken verschwindet, es tut sich aber rein gar nichts beim draufklicken und ich weiß nicht was ich falsch mache...

hier mal mein Code:
Code:
function doorkey_event()
{
  mouse_range = 50;
  if (event_type == EVENT_CLICK)
  { 
    ent_remove(me);
  }
}

action doorkey()
{ 
  my.emask = ENABLE_CLICK;
  my.event = doorkey_event;
}

function vase_event()
{
  mouse_range = 50;
  if (event_type == EVENT_CLICK)
  {
  ent_create("schluessel.mdl", vector(my.x, my.y, my.z +10), doorkey);
  ent_remove(me);
  }
}

action vase()
{ 
  my.emask = ENABLE_CLICK;
  my.event = vase_event;
}


hoffe irgendwer kann mir hierbei helfen.

danke schonmal laugh

Chris

Posted By: Ceryni

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 21:15

du hast enable touch statt click und rück den code bitte ein
Posted By: NetStorm

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 23:08

Hi

Nein, sorry, das war noch von einem anderen Test (hätte versucht ob ich überhaupt irgendeinen "event_type" zurück bekomme)...
ich editier das gleich mit dem "richtigen" Code
Posted By: Damocles_

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 23:14

nutzt immer das "code" tag, um code korrekt wiederzugeben.
nicht "quote"
Posted By: NetStorm

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 23:28

ok, danke für die Info, ist jetzt gefixt.

zurück zu meinem Problem laugh
sieht hier jemand einen Fehler?

Ich post auch noch den Code von der Hauptdatei:
Code:
///////////////////////////////
#include <acknex.h>
#include <default.c>
#include <mtlFX.c>
///////////////////////////////
var bDoorKey = 0; 

#include "functions.c"
#include "player.c"
#include "actions.c"

function main()
{
	video_mode = 8;
	video_depth = 32;
	video_screen = 2;
	mouse_mode = 4; 
	
	
	level_load("testgame.WMB");
	
	ent_create("vase.mdl", vector(30, 0, 6965), vase);
}


Posted By: Damocles_

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 23:42

es könnte an der Reihenfolge des codes liegen, versuch mal
die eventfunktionen als prototypen an den Anfang des codes zu setzen, noch vor main()

function vase_event();
function doorkey_event();



Posted By: Superku

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 23:45

Daran sollte es nicht liegen.

Du setzt in deinem Vasen-Event
mouse_range = 50;,
weshalb? Damit ist der Schlüssel wahrscheinlich nicht mehr in Klickreichweite.
Posted By: Damocles_

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 23:47

ja stimmt, die Mouse_range wird ja plötzlich verändert, nimm das mal raus
Posted By: NetStorm

Re: Identische Actions verhalten sich unterschiedlich - 03/11/11 23:54

Danke.
Leider keine Änderung frown
die Action und Function stehen allesamt in der actions.c, und die wird ja sowieso vor der Main() eingebunden.

Mich wundert dabei, dass beide Pärchen identisch sind, und die eine funktioniert, die andere nicht... ich kapiers einfach nicht.
hab gerade die action und function von "vase" kopiert und das wichtigste umgeschrieben... das tut einfach nichts smirk
kann es evtl. irgendwie mit dem modell zusammenhängen? (beide wurden eig. nur aus 2 bzw. 3 primitives _auf die schnelle_ zusammengeschustert)
Posted By: NetStorm

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 00:01

hoho, die mouse_range hat geholfen laugh

ich bekomme jetzt aber beim klick auf den schlüssl "Invalid call in event doorkey_event"
Posted By: NetStorm

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 00:07

hmm, wenn ich vor "ent_remove" (beim schlüssel) eine wait(1); Anweisung eintrage, funktioniert das auch... gibts dafür eine erklärung?
Posted By: Widi

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 00:31

Ja, gibt es. Schau im manual unter "event" nach. Warum liest hier niemand mehr das Manual?
Posted By: Superku

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 00:44

Funktionen, die weitere Events auslösen können, wie c_move, c_trace, ... und ent_remove, sind in Events im Allgemeinen nicht zulässig, da sie ein Einfrieren des Programms verursachen können, wenn sich Events gegenseitig durch jene Befehle unendlich oft aufrufen.
Dies wird durch ein wait(1); verhindert. Du solltest es dir aber besser angewöhnen, in Events nur Skills und Variablen zu ändern und die eigentlichen Befehle in der Entity-Aktion ausführen lassen. So macht es bspw. nichts, wenn das Event durch verschiedene andere Entities etliche Male pro Frame ausgeführt wird.
Posted By: Damocles_

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 01:14

Ich muß dazu sagen, daß ich noch nie ein Event benutzt habe.

Irgenwie mag ich das Konzept von Events nicht.
Das hat so was unberechenbares, denn ein Codebereich wird
dann nicht mehr von mir explizit aufgerufen.

Posted By: NetStorm

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 01:52

ok, gut zu wissen danke laugh

ich arbeite mich ja da durch tutorials durch und schau wie man das löst...
aber wie kann ich denn das in der action machen, das ich auf ein bestimmtes ereignis eingehe?
Posted By: Superku

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 02:01

Z.B. wie folgt:

Code:
function vase_event()
{
  if (event_type == EVENT_CLICK)
  {
     my.skill1 = 0;
  }
}

action vase()
{ 
  my.emask = ENABLE_CLICK;
  my.event = vase_event;

my.skill1 = 1;
while(my.skill1) { wait(1); }

 ent_create("schluessel.mdl", vector(my.x, my.y, my.z +10), doorkey);
  ent_remove(me);
}


Posted By: NetStorm

Re: Identische Actions verhalten sich unterschiedlich - 03/12/11 02:06

ok, super
danke für eure hilfe laugh hat mir sehr geholfen.
werde wohl noch öfter nachfragen müssen laugh
© 2024 lite-C Forums