PenUltima Online Forum Index Official Core: 096.7
Official Core: 097 2008-02-26
Donate towards the POL web hosting bill!
 POL Home   FAQ   Search    Memberlist   Usergroups    Register    Profile   Log in to check your private messages   Log in
Mining problem

 
Post new topic   Reply to topic    PenUltima Online Forum Index -> General Help 096
Display posts from previous:   

Author Message
Nosferatu



Joined: 22 Jul 2006
Posts: 61

PostPosted: Fri Jun 29, 2007 1:59 pm    Post subject: Mining problem Reply with quote

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

Author Message
Yukiko



Joined: 02 Feb 2006
Posts: 1094
Location: Southern Central USA

PostPosted: Sat Jun 30, 2007 12:48 am    Post subject: Reply with quote

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.

Author Message
CWO



Joined: 04 Feb 2006
Posts: 691
Location: Chicago, IL USA

PostPosted: Sat Jun 30, 2007 2:25 am    Post subject: Reply with quote

try doing
Print(CStr(diffi));

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

Author Message
Nosferatu



Joined: 22 Jul 2006
Posts: 61

PostPosted: Sat Jun 30, 2007 9:51 am    Post subject: Reply with quote

ok, i'll try...
Thnx

Author Message
Nosferatu



Joined: 22 Jul 2006
Posts: 61

PostPosted: Sat Jun 30, 2007 11:08 am    Post subject: Reply with quote

error{ errortext = "No resource-bearing landmark there" }
what i ave after adding Print(CStr(diffi));

Author Message
Nosferatu



Joined: 22 Jul 2006
Posts: 61

PostPosted: Sat Jun 30, 2007 11:17 am    Post subject: Reply with quote

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

Author Message
Nosferatu



Joined: 22 Jul 2006
Posts: 61

PostPosted: Sat Jun 30, 2007 2:01 pm    Post subject: Reply with quote

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" }

Author Message
CWO



Joined: 04 Feb 2006
Posts: 691
Location: Chicago, IL USA

PostPosted: Sat Jun 30, 2007 6:03 pm    Post subject: Reply with quote

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.

Author Message
Nosferatu



Joined: 22 Jul 2006
Posts: 61

PostPosted: Sun Jul 01, 2007 4:20 am    Post subject: Reply with quote

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 ?

Author Message
Nosferatu



Joined: 22 Jul 2006
Posts: 61

PostPosted: Sun Jul 01, 2007 4:58 am    Post subject: Reply with quote

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

Post new topic   Reply to topic    PenUltima Online Forum Index -> General Help 096 All times are GMT - 4 Hours
Page 1 of 1

 




Powered by phpBB © 2001, 2005 phpBB Group :: Theme & Graphics by GHS & Scott E. Royalty