PenUltima Online

It is currently Fri Aug 29, 2008 2:34 pm

All times are UTC - 8 hours




Post new topic Reply to topic  [ 10 posts ] 
Author Message
 Post subject: Mining problem
PostPosted: Fri Jun 29, 2007 9:59 am 
Offline

Joined: Fri Jul 21, 2006 9:58 pm
Posts: 61
Hello!
I have an problem :
When i start digging for ore , script says me that is no more ore here to mine.
I 'll find where error is , but how to fix - dont know.

When i set diffi :=1 ; I'll start digging but character don't stop mining!

please help me!
thnx

Code:
var diffi := GetHarvestDifficulty( "ore", location.x, location.y, info.landtile );
  if(diffi == error)
  print("Error!");
    SendSysMessage(chr,"There is no more ore here to mine.");
    return 1;
  endif


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 29, 2007 8:48 pm 
Offline

Joined: Thu Feb 02, 2006 1:41 pm
Posts: 1118
Location: Southern Central USA
Is the return statement supposed to return a 1? If it's an error shouldn't it be:

Code:
var diffi := GetHarvestDifficulty( "ore", location.x, location.y, info.landtile );
  if(diffi == error)
  print("Error!");
    SendSysMessage(chr,"There is no more ore here to mine.");
    return 0;
  endif


Not knowing which scriptset you are using makes diagnosing this harder but usually on an error you return a zero.

_________________
Sincerely,
Yukiko

I know you think you understand what you thought I said but what you heard is not exactly what I meant.

Titus 2:13


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 29, 2007 10:25 pm 
Offline

Joined: Sat Feb 04, 2006 5:49 pm
Posts: 744
Location: Chicago, IL USA
try doing
Print(CStr(diffi));

usually the errortext will tell you exactly where the problem is.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 30, 2007 5:51 am 
Offline

Joined: Fri Jul 21, 2006 9:58 pm
Posts: 61
ok, i'll try...
Thnx


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 30, 2007 7:08 am 
Offline

Joined: Fri Jul 21, 2006 9:58 pm
Posts: 61
error{ errortext = "No resource-bearing landmark there" }
what i ave after adding Print(CStr(diffi));


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 30, 2007 7:17 am 
Offline

