Howdy OtLand. I have a little problem with the Promotion part.
When i want to promote my Sorcerer for example, nothing happens, let me explain a little bit easier for you guys
BEFORE: 12:53 You see yourself (level 20) you are a sorcerer.
-----------------------------------------------------------------
Sture Den Lure: Hi.
King: Hello Sture Den Lure. I sell premium and promotion.
Sture Den Lure: Promotion.
King: Do you want to promote yourself for 20k?
Sture Den Lure: Yes.
King: Congratulations! You are now promoted.
-----------------------------------------------------------------
AFTER: 12:57 You see yourself (level 20) you are a sorcerer.
So after you have promoted yourself, nothing happens... but your 20k is gone and you wont be promoted.
Im using a 7.6.xml RL Map. So the newer scripts wont work, i will only get an error that tells me something like. "Calling A Nil Value".
Here is the Npc
Here is /data/npc/scripts/promote.lua
And when i run the server im keep getting this error.
Any clues how to fix it ?
Kind Regards
Your's
Challe92
When i want to promote my Sorcerer for example, nothing happens, let me explain a little bit easier for you guys
BEFORE: 12:53 You see yourself (level 20) you are a sorcerer.
-----------------------------------------------------------------
Sture Den Lure: Hi.
King: Hello Sture Den Lure. I sell premium and promotion.
Sture Den Lure: Promotion.
King: Do you want to promote yourself for 20k?
Sture Den Lure: Yes.
King: Congratulations! You are now promoted.
-----------------------------------------------------------------
AFTER: 12:57 You see yourself (level 20) you are a sorcerer.
So after you have promoted yourself, nothing happens... but your 20k is gone and you wont be promoted.
Im using a 7.6.xml RL Map. So the newer scripts wont work, i will only get an error that tells me something like. "Calling A Nil Value".
Here is the Npc
Code:
<?xml version="1.0"?>
<npc name="King" script="data/npc/scripts/promote.lua" access="3">
<look type="80" head="20" body="30" legs="40" feet="50"/>
</npc>
Here is /data/npc/scripts/promote.lua
Code:
local focus = 0
local talk_start = 0
local target = 0
local days = 0
function onThingMove(creature, thing, oldpos, oldstackpos)
end
function onCreatureAppear(creature)
end
function onCreatureDisappear(cid, pos)
if focus == cid then
selfSay('Good bye then.')
focus = 0
talk_start = 0
end
end
function onCreatureTurn(creature)
end
function msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end
function onCreatureSay(cid, type, msg)
msg = string.lower(msg)
if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
selfSay('Hello ' .. creatureGetName(cid) .. '! I sell premiums and promotions.')
focus = cid
talk_start = os.clock()
elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')
elseif focus == cid then
talk_start = os.clock()
if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then
if getPlayerVocation(cid) > 4 then
selfSay('Sorry, you are already promoted.')
talk_state = 0
elseif getPlayerLevel(cid) < 20 then
selfSay('Sorry, you need level 20 to buy promotion.')
talk_state = 0
elseif not isPremium(cid) then
selfSay('Sorry, you must be premium to buy promotion.')
talk_state = 0
else
selfSay('Do you want to buy promotion for 20k?')
talk_state = 1
end
elseif msgcontains(msg, 'premium') or msgcontains(msg, 'premmy') then
selfSay('Do you want to buy 7 days of premium for 7k?')
talk_state = 2
elseif talk_state == 1 then
if msgcontains(msg, 'yes') then
if pay(cid,20000) then
doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
selfSay('You are now promoted!')
else
selfSay('Sorry, you do not have enough money.')
end
end
talk_state = 0
elseif talk_state == 2 then
if msgcontains(msg, 'yes') then
if pay(cid,7000) then
selfSay('/premium '.. creatureGetName(cid) ..', 7')
selfSay('You have 7 days of premium more!')
else
selfSay('Sorry, you do not have enough money.')
end
end
talk_state = 0
elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
selfSay('Good bye, ' .. creatureGetName(cid) .. '!')
focus = 0
talk_start = 0
end
end
end
function onCreatureChangeOutfit(creature)
end
function onThink()
doNpcSetCreatureFocus(focus)
if (os.clock() - talk_start) > 30 then
if focus > 0 then
selfSay('Next Please...')
end
focus = 0
end
if focus ~= 0 then
if getDistanceToCreature(focus) > 5 then
selfSay('Good bye then.')
focus = 0
end
end
end
And when i run the server im keep getting this error.
Code:
NpcScript: onthink: lua error: data/npc/scripts/promote.lua:105: attempt to call global `doNpcSetCreatureFocus´ <a nil value>
Any clues how to fix it ?
Kind Regards
Your's
Challe92
Last edited: