Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   Bug Report (https://forums.graalonline.com/forums/forumdisplay.php?f=193)
-   -   Windows v6 beta test (https://forums.graalonline.com/forums/showthread.php?t=134257598)

Tigairius 01-15-2011 07:35 AM

Made some large changes to the playerlist on Login 2.

Now profile windows will open at the center of your screen, likewise for PM windows and history.

Your Playerlist will save position now too if you have alwayson checked, so if you open it and move it to a certain spot on your screen, then when you log back into Graal, it'll open in that location. If anyone has any issues, please let me know.

Note: These features are only available on Login 2.

Mark Sir Link 01-16-2011 01:20 AM

On testbed, Personal/Mark_Sir_Link/GUITEST

On v5, using this style and changing the font in the profile is working just fine.

http://img834.imageshack.us/img834/1...1295133596.png

On v6, it is replacing the font with something else that doesn't appear to be in the window's blind skin nor is it my default font.

http://img141.imageshack.us/img141/5...1295133197.png

Happening to Jacob_Bald6225 also.

overridestylefont appears to work but isn't allowing the font color to be changed

Admins 01-16-2011 04:38 PM

It's using the font color defined in the wba file (Personality, ActiveTextR/G/B). You can set the profile.overridestylefont to override the font type, or set style = "" or "none" or so to get rid of the wba stuff in a sub-control.

Hmmm the window position things aren't working at all for me on login2, just seeing some windows shifting positions and the playerlist always appear at {0,0}

xXziroXx 01-16-2011 08:58 PM

PHP Code:

File downloadguigames_arcmessage2.png (size10128done
File download
guiblue_scroll_noback.png (size2543done
File download
loginserver_en.po not found
File download
login_gradient_blue.png (size309done
File download
graalv4title.png (size32000)...
File downloadgraalv4title.png (size64000)...
File downloadgraalv4title.png (size83319)...
File downloadgraalv4title.png (size83319doneFile downloadguigames_arcmessage2.png (size10128done
File download
verdanabd.ttf not found
File download
graalicon_big.png (size322done
File download
microsoft sans serif.ttf not found
File download
guiblue_scroll_noback.png (size2543done 

I get this every single time I open v6, it's rather annoying to download the same files over and over.

Also, and this is a bug that's been around on v5 for ages as well, when all the downloads are done it doesn't close down the window, and forces you to do it on your own. Which is annoying to say the least.

xXziroXx 01-16-2011 09:06 PM

Also, if you press Alt (without any modifier) in the main Graal window or an external one, the game freezes completely.

Skyld 01-16-2011 09:25 PM

Quote:

Originally Posted by xXziroXx (Post 1623238)
Also, if you press Alt (without any modifier) in the main Graal window or an external one, the game freezes completely.

I think that is because it is technically selecting the "window menu" (I am guessing if you press Alt and then when it is frozen press the down key, you will see the window menu appear).

xXziroXx 01-16-2011 10:00 PM

Quote:

Originally Posted by Skyld (Post 1623244)
I think that is because it is technically selecting the "window menu" (I am guessing if you press Alt and then when it is frozen press the down key, you will see the window menu appear).

Yeah, I know that much, was just hoping for it to be disabled somehow since the window menu doesn't really do much for Graal.

Skyld 01-16-2011 11:35 PM

Quote:

Originally Posted by xXziroXx (Post 1623253)
Yeah, I know that much, was just hoping for it to be disabled somehow since the window menu doesn't really do much for Graal.

This is probably more a Windows restriction I am guessing.

TSAdmin 01-17-2011 04:00 AM

Quote:

Originally Posted by Skyld (Post 1623284)
This is probably more a Windows restriction I am guessing.

I'm pretty sure it is. If there are no in-window menus available, it treats the ALT key as though you clicked the program icon in the top left of the title bar, which brings up the default "Move, Close, Resize," etc menu. I don't think programs themselves can disable that function. Google Chrome completely removed the title text and icon at the top of their window, yet you can still click that top left corner and achieve the same results.

-Ramirez- 01-17-2011 05:33 AM

Quote:

Originally Posted by Skyld (Post 1623284)
This is probably more a Windows restriction I am guessing.

It's a restriction of the rendering loop being in the same thread as the Windows message loop. I highly doubt Stefan is going to go through the potential multi-threading headaches to resolve this.

Crow 01-21-2011 06:29 PM

Quote:

Originally Posted by oo_jazz_oo (Post 1618886)
Just discovered something.

Now, I don't know much about particle emitters and stuff, but I found a problem with the snowfall on UN.

Basically, the script has the particle image changing every .5 seconds, so it changed the image for each new snowflake.
On v5, changing the image of the particle would only change it for new particles...

On v6, it is changing the image for every particle, ones already created, and new ones.

Not sure if this is a glitch, or if it was a glitch in v5.
The script changing the image of said particle is:
PHP Code:

findimg(200).emitter.particle.image temp.newimg


Quote:

Originally Posted by Stefan (Post 1620266)
It's an optimization, if you have only one particle template and only simple modifiers then it will try to draw all particles at once instead of drawing it one by one. You could eventually use several particle templates (emitter.particletypes = 2, emitter.particles[1].image = ...).

I don't think that using several particle types is a good solution to the problem your optimization creates. Consider an emitter for controlled text particles, each particle supposed to have a different text. How would you do that? Doesn't work quite as easy anymore with v6, does it?

fowlplay4 01-21-2011 11:10 PM

Quote:

Originally Posted by Crow (Post 1624634)
I don't think that using several particle types is a good solution to the problem your optimization creates. Consider an emitter for controlled text particles, each particle supposed to have a different text. How would you do that? Doesn't work quite as easy anymore with v6, does it?

The way I see the particle system (or how I use it), it's for situations where you don't want to devote a loop to display an effect. I.e: Sparkle-trail attached to player.

For what jazz is doing on UN he should only have to declare X~ types of particles and assign each particletype/snowflake a different image. I.e:

PHP Code:

emitter.particletypes 4;
for (
temp.0temp.emitter.particletypestemp.i++) {
  
emitter.particles[temp.i].image "snowflake_" temp.".png";


No need to constant loop and change the images every .5 second.

Could also just set continueafterdestroy to true, and destroy (hideimg) the particle image then re-create it with new values and none would be the wiser unless there's noticeable performance loss.

Crow 01-22-2011 05:51 PM

Well, currently, I have an emitter with a single particle type which emits text (which is always different) as a particle whenever certain conditions are met. The particle count can jump pretty high, too, so there's lotsa text sometimes. I can't really do that with multiple particle types, since I don't want to create a ton of them. With v5 it works just fine, changing the emitter.particle attributes before emitting the next particle. Using v6, all particles update when changing the attributes :(

Edit: Code example:
PHP Code:

//#CLIENTSIDE
function onCreated() {
  
with (findImg(200)) {
    
layer 6;
    
    
with (emitter) {
      
nrofparticles 1;
      
emitautomatically false;
      
      
with (particle) {
        
style "br";
        
zoom  0.9;
        
        
font "Arial";
        
textshadow  true;
        
shadowcolor = { 00};
        
        
speed 0;
        
lifetime 1;
      }
      
      
addLocalModifier("range"01"y""add", -48, -48);
      
addLocalModifier("range"0.51"alpha""add", -2, -2);
    }
  }
}

// called by something
function onStuff(s) {
  
findImg(200).emitter.particle.text s;
  
findImg(200).emitter.emit();



fowlplay4 01-22-2011 06:19 PM

Perhaps a emitter.particle.unique is in order to deal with those conditions.

Crow 01-22-2011 07:36 PM

Quote:

Originally Posted by fowlplay4 (Post 1624861)
Perhaps a emitter.particle.unique is in order to deal with those conditions.

Sounds good. Stefan, would you kindly implement this, please? :3

Tigairius 01-22-2011 07:48 PM

Stefan did that on purpose for efficiency. On kingdoms iphone we have to create a new object each time we want new text basically. After about 30 objects or so, modulus back to 0.

Crow 01-22-2011 08:24 PM

Quote:

Originally Posted by Tigairius (Post 1624875)
Stefan did that on purpose for efficiency. On kingdoms iphone we have to create a new object each time we want new text basically. After about 30 objects or so, modulus back to 0.

I know he did. The behavior should be optional, though. I also asked him personally about it, and he replied that it shouldn't even do that with text particles or something like that. He also said I should try two particle types and setting both vars the same, for that would eliminate his optimization, but that didn't work either.

Admins 01-26-2011 12:08 AM

Ok next version will have emitter.particle.uniqueparticle = true/false, will be released this weekend or so.

Crow 01-26-2011 06:03 PM

Quote:

Originally Posted by Stefan (Post 1625536)
Ok next version will have emitter.particle.uniqueparticle = true/false, will be released this weekend or so.

Thank you <3

Fulg0reSama 01-26-2011 06:44 PM

Quote:

Originally Posted by Stefan (Post 1625536)
Ok next version will have emitter.particle.uniqueparticle = true/false, will be released this weekend or so.

I got a friend to tell bout this.

Geno 01-26-2011 10:48 PM

graal runs on my netbook when using V6.

the last version would not run...so

Thanks! :)

MrOmega 01-27-2011 01:19 AM

Here's an issue I'm having. I'm using GraalControl.onMouseDown() and call a function from within side this. Now within this function I call another and same again in the next function. The params in getDist() are always the params of onMouseDown(), not the ones I send.
PHP Code:

function GraalControl.onMouseDown()
{

  
doActions();

}

function 
doActions()
{

  
someFunction();

}

function 
someFunction()
{

  
temp.dist getDistplayer.xtemp.nx);

}

function 
getDisttemp.x1temp.x2temp.y1temp.y2)
{

  if ( 
params.size() == 4)
    return (((( 
temp.x2 temp.x1) ^ 2) + (( temp.y2 temp.y1) ^ 2)) ^ 0.5);

  if ( 
params.size() == 2)
    return ((( 
temp.x2 temp.x1) ^ 2) ^ 0.5);



Basically in getDist the params are that of onMouseDown() regardless.

cbk1994 01-27-2011 01:45 AM

Quote:

Originally Posted by MrOmega (Post 1625806)
Basically in getDist the params are that of onMouseDown() regardless.

This is intentional. You have to give the parameters names. Stefan explained it somewhere but I can't find the post.

EDIT:
Quote:

Originally Posted by Stefan (Post 1463493)
The params[] array is only created when the script is called (doesn't even need to be a function, GS1 style). That is either on an event, or when you call a function of another object. To get a variable number of parameters either use func(arg1, arg2, arg3, arg4 etc) and ignore the arguments that you don't want, or pass the parameters as array.

Currently accessing the parameters for each function as array is not possible because it would mean a big speed slowdown, although if it's really important to have it then we could add something like temp.functionparams[] which dynamically converts the function parameters to variables.


fowlplay4 01-27-2011 01:50 AM

Quote:

Originally Posted by MrOmega (Post 1625806)
Here's an issue I'm having. I'm using GraalControl.onMouseDown() and call a function from within side this. Now within this function I call another and same again in the next function. The params in getDist() are always the params of onMouseDown(), not the ones I send.

Basically in getDist the params are that of onMouseDown() regardless.

Provide an actual working script (especially in Bug Reports) with some output if you want to help get the issue resolved.

Edit: So it's intentional.

PHP Code:

//#CLIENTSIDE

function onCreated() {
  echo(
"== Created ==");
  
getSomevalue(12);
}

function 
GraalControl.onMouseDown() {
  echo(
"== Clicked ==");
  echo(
"MouseDown: " params);
  
somefunction();
  
this.scheduleevent(1"CheckParams""");
}

function 
onCheckParams() {
  echo(
"check: " params);
}

function 
somefunction() {
  echo(
"somefunction: " params);
  
someotherfunction();
}

function 
someotherfunction() {
  echo(
"someotherfunction: " params);
  
temp.getsomething getSomevalue(12);
}

function 
getSomevalue() {
  echo(
"getsomevalue: " params);
  echo(
"getsomevalue params: " a SPC b SPC c SPC d);


echos..

PHP Code:

== Created ==
getsomevalue
getsomevalue params0 10  
== Clicked ==
MouseDown0,414,540,1,0
somefunction
0,414,540,1,0
someotherfunction
0,414,540,1,0
getsomevalue
0,414,540,1,0
getsomevalue params
0 10  
check
""

My advice, don't rely on the params array when you can specify parameters in the function. In your case just add a second function.

cbk1994 01-27-2011 02:29 AM

Quote:

Originally Posted by MrOmega (Post 1625806)
PHP Code:

  if ( params.size() == 2)
    return ((( 
temp.x2 temp.x1) ^ 2) ^ 0.5);




On second look at your code... lol?

MrOmega 01-27-2011 02:49 AM

Quote:

Originally Posted by cbk1994 (Post 1625814)
On second look at your code... lol?

What? It checks to see if it's getting the dist from two points or just the xdist/ydist. 4 params means its getting it from two actual points...

cbk1994 01-27-2011 02:52 AM

Quote:

Originally Posted by MrOmega (Post 1625818)
What? It checks to see if it's getting the dist from two points or just the xdist/ydist. 4 params means its getting it from two actual points...

You don't see anything wrong with:

http://u.graalcenter.org/i/lolwtff.gif

?

MrOmega 01-27-2011 02:55 AM

Quote:

Originally Posted by cbk1994 (Post 1625821)
You don't see anything wrong with:

http://u.graalcenter.org/i/lolwtff.gif

?

Well when you put it in that view I do. But it basically acts as abs(); I could do abs( temp.x2 - temp.x1);

@fowlplay4:
What do you mean add a second function...

Why can't I just recreate the params array when I call a function?

fowlplay4 01-27-2011 03:14 AM

Quote:

Originally Posted by MrOmega (Post 1625823)
Well when you put it in that view I do.

@fowlplay4:
What do you mean add a second function...

Why can't I just recreate the params array when I call a function?

You have complete control over what data you pass to it, instead of checking for how many parameters you pass to a certain function, write a function to take exactly how many parameters you need.

I.e:

PHP Code:

function getDist2(temp.x1temp.x2) {
  
// code for just two points here



WhiteDragon 01-27-2011 03:19 AM

Alternatively, write an n-dimensional distance function that accepts an array of tuples.

MrOmega 01-27-2011 03:20 AM

Quote:

Originally Posted by fowlplay4 (Post 1625827)
You have complete control over what data you pass to it, instead of checking for how many parameters you pass to a certain function, write a function to take exactly how many parameters you need.

I.e:

PHP Code:

function getDist2(temp.x1temp.x2) {
  
// code for just two points here



I kinda did that to save lines, but I get ya. I still have the whole problem of not being able to send the correct param array

cbk1994 01-27-2011 04:06 AM

Quote:

Originally Posted by MrOmega (Post 1625831)
I kinda did that to save lines, but I get ya. I still have the whole problem of not being able to send the correct param array

Saving lines is almost never an excuse in programming. Do it the way that makes the most sense.

Admins 01-30-2011 10:37 PM

A new v6 beta version (v5.317) has been released for Windows at http://www.graalonline.com/downloads...al_windows.zip:
- fixed some problems with gani script initialization (onPlayerEnters when re-entering a level)
- fixed update problems of gui graphics with grids
- for avoiding problems with the new particle engine you can specify emitter.particle.uniqueparticle = true; which will disable the optimized rendering and allow different text and images for each particle

ffcmike 01-30-2011 10:57 PM

The issue where on-screen/layer over 3 displays from level NPCs being hidden when the parent npc is off screen which was (seemingly) previously fixed has returned.

A potentially big problem I've noticed with this latest version is that the clientside dir variables of npcs are -sometimes- not setting properly for all npcs within an entire level which is happening within each npc onCreated, I have no idea why though, it's only happening some of the time, I reconnect and enter these levels again and they work fine, can't really find a common condition for it to occur.

Freezing bug for when closing the client is still occuring, any information on such things like specs that could possibly be of interest?

Also may want to remove the ":" from the end of the downlink link ;).

Admins 02-03-2011 12:22 AM

Anyone experienced problems or has questions about the latest Windows release?

When pressing escape in fullscreen mode it will switch back to window mode (like on Mac). This is scripted so we could change it if it's not wanted.

ffcmike 02-03-2011 04:00 AM

Quote:

Originally Posted by ffcmike (Post 1626811)
A potentially big problem I've noticed with this latest version is that the clientside dir variables of npcs are -sometimes- not setting properly for all npcs within an entire level which is happening within each npc onCreated, I have no idea why though, it's only happening some of the time, I reconnect and enter these levels again and they work fine, can't really find a common condition for it to occur.

After further testing I've realised this is happening as a result of rapidly entering a level for the first time and then exiting, which ofcourse is a well known cause of problems, this specific problem doesn't occur in previous versions however, plus I always have the script as "this.dir" so with the correct scope.

Also not related to V6 but I think you may need to take a look at this:
http://forums.graalonline.com/forums...21#post1627521

MrOmega 02-04-2011 12:31 AM

When ever you show an image that hasn't been uploaded to the server it give you the correct error in the log 'File download: foo.png not found'. Then when you do upload the file to server, it doesn't bother to try to download it. Reopening Graal fixes this though.

fowlplay4 02-04-2011 12:52 AM

Quote:

Originally Posted by MrOmega (Post 1627604)
When ever you show an image that hasn't been uploaded to the server it give you the correct error in the log 'File download: foo.png not found'. Then when you do upload the file to server, it doesn't bother to try to download it. Reopening Graal fixes this though.

Could probably be fixed with a script like this. My function names are off though but the main idea is there.

PHP Code:

function onLevelFileUpdated() {
  
temp.filename extractfilename(params[0]);
  for (
aallplayersa.triggerclient(this.nametemp.filename);
}

//#CLIENTSIDE
function onLogMessage() {
  if (
logmessage.starts("File download: ")) {
    
this.failed.add(filename);
  }
}

function 
onActionClientSide() {
  if (
params[0] == "fileuploaded") {
    if (
params[1in this.failed) {
      
downloadfile(params[1]);
      
this.failed.remove(params[1]);
    }
  }


or something similar if it's really that big of issue.

MrOmega 02-04-2011 12:58 AM

Quote:

Originally Posted by fowlplay4 (Post 1627609)
Could probably be fixed with a script like this. My function names are off though but the main idea is there.

PHP Code:

function onLevelFileUpdated() {
  
temp.filename extractfilename(params[0]);
  for (
aallplayersa.triggerclient(this.nametemp.filename);
}

//#CLIENTSIDE
function onLogMessage() {
  if (
logmessage.starts("File download: ")) {
    
this.failed.add(filename);
  }
}

function 
onActionClientSide() {
  if (
params[0] == "fileuploaded") {
    if (
params[1in this.failed) {
      
downloadfile(params[1]);
      
this.failed.remove(params[1]);
    }
  }


or something similar if it's really that big of issue.

That is basically the worked around I'm using, just would like to see the game not give up and never try again. xP

SlikRick 02-05-2011 10:14 PM

I don't know if anybody has reported this, but I don't feel like reading through 59 pages.

No matter what server I am on I am getting lag spurts. I'll be running around, even within the same level, and all of a sudden the client will freeze up for a couple of seconds and it is rather annoying.


All times are GMT +2. The time now is 02:31 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.