Please login or register.

Login with username, password and session length
Advanced search  

News:

This forum provides RSS feed. To query recent posts use this url. More...


Author Topic: Milí vážení prosím  (Read 6185 times)

0 Members and 1 Guest are viewing this topic.

sorrow

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 109
    • View Profile
Milí vážení prosím
« on: August 25, 2013, 02:59:28 PM »

Prosím

#include "scripts\base.inc"

////////////////////////////////////////////////////////////////////////////////
on "LeftClick"
{
 
  actor.Talk("televizee");
}

////////////////////////////////////////////////////////////////////////////////
on "RightClick"
{
  actor.Talk("a jsme doma");
}

 Rád bych věděl kde je chyba
Napsal sem toto -- ve hře kliknu levým i pravým tlačítkem a houby nic se neděje?
Tak bych rád věděl co to je za chybu?

viz vytvořil jsem si nový projekt... chodící actor už ve scéně není
ale za to se neobjeví žádné psané slovo titulek nebo kdo ví nazvěte to jak chcete
Rád bych prostě kdyby když kliknu na script ve scéně tak aby to psalo to co má
a hloupě to nemlčelo

a prominte mi že to tu píšu už potřetí ale silně mi z toho hrabe....
a místo aby mě to začalo bavit začínám si připadat jako blázen...
protože bejt zaseklej na jedný věci to už nemá daleko do blázince
A pokud jsem tak omezenej že nelze rozpoznat s čím potřebuji pomoci napište mi prosím
co bych tu měl ještě uvést děkuji pokud se najde nějaký dobrák co mi pomůže vyřešit tenhle problém
« Last Edit: August 25, 2013, 03:03:53 PM by sorrow »
Logged

NAItReIN

  • Occasional poster
  • **
  • Karma: 1
  • Offline Offline
  • Posts: 69
    • View Profile
Re: Milí vážení prosím
« Reply #1 on: August 25, 2013, 11:22:36 PM »

Quote
viz vytvořil jsem si nový projekt... chodící actor už ve scéně není
ale za to se neobjeví žádné psané slovo titulek nebo kdo ví nazvěte to jak chcete

Tejto vete vôbec nerozumiem! Myslíš to tak, že actor vôbec nie je na scéne viditeľný pretože máš v skripte tento riadok kódu?
Code: WME Script
  1. actor.Active = false

Quote
Rád bych prostě kdyby když kliknu na script ve scéně tak aby to psalo to co má
a hloupě to nemlčelo

Môžeš to urobiť napríklad pomocou aktora a metódy Talk(), alebo si vytvoriť okno a prostredníctvom neho zobrazovať titulky, alebo si dať entitu... Možností máš viacej.
Logged

sorrow

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 109
    • View Profile
Re: Milí vážení prosím
« Reply #2 on: August 26, 2013, 04:57:47 PM »


Hare Krsna Ne ne mimochodem moc si vážím vaší odpovědi...
Prostě - kliknu na entitu ve scéně a ve hře to nic nevypíše.
ale script je v pořádku...tudíž bude chyba možná v tom že
sem to dělal v projektu adventury kde po kliknutí pravým tlačítkem myši ti vyjíždí menubox
kde vybíráš 3 možnosti.,,.. prozkoumat objekt ... komentář... a hovor
ale já to nechci chci aby tam byla pouze myš ve hře
a aby kliknu li levým tlačítkem myši aby to prostě napsalo to co jsem napsal do toho scriptu  který sem zde uvedl pokud píšu moc nesrozumitelně tak se omlouvám...
Logged

sorrow

  • Regular poster
  • ***
  • Karma: 0
  • Offline Offline
  • Posts: 109
    • View Profile
Re: Milí vážení prosím
« Reply #3 on: August 26, 2013, 05:04:44 PM »

#include "scripts\base.inc"
#include "scripts\keys.inc"

// store some of the game's attributes in global variables for convenience
Keyboard = Game.Keyboard;
Scene = Game.Scene;


// load the right-click menu
global WinMenu = Game.LoadWindow("interface\menu\menu.window");
WinMenu.Visible = false;

// load the "caption" window
var win = Game.LoadWindow("interface\system\caption.window");
global WinCaption = win.GetControl("caption");


global MenuObject = null;


// load our main actor
actor = Game.LoadActor("actors\molly\molly.actor");
Game.MainObject = actor;

// run the "game loop" script
Game.AttachScript("scripts\game_loop.script");


// which scene to load?
Game.ChangeScene(Game.StartupScene);



////////////////////////////////////////////////////////////////////////////////
on "LeftClick"
{
  // what did we click?
  var ActObj = Game.ActiveObject;
  if(ActObj!=null)
  {
    // clicking an inventory item
    if(ActObj.Type=="item" && Game.SelectedItem==null)
    {
      Game.SelectedItem = ActObj;
    }
    // using an inventory item on another object
    else if(Game.SelectedItem != null && Game.SelectedItem!=ActObj)
    {
      var Item = Game.SelectedItem;
      if(ActObj.CanHandleEvent(Item.Name)) ActObj.ApplyEvent(Item.Name);
      else if(Item.CanHandleEvent("default-use")) Item.ApplyEvent("default-use");
      else if(ActObj.CanHandleEvent("default-use")) ActObj.ApplyEvent("default-use");
      else actor.Talk("I can't use these things together.");
    }
    // just a simple click
    else ActObj.ApplyEvent("LeftClick");
  }
  // else propagate the LeftClick event to a scene
  else
  {
    Scene.ApplyEvent("LeftClick");
  }
}



