您当前的位置:首页 > 其他技术 > 其他技术

千年脚本编写基本教程

本文出处:网游动力作者:本站发布时间:2008-12-30阅读次数:
下面先说一下变量

变量:每个脚本都会用到很多的变量,变量是用来暂时储存脚本反回的数据。千年脚本内的变量有 ‘全局变量’ 和  ‘局部变量’,使用最多的有两种数据类型。

String 字符串型   也就是文本型,反回的数据可以直接进行输出。

Integer 整型      大家可以把他理解为整数型,所反回的数据可以进行数学计算

所有在我们写脚本的时候有很多时候是要把这两种数据进行转换才能达到我们所要

想要的计算效果。

下面再说一下‘全局变量’ 和  ‘局部变量’。


全局变量:全局变量的定义在脚本的最前面, 整个脚本程序集中的每个子程序都可

          以调用本变量。如时间控制脚本和口令买卖脚本只就用到了很多的全局变量,下面

          我们看一个脚本。 
引用:
unit 在A杀死刷到B;

interface

function  GetToken (aStr, aToken, aSep : String) : String;
function  CompareStr (aStr1, aStr2 : String) : Boolean;
function  callfunc (aText: string): string;
procedure print (aText: string);
function  Random (aScope: integer): integer;
function  Length (aText: string): integer;
procedure Inc (aInt: integer);
procedure Dec (aInt: integer);
function  StrToInt (astr: string): integer;
function  IntToStr (aInt: integer): string;
procedure exit;

//以上为千年脚本的,脚本名和库函数,在以下的脚本说明中我们不再写。(每个都一样太烦琐^^)
procedure OnDie (aStr : String);
procedure OnTimer (aStr : String);
var
zt : String;                //这里的zt 就是一个文本型的全局变量。

implementation

//这样以下的两个子程序都可以对变量 zt进行赋值和 调用
procedure OnTimer (aStr : String);    //时间函数   本子程序每秒执行一次begin

if zt = then exit;    //语句 如果 变量zt =(空)
//[ 也就是说没有被赋值]  then  为真时  exit 关闭脚本(以下所有脚本都不再运行)

//如果以上判断不成立时执行本语句,就是说当变量zt被赋值后才可执行以下的语句

print (mapaddobjbyname monster 猪 500 500 1 0 false); 

print (say 猪在500_500);
zt := ;  
//在这里就是对全局变量进行了操作。

exit;
end;
end;

procedure OnDie (aStr : String);  //脚本函数   本子程序是在怪物死亡时执行begin
zt := 1;                        //本语句只是对变量进行了赋值关输出一段文本。
//因为zt的类型是 文本型 所以这里的  1 要加上 1 。
print (say 猪在B地图500_500);
exit;
end;
end;
end.
大家看到了,两个子程序 procedure OnTimer (aStr : String); 和procedure OnDie (aStr : String);

都可以对 变量zt进行操作,这就是全局变量最大的特点。大家一定要掌握全局变量的用法

的特点!这对以后写脚本有很大的用处。

局部变量:局部变量只能在相应的子程序内进行操作,其他子程序不能进行操作。 局部变量的特点是占用系统资源少,不容易发生变量冲突。上面的例子中没有存
               在局部变量。我们看一个例子。 
引用:
unit 老板娘;
interface

implementation

procedure OnLeftClick (aStr : String);
var
   Str : String;     //这里就是子程序OnLeftClick (aStr : String)   Race : Integer;   //的局部变量定义  str:字符串    race :整型
begin
   Str := callfunc (getsenderrace);   //对变量str进行赋值  [/color]//这句是什么意思呢? 就是 当被左鼠标键单击时 反回本动做操作者的种族//变量str = 反回 (操作者种族)//getsenderrace 将会反回一个字符串类型的数据
   Race := StrToInt (Str); //大家注意 这是数据格式转换,经常用的着的啊!//Race变量 整数型     StrToInt 将字符串类型数据的(str)转换为整数型

   if Race = 1 then begin    //判断 Race变量的值
//如果  Race 的值= 1 真 执行以下语句
      Str := showwindow .help老板娘.txt 1;   //再次给变量str赋值      print (Str);                               //输出变量   也就是执行str这个变量
      exit; 
   end; //如果结束,就是  if结束
end; //子程序结束   就是procedure OnLeftClick (aStr : String);判断结束
//如果 if Race = 1 then 判断不成立时 脚本将会直接执行这个end; 来结束子程序运行。请大家重点掌握脚本变量的定义 和脚本的脚本书写格式
*变量赋值说明 :Str : String; 字符串型   给字符串型变量直接赋值时要加上引号
               
               如Str := showwindow .help老板娘.txt 1;

                Race : Integer;  整型    可以直接进行赋值,但只能是整数,不能赋值为 文本或别的数据类型

               如  if Race = 1 then begin  可直接进行变量=1的判断  

               如果对 str(字符串类型) 进行判断就要        if str = 1 then begin 
引用:
procedure OnLeftClick (aStr : String);
var
   str : String;
begin
   str := callfunc (getsenderrace);
   if str = 1 then begin 
      str := showwindow .help老板娘.txt 1;
      print (str); 
      exit; 
   end;
end;
变量名由个人自行定义添加,只要定义好数据类型就可以了。也就是说以上的的 str 可是用 a , b , c, d 只要你知道

他是用来放什么数据的就可以了。

如: 
引用:
procedure OnLeftClick (aStr : String);
var
   a : String;
   b : Integer;
begin
   a := callfunc (getsenderrace);
   b := StrToInt (a); 
   if b = 1 then begin 
      a := showwindow .help老板娘.txt 1;
      print (a); 
      exit; 
   end;
end;
变量赋值请大家重点掌握!
看完后大家可以对“老板娘”脚本内的变量进行一下修改,然后看一下效果是不是一样

一,修改一下变量名

二,把对 种族 这个变量的判断修改为对 字符串型 数据进行判断看下效果


脚本就是要多做多看。服务端多的是脚本搞坏了再从别的端里复制个过来,如果你不敢去写,不敢修改,那永远学不会脚本!

要多看看别人的脚本,不要把共享的脚本拿出来的就用,要多看看别人是怎么写的,多学习别人的写法,这样慢慢你就会对