Joined: Fri Jul 21, 2006 9:58 pm
Posts: 61
Oretable is dict{ 856 -> dict{ 160 -> error{ errortext = "Invalid parameter type
. Expected param 0 as Integer, got Uninit" } } }
[ORE CORE MANAGER] started. PID = 6717

That i have after starting ORECORE.ecl


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 30, 2007 10:01 am 
Offline

Joined: Fri Jul 21, 2006 9:58 pm
Posts: 61
ok , i'll just recompile all my MUL files , player start mining , but only iron .
In console i have that strings .
Code:
Ore type found: error{ errortext = "Invalid parameter type.  Expected param 0 as
Integer, got Uninit" }
error{ errortext = "Invalid parameter type.  Expected param 0 as Integer, got Un
init" }


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 30, 2007 2:03 pm 
Offline

Joined: Sat Feb 04, 2006 5:49 pm
Posts: 744
Location: Chicago, IL USA
Parameters are 0 based so whatever function you're printing, check the first thing that you're passing to it. It wants an integer but its getting nothing at all.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 01, 2007 12:20 am 
Offline

Joined: Fri Jul 21, 2006 9:58 pm
Posts: 61
I 'll just find where error is :

Code:
function GenerateNewOreType(src)
print("SRC!!! -"+src);
Print("Generating new oretype !");
var rnum;
var skill := GetEffectiveSkill(src.source, 45);
var name :=src.name;
print(name);
If (!skill)
Print("Skill is "+skill);
endif

if((skill >= 1) && (skill <15))
rnum:=1;
elseif((skill >= 15) && (skill <20))
rnum:=2;
elseif((skill >= 20) && (skill <25))
rnum:=3;
elseif((skill >= 25) && (skill <30))
rnum:=4;
elseif((skill >= 30) && (skill <35))
rnum:=5;
elseif((skill >= 35) && (skill <40))
rnum:=6;
elseif((skill >= 40) && (skill <45))
rnum:=7;
elseif((skill >= 45) && (skill <50))
rnum:=8;
elseif((skill >= 50) && (skill <55))
rnum:=9;
elseif((skill >= 55) && (skill <60))
rnum:=10;
elseif((skill >= 60) && (skill <65))
rnum:=11;
elseif((skill >= 65) && (skill <70))
rnum:=12;
elseif((skill >= 70) && (skill <75))
rnum:=13;
elseif((skill >= 75) && (skill <80))
rnum:=14;
elseif((skill >= 80) && (skill <84))
rnum:=15;
elseif((skill >= 84) && (skill <88))
rnum:=16;
elseif((skill >= 88) && (skill <91))
rnum:=17;
elseif((skill >= 91) && (skill <94))
rnum:=18;
elseif((skill >= 94) && (skill <95))
rnum:=19;
elseif((skill >= 95) && (skill <97))
rnum:=20;
elseif((skill >= 97) && (skill <105))
rnum:=21;
elseif((skill >= 105) && (skill <120))
rnum:=22;
elseif((skill >= 120) && (skill <125))
rnum:=28;
elseif (skill>=130)
rnum:=30;
endif
Print("Rnum is "+rnum);
return(random(rnum)+1);

endfunction


when i call f-tion GetEffective skill , var SRC is /pkg/skills/mining/mining.src . So , i can't get Skill . How i must change script t get Effective Skill of player ?


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 01, 2007 12:58 am 
Offline

Joined: Fri Jul 21, 2006 9:58 pm
Posts: 61
I 'll just find answers for all my question .
may be it how's connected with 096 core .
I'll added to struct(in mining.src) that sended to ORECORE :
Code:
function GetOre(location,sk) //sk is character
  var x := location.x;
  var y := location.y;

  var proc:=GetGlobalProperty("#OreCorePointManagerPID");
  var pid:=getprocess(proc);

  var k := struct;
  k.+sk :=GetEffectiveskill(sk,45);
  k.+x := x;
  k.+y := y;
  k.+type := EVID_CHECK_SPOT;
  k.+source := getprocess(getpid());
  pid.sendevent(k);
  return wait_for_event(10);

endfunction


and in Orecore.src
Code:
function GenerateNewOreType(src)
print("SRC!!! -"+src);
Print("Generating new oretype !");
var rnum;
var skill := ev.sk; //that line


if((skill >= 1) && (skill <15))
rnum:=1;
elseif((skill >= 15) && (skill <20))
rnum:=2;
elseif((skill >= 20) && (skill <25))
rnum:=3;
elseif((skill >= 25) && (skill <30))
rnum:=4;
elseif((skill >= 30) && (skill <35))
rnum:=5;
elseif((skill >= 35) && (skill <40))
rnum:=6;
elseif((skill >= 40) && (skill <45))
rnum:=7;
elseif((skill >= 45) && (skill <50))
rnum:=8;
elseif((skill >= 50) && (skill <55))
rnum:=9;
elseif((skill >= 55) && (skill <60))
rnum:=10;
elseif((skill >= 60) && (skill <65))
rnum:=11;
elseif((skill >= 65) && (skill <70))
rnum:=12;
elseif((skill >= 70) && (skill <75))
rnum:=13;
elseif((skill >= 75) && (skill <80))
rnum:=14;
elseif((skill >= 80) && (skill <84))
rnum:=15;
elseif((skill >= 84) && (skill <88))
rnum:=16;
elseif((skill >= 88) && (skill <91))
rnum:=17;
elseif((skill >= 91) && (skill <94))
rnum:=18;
elseif((skill >= 94) && (skill <95))
rnum:=19;
elseif((skill >= 95) && (skill <97))
rnum:=20;
elseif((skill >= 97) && (skill <105))
rnum:=21;
elseif((skill >= 105) && (skill <120))
rnum:=22;
elseif((skill >= 120) && (skill <125))
rnum:=28;
elseif (skill>=130)
rnum:=30;
endif
Print("Rnum is "+rnum);
return(random(rnum)+1);

endfunction


Big THnx for all who helped to find answer of my problem


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC - 8 hours


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subice by phpBBservice.nl