|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Quests::Q&A This is the quest support section |
 |
|
 |

08-13-2013, 07:47 PM
|
Hill Giant
|
|
Join Date: Sep 2008
Location: So. California
Posts: 219
|
|
Calls to function Lua
I see many of the new quest written in lua are using what looks like calls to other functions within functions, for example, in guktop, croc_spawns makes a call from event_spawn to croc_spawns();
I cant get this behavior to work on either my windows or linux boxes, here is my test quest I tried when I ran into trouble:
Code:
function event_spawn(e)
e.self:SetRunning(true);
e.self:Shout("HELLO!!!");
croc_spawn();
end
function event_say(e)
if(e.message:findi("hail")) then
e.self:Say("This works.");
end
end
function event_waypoint_arrive(e)
if(e.wp == 1) then
e.self:Shout("Im at waypoint 2!!");
end
end
function croc_spawn()
e.self:Shout("Hi there welcome to Kmart");
end
When mob spawns I get the initial shout, then croc_spawn is not processed, then when mob arrives at wp 1 I get the shout, also, if I put in an event such as a shout in the event_spawn AFTER calling for croc_spawn, that does not process either, so, how does this work? Assuming these are working on peq maybe im missing something in my setup??
|
 |
|
 |

08-13-2013, 07:53 PM
|
Dragon
|
|
Join Date: May 2010
Posts: 965
|
|
e does not exist in croc_spawn
You need to pass it if you are going to use it.
Code:
function event_spawn(e)
croc_spawn(e);
end
function croc_spawn(e)
e.self:Shout("hey!");
end
|
 |
|
 |

08-13-2013, 08:18 PM
|
Hill Giant
|
|
Join Date: Sep 2008
Location: So. California
Posts: 219
|
|
Thanks, that fixed this test script and my actual spawning script
Code:
-- abe the abandoned custom
function event_spawn(e)
e.self:SetRunning(true);
end
function event_say(e)
if(e.message:findi("hail")) then
e.self:Say("Lets just get this done.");
end
end
function event_waypoint_arrive(e)
if(e.wp == 1) then
eq.unique_spawn(98051,14,0,661.77,-1774.69,3.78,78.5); -- spawns dillon
elseif(e.wp == 2) then
e.self:Emote("runs up besides you");
e.self:SetRunning(false);
elseif(e.wp == 3) then
e.self:Emote("grabs a long bamboo pole from the hut.");
eq.signal(98036,1,5000);
elseif(e.wp == 4) then
e.self:Say("Ok, I'm going to use this stick to knock down the ripe fruit, be ready to pick up any that fall to the ground, only the ripe ones will fall.");
elseif(e.wp == 5 or e.wp == 7 or e.wp == 9) then
e.self:Emote(eq.ChooseRandom("bangs his bamboo stick against the branches in the upper part of the tree.","raises his stick into the branches"));
elseif(e.wp == 6) then
e.self:Say("I see a couple dropping now, grab them up!");
eq.create_ground_object(30619, 993.07, -1533.8, 34.59, 0, 30000);
eq.create_ground_object(30619, 999.44, -1567.8, 45, 0, 30000);
elseif(e.wp == 8 or e.wp == 10) then
Ground_Stuff(e);
end
end
function event_signal(e)
e.self:Say("Let's go.");
end
function Ground_Stuff(e)
local xloc = e.self:GetX();
local yloc = e.self:GetY();
local zloc = e.self:GetZ();
local RandomNumber = 0;
RandomNumber = math.random(100);
if(RandomNumber <=45) then
e.self:Say(eq.ChooseRandom("Nothing.","Hmm..","Oh well.","On to the next one.","Moving right along"));
elseif(RandomNumber > 45 and RandomNumber <= 75) then
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
elseif(RandomNumber > 75 and RandomNumber <= 90) then
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
elseif(RandomNumber > 90 and RandomNumber <= 95) then
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
elseif(RandomNumber > 95 and RandomNumber <= 98) then
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
elseif(RandomNumber > 98) then
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
eq.create_ground_object(30619,xloc + math.random(-20,20),yloc + math.random(-10,10),zloc+25,0,15000);
end
end
A blatant plagarism of existing quests, no credits intended for me..
Last edited by rencro; 08-13-2013 at 08:20 PM..
Reason: source comment
|
 |
|
 |
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 08:51 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |