Graal Forums  

Go Back   Graal Forums > Development Forums > NPC Scripting
FAQ Members List Calendar Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 03-30-2007, 11:19 PM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Heres a sample of my coding, I'm extremely picky about the formatting.
PHP Code:
public function loadRefs(obj) {
  
temp.i;
  
temp.e;
  
temp.vars;
  
temp.count;
  
temp.ref;
  
  
vars obj.getVarNames();
  
count 0;
  for (
0vars.size(); ++) {
    if (
obj.(@ vars[i]).type() == 1) {
      if (
MudControl.isRefStr(obj.(@ vars[i]))) {
        
ref obj.(@ vars[i]);
        
obj.(@ vars[i]) = MudControl.parseRef(ref);
        
obj.(@ vars[i]).addRef(obj);
        
count ++;
      }
    }
    else if (
obj.(@ vars[i]).type() == 3) {
      for (
0obj.(@ vars[i]).size(); ++) {
        if (
obj.(@ vars[i])[e].type() == 1) {
          if (
MudControl.isRefStr(obj.(@ vars[i])[e])) {
            
ref obj.(@ vars[i])[e];
            
obj.(@ vars[i])[e] = MudControl.parseRef(ref);
            
obj.(@ vars[i])[e].addRef(obj);
            
count ++;
          }
        }
      }
    }
  }
  echo(
format("References Loaded (%s): %s %s"countobj.mudtypeobj.mudid));

__________________
Reply With Quote
  #2  
Old 03-30-2007, 11:20 PM
xXziroXx xXziroXx is offline
Master of Puppets
xXziroXx's Avatar
Join Date: May 2004
Location: Sweden
Posts: 5,288
xXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant future
Send a message via AIM to xXziroXx Send a message via MSN to xXziroXx
Quote:
Originally Posted by Inverness View Post
Heres a sample of my coding, I'm extremely picky about the formatting.
PHP Code:
public function loadRefs(obj) {
  
temp.i;
  
temp.e;
  
temp.vars;
  
temp.count;
  
temp.ref;
  
  
vars obj.getVarNames();
  
count 0;
  for (
0vars.size(); ++) {
    if (
obj.(@ vars[i]).type() == 1) {
      if (
this.isRefStr(obj.(@ vars[i]))) {
        
ref obj.(@ vars[i]);
        
obj.(@ vars[i]) = parseRef(ref);
        
obj.(@ vars[i]).addRef(obj);
        
count ++;
      }
    }
    else if (
obj.(@ vars[i]).type() == 3) {
      for (
0obj.(@ vars[i]).size(); ++) {
        if (
obj.(@ vars[i])[e].type() == 1) {
          if (
this.isRefStr(obj.(@ vars[i])[e])) {
            
ref obj.(@ vars[i])[e];
            
obj.(@ vars[i])[e] = parseRef(ref);
            
obj.(@ vars[i])[e].addRef(obj);
            
count ++;
          }
        }
      }
    }
  }
  echo(
format("References Loaded (%s): %s %s"countobj.mudtypeobj.mudid));

Your styling is practically the same as mine
__________________

"A delayed game is eventually good, but a rushed game is forever bad." - Shigeru Miyamoto
Reply With Quote
  #3  
Old 03-30-2007, 11:22 PM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Quote:
Originally Posted by xXziroXx View Post
Your styling is practically the same as mine


Note how I use temp variables. It is something I began doing only recently and it makes the script look much more organized rather than using temp. repeatedly before all the temp variable names.
__________________
Reply With Quote
  #4  
Old 03-30-2007, 11:25 PM
xXziroXx xXziroXx is offline
Master of Puppets
xXziroXx's Avatar
Join Date: May 2004
Location: Sweden
Posts: 5,288
xXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant futurexXziroXx has a brilliant future
Send a message via AIM to xXziroXx Send a message via MSN to xXziroXx
Quote:
Originally Posted by Inverness View Post


Note how I use temp variables. It is something I began doing only recently and it makes the script look much more organized rather than using temp. repeatedly before all the temp variable names.
I use temp variables all the time too!
__________________

"A delayed game is eventually good, but a rushed game is forever bad." - Shigeru Miyamoto
Reply With Quote
  #5  
Old 03-30-2007, 11:40 PM
Kristi Kristi is offline
Bowie's Deciple
Kristi's Avatar
Join Date: Dec 2003
Location: Boston, MA
Posts: 748
Kristi has a spectacular aura aboutKristi has a spectacular aura about
Send a message via AIM to Kristi Send a message via MSN to Kristi
Quote:
Originally Posted by Inverness View Post


Note how I use temp variables. It is something I began doing only recently and it makes the script look much more organized rather than using temp. repeatedly before all the temp variable names.
Um, you can't do that, when you say vars = something, you're actually assinging it to vars, not temp.vars
PHP Code:
function onCreated() {
  
temp.hello;
  
hello 2;
  
sendtorc("TEST:" temp.hello);
  
sendtorc("TEST2:" hello);

Yields the following:
The best idler is the (Server): TEST:
The best idler is the (Server): TEST2:2

note that temp.hello is still null. The only way to drop the temp is if the var was passed as a paremeter, it will take presedence over an already global var.

On another note, ziro, grey, and inver all have good styling imho
__________________
Reply With Quote
  #6  
Old 03-30-2007, 11:42 PM
Riot Riot is offline
Delteria Management
Join Date: Nov 2003
Location: Seminole County, Florida
Posts: 280
Riot is on a distinguished road
Quote:
Originally Posted by Kristi View Post
Um, you can't do that, when you say vars = something, you're actually assinging it to vars, not test vars

PHP Code:
function onCreated() {
  
temp.hello;
  
hello 2;
  
sendtorc("TEST:" temp.hello);
  
sendtorc("TEST2:" hello);

Yields the following:
The best idler is the (Server): TEST:
The best idler is the (Server): TEST2:2

note that temp.hello is still null.

On another note, ziro, grey, and inver all have good styling imho
I was about to comment on this too:
PHP Code:
function onCreated() {
  
temp.i;
  
  
34;
  echo(
"onCreated(): i =" SPC i SPC "temp.i=" SPC temp.i);
  
test();
  
  
this.setTimer(1);
}

function 
onTimeout() {
  echo(
"onTimeout(): i =" SPC i);
}

function 
test() {
  echo(
"test(): i =" SPC i);

Returns:
HTML Code:
onCreated(): i = 34 temp.i= 
test(): i = 34
onTimeout(): i = 34

Last edited by Riot; 03-30-2007 at 11:43 PM.. Reason: stupid word filter
Reply With Quote
  #7  
Old 03-30-2007, 11:21 PM
DrakilorP2P DrakilorP2P is offline
Registered User
DrakilorP2P's Avatar
Join Date: Apr 2006
Posts: 755
DrakilorP2P is just really niceDrakilorP2P is just really nice
A general guideline is to keep the formatting as similar to the rest of the project as possible. It might be a good idea to write a general guideline that all developers abide to.
Here's how the Angband source code is styled:
PHP Code:
written by Robert RuehlmannBen Harrison, and Gwidon SNaskrent

There are lots of things that are commonly considered good style 
for Angband codeThe Vanilla Angband source code is the general guideline.

Here are some of the "rules":

    * 
Don't use floating point calculations.
    * Don'
break savefile compatibility (if not absolutely necessary).
    * 
No C++ codeThat also means no '//' comments.
    * 
Put system dependent code between #ifdef xyz ... #endif /* xyz */ .
    
No "magic numbers". Use #defines. The #defines should be in defines.h rather than the source file, unless they're very local (such as dungeon generation parameters). 

And some code-style guidelines:

    * 
CommentscommentscommentsMulti-line comments should look like:

      
/*
       * A multi-line
       * comment.
       */

      
instead of:

      
/* A multi-line
       * comment */

    
Indentation with tabsBut generally avoid getting lines over 80 characters.
    * 
Put curly braces ('{''}'on an extra line with the same indentation level as the previous lineExample:

      if (
value == 0)
      {
          
do_something();
      }

    * 
Put empty lines between code-blocksExample:

      
/* Do something */
      
do_something();

      
/* Do something else */
      
do_something_else();

    * 
Spaces around the mathematicalcomparison, and assignment operators ('+''-''*''/''=''!=''==''>', ...).
    * 
Spaces between C-identifiers like 'if''while''for', and 'return' and the opening brackets ('if (foo)''while (bar)', ...).
    * 
No spaces between function names and brackets and between brackets and function arguments (function(12instead of function ( 1)).
    * If 
the precedence of operations is ambiguous then put brackets around themAlso try to insert parentheses whenever necessary for readabilityegaround (foo RF3_SOME_DEFINE). There is usually no ambiguity and no macro resolutionbut this is an aesthetic detail.
    * If 
function takes no arguments then it should be declared with a void argument list. Exampleint foo(voidinstead of int foo().
    * Function 
declaration and definition should look the same.
    * 
Don't assume that functions declared without a return type return int. Specify the type explicitly. Example: int foo(void) instead of foo(void). 
Reply With Quote
  #8  
Old 03-30-2007, 11:26 PM
Rapidwolve Rapidwolve is offline
Registered User
Join Date: Jul 2006
Posts: 1,241
Rapidwolve is an unknown quantity at this point
What does
PHP Code:
prefix.varname
do? Is there really a point to it? does it declare it or something
Reply With Quote
  #9  
Old 03-30-2007, 11:28 PM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Quote:
Originally Posted by Rapidwolve View Post
What does
PHP Code:
prefix.varname
do? Is there really a point to it? does it declare it or something
Yes, I use that for temp variables only, it declares the variable as a temp so it can be referenced without the use of temp.

When you have variables defined in function parameters they're declared as temp variables and you're able to reference them with or without the temp. before the variable name, this is the same idea.

I place all the temp declarations at the beginning so I know what all I'm using and can make notes for other people using it.
__________________
Reply With Quote
  #10  
Old 03-30-2007, 11:31 PM
cbk1994 cbk1994 is offline
the fake one
cbk1994's Avatar
Join Date: Mar 2003
Location: San Francisco
Posts: 10,718
cbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond reputecbk1994 has a reputation beyond repute
Send a message via AIM to cbk1994
Quote:
Originally Posted by Rapidwolve View Post
What does
PHP Code:
prefix.varname
do? Is there really a point to it? does it declare it or something
Declares the variable, so it's value is "" not NULL.
__________________
Reply With Quote
  #11  
Old 03-30-2007, 11:46 PM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Ah, no wonder I had that array problem that time, oh well, it can be easily be fixed.
PHP Code:
function onCreated() {
  
temp.rawr 0;
  
rawr 3;
  echo(
"1:" rawr);
  echo(
"2:" temp.rawr);

Returns 3 in both cases, problem solved.

Edit:
It doesn't look pretty anymore though
__________________
Reply With Quote
  #12  
Old 03-30-2007, 11:52 PM
Skyld Skyld is offline
Script-fu
Skyld's Avatar
Join Date: Jan 2002
Location: United Kingdom
Posts: 3,914
Skyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud of
Send a message via AIM to Skyld
Quote:
Originally Posted by Inverness View Post
Ah, no wonder I had that array problem that time, oh well, it can be easily be fixed.
PHP Code:
function onCreated() {
  
temp.rawr 0;
  
rawr 3;
  echo(
"1:" rawr);
  echo(
"2:" temp.rawr);

Returns 3 in both cases, problem solved.

Edit:
It doesn't look pretty anymore though
I'm not sure why you are trying to manage the variables anyway. The engine's meant to do that for you, and if your functions are structured sensibly, it should be obvious which variable names you are using.
__________________
Skyld
Reply With Quote
  #13  
Old 03-30-2007, 11:54 PM
napo_p2p napo_p2p is offline
oh snaps
napo_p2p's Avatar
Join Date: Sep 2003
Location: Pismo Beach, California
Posts: 2,118
napo_p2p has a spectacular aura aboutnapo_p2p has a spectacular aura about
Send a message via AIM to napo_p2p Send a message via MSN to napo_p2p
Quote:
Originally Posted by Skyld View Post
I'm not sure why you are trying to manage the variables anyway. The engine's meant to do that for you, and if your functions are structured sensibly, it should be obvious which variable names you are using.
I think it's more of a styling thing. So he doesn't have to write temp. all of the time.

EDIT:
Ding Ding Ding!
__________________
Scito hoc super omnia.
Haec vita est tua una sola.
Dum vita superest, utere maxime quoque puncto, momento, et hora quae habes.
Tempus neminem non manet.
Noli manere tempus.
Carpe Diem

Seize the Day.
Reply With Quote
  #14  
Old 03-30-2007, 11:53 PM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
Uh, I do this for the simple fact that I'm damn tired of typing temp. before every variable name, no other reason. I also like it better without temp., its more pretty like that. Also shortens the code in the long run.
__________________
Reply With Quote
  #15  
Old 03-30-2007, 11:54 PM
Skyld Skyld is offline
Script-fu
Skyld's Avatar
Join Date: Jan 2002
Location: United Kingdom
Posts: 3,914
Skyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud ofSkyld has much to be proud of
Send a message via AIM to Skyld
Quote:
Originally Posted by Inverness View Post
Uh, I do this for the simple fact that I'm damn tired of typing temp. before every variable name, no other reason. I also like it better without temp., its more pretty like that.
Hm, in my opinion, it is better to always prefix variables. That way, there is no confusion as to which scope you are working in.

I try to write my scripts for people who have to work with them as well as for myself.
__________________
Skyld
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 02:54 PM.


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