////////////////////////////////////////////////////////////////////////////////
on "RightClick"
{
  // if inventory item selected? deselect it
  if (Game.SelectedItem != null){
    Game.SelectedItem = null;
    return;
  }

  var ActObj = Game.ActiveObject;

  // is the righ-click menu visible? hide it
  if(WinMenu.Visible == true) WinMenu.Visible = false;
  else if(ActObj!=null)
  {
    // if the clicked object can handle any of the "verbs", display the right-click menu
    if(ActObj.CanHandleEvent("Take") || ActObj.CanHandleEvent("Talk") || ActObj.CanHandleEvent("LookAt"))
    {
      // store the clicked object in a global variable MenuObject
      MenuObject = Game.ActiveObject;
      var Caption = WinMenu.GetControl("caption");
      Caption.Text = MenuObject.Caption;

      // adjust menu's position
      WinMenu.X = Game.MouseX - WinMenu.Width / 2;
      if(WinMenu.X < 0) WinMenu.X = 0;
      if(WinMenu.X+WinMenu.Width>Game.ScreenWidth) WinMenu.X = Game.ScreenWidth-WinMenu.Width;

      WinMenu.Y = Game.MouseY - WinMenu.Height / 2;
      if(WinMenu.Y<0) WinMenu.Y = 0;
      if(WinMenu.Y+WinMenu.Height>Game.ScreenHeight) WinMenu.Y = Game.ScreenHeight-WinMenu.Height;

      // and show the right-click menu
      WinMenu.Visible = true;

      // stop the actor from whatever he was going to do
      actor.Reset();
    }
    // no verbs supported, no menu is needed; just send the RightClick event to the object
    else ActObj.ApplyEvent("RightClick");
  }
}


////////////////////////////////////////////////////////////////////////////////
on "Keypress"
{
  // on Esc or F1 key
  if(Keyboard.KeyCode==VK_ESCAPE || Keyboard.KeyCode==VK_F1)
  {
    // load and display the main menu window
    WinCaption.Visible = false;
    var WinMainMenu = Game.LoadWindow("interface\system\mainmenu.window");
    WinMainMenu.Center();
    WinMainMenu.GoSystemExclusive();
    Game.UnloadObject(WinMainMenu);
  }
}


////////////////////////////////////////////////////////////////////////////////
on "QuitGame"
{
  // on Alt+F4 (window close)
  // load and display the quit confirmation window
  WinCaption.Visible = false;
  var WinQuit = Game.LoadWindow("interface\system\quit.window");
  WinQuit.Center();
  WinQuit.GoSystemExclusive();

  // and if the user selected Yes
  if(WinQuit.xResult)
  {
    // quit the game
    Game.QuitGame();
  }
  // otherwise just unload the quit window from memory
  else Game.UnloadObject(WinQuit);
}









prostě z toho odstranit podmínky.... prostě chci jednoduše aby kliknu li levým tlačítkem myši na object entity aby byl aktivní
a to samé kliknu li levým tlačítkem myši..... a nechci tam nechávat načítat nějakej menu box-
děkuji předem za váš čas a za pomoc
Logged

NAItReIN

  • Occasional poster
  • **
  • Karma: 1
  • Offline Offline
  • Posts: 69
    • View Profile
Re: Milí vážení prosím
« Reply #4 on: August 26, 2013, 06:39:51 PM »

Po dlhej sobe som späť. Zdrojový kód, ktorý si mi poslal nie je potrebné modifikovať! Pozrime sa na skript crates.script, ktorý sa nachádza v projekte WME Demo 3D.

Code: WME Script
  1. #include "scripts\base.inc"
  2.  
  3. // v game.script je podmienka na základe ktorej engine vie,
  4. // že má zobraziť okno s možnosťami LookAt, Talk, Take
  5.  
  6. on "LookAt"
  7. {
  8.   actor.GoToObject(this);
  9.   actor.Talk("Sorry, there are no crate puzzles in this demo.");
  10. }
  11.  
  12. on "Take"
  13. {
  14.   actor.GoToObject(this);
  15.   actor.Talk("Sorry, there are no crate puzzles in this demo.");
  16. }
  17.  
  18. // v game.script je podmienka na základe ktorej engine vie,
  19. // že keď nastane udalosť LeftClick alebo RightClick...
  20. on "LeftClick"
  21. {
  22.   actor.GoToObject(this);
  23.   actor.Talk("Sorry, there are no crate puzzles in this demo.");
  24. }
  25.  
  26. on "RightClick"
  27. {
  28.   actor.GoToObject(this);
  29.   actor.Talk("A stack of crates. An inevitable reguisite of any modern game.");
  30. }
« Last Edit: September 02, 2013, 06:23:07 PM by NAItReIN »
Logged

NAItReIN

  • Occasional poster
  • **
  • Karma: 1
  • Offline Offline
  • Posts: 69
    • View Profile
Re: Milí vážení prosím
« Reply #5 on: September 02, 2013, 06:46:24 PM »

Stále si myslím, že tvoj problém spočíva v niečom inom. Ako som už písal, je viacero spôsobov ako spraviť neviditeľného actora. Ja som to spravil cez entitu. Do game.script som pridal tento kúsok kódu:

Code: WME Script
  1. actor = Game.LoadEntity("entities\sorrow\sorrow.entity");
  2. Game.MainObject = actor;

Entita má iba jeden sprite a to je snímok, ktorý predstavuje ružová farba. Túto engine chápe ako priehladnú.

Nič iné nie je potrebné robiť a dostaneš to, čo potrebuješ (ak som správne pochopil tvoj problém).

Projekt WMEDemo3DSorrow si môžeš stiahnuť tu.


Logged
 

Page created in 0.101 seconds with 24 queries.