• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Guild master

MUTANO

New Member
Joined
Jan 10, 2009
Messages
39
Reaction score
2
Location
Brazil - Santa Catarina
The NPC Guild Master, as everyone knows, was dismissed to enter the commands: !Createguild,!Joinguild etc..
I wonder if anyone has knowledge of a Guild Master working in TFS 0.3.6, version 8.54, or you can do it.

Thank you :)
 
Hers a OLDSCHOOL guild.lua. it probably works. i dont know.

guild.lua
Code:
local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false
local talk_state = 0
local gstat = 0		-- guild status
local grank = ''		-- guild rank
local gname = ''		-- guild name
local cname = ''		-- name of player who talks to us
local pname = ''		-- name of some other player
local maxnamelen = 30
local maxranklen = 20
local maxnicklen = 20
local leaderlevel = 50
local NONE = 0
local INVITED = 1
local MEMBER = 2
local VICE = 3
local LEADER = 4
local allow_pattern = '^[a-zA-Z0-9 -]+$'

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)
  	cname = creatureGetName(cid)

  	if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then
  		selfSay('Hello ' .. cname .. '! How can I help you?')
  		talk_state = 0
  		focus = cid
  		talk_start = os.clock()

	elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
  		selfSay('Sorry, ' .. cname .. '! I talk to you in a minute.')

  	elseif msgcontains(msg, 'bye') and (focus == cid) and getDistanceToCreature(cid) < 4 then
  			selfSay('Good bye, ' .. cname .. '!')
  			talk_state = 0
  			focus = 0
  			talk_start = 0

  	elseif focus == cid then
  		if talk_state == 0 then
  			msg = string.lower(msg)

			if msgcontains(msg, 'found') then	-- found a new guild
  				level = getPlayerLevel(cid)

  				if level >= leaderlevel then
  					gstat = getPlayerGuildStatus(cname)

  					if gstat == NONE or gstat == INVITED then
  						selfSay('What name your guild should have?')
  						talk_state = 1
  					elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
  						selfSay('Sorry, you are member of a guild.')
  						talk_state = 0
  					end
  				else
  					selfSay('Sorry, you need level ' .. leaderlevel .. ' to found a guild.')
  				end

  				talk_start = os.clock()

  			elseif msgcontains(msg, 'join')  then	-- join a guild when invited
  				gstat = getPlayerGuildStatus(cname)

  				if gstat == NONE then
  					selfSay('Sorry, you are not invited to any guild.')
  					talk_state = 0
  				elseif gstat == INVITED then
  					gname = getPlayerGuildName(cname)
  					selfSay('Do you want to join ' .. gname .. '?')
  					talk_state = 3
  				elseif gstat == MEMBER or gstat == VICE or gstat == LEADER then
  					selfSay('Sorry, you are a member of a guild.')
  					talk_state = 0
  				end

  				talk_start = os.clock()

  			elseif msgcontains(msg, 'exclude') or msgcontains(msg, 'kick') then		-- kick player from a guild
  				gstat = getPlayerGuildStatus(cname)

  				if gstat == VICE or gstat == LEADER then
  					selfSay('Who do you want to kick today?')
  					talk_state = 4
  				else
  					selfSay('Sorry, only leader and vice-leaders can kick players from a guild.')
  					talk_state = 0
  				end

  				talk_start = os.clock()

  			elseif msgcontains(msg, 'invite') then		-- invite player to a guild
  				gstat = getPlayerGuildStatus(cname)

  				if gstat == VICE or gstat == LEADER then
  					selfSay('Who do you want to invite to your guild?')
  					talk_state = 5
  				else
  					selfSay('Sorry, only leader and vice-leaders can invite players to a guild.')
  					talk_state = 0
  				end

  				talk_start = os.clock()

  			elseif msgcontains(msg, 'leave') then		-- leave a guild
  				gstat = getPlayerGuildStatus(cname)

  				if gstat == NONE or gstat == INVITED then
  					selfSay('You are not in a guild.')
  					talk_state = 0
  				elseif gstat == MEMBER or gstat == VICE then
  					gname = getPlayerGuildName(cname)
  					selfSay('Do you want to leave ' .. gname .. '?')
  					talk_state = 7
  				elseif gstat == LEADER then
  					selfSay('You are a leader of a guild. If you leave, no one can invite new players. Are you sure?')
  					talk_state = 7
  				end

  			elseif msgcontains(msg, 'pass') then		-- pass leadership
  				gstat = getPlayerGuildStatus(cname)

  				if gstat == LEADER then
  					selfSay('Who do you want to be a new leader?')
  					talk_state = 8
  				else
  					selfSay('Sorry, only leader can resign from his position.')
  					talk_state = 0
  				end

  			elseif msgcontains(msg, 'vice') then		-- set vice leader
  				gstat = getPlayerGuildStatus(cname)

				if gstat == LEADER then
					selfSay('Which member do you want to promote to vice-leader?')
  					talk_state = 9
  				else
  					selfSay('Sorry, only leader can promote member to vice-leader.')
  					talk_state = 0
  				end

  			elseif msgcontains(msg, 'member') then		-- remove vice-leader
  				gstat = getPlayerGuildStatus(cname)

  				if gstat == LEADER then
  					selfSay('Which vice-leader do you want to demote to regular member?')
  					talk_state = 10
  				else
  					selfSay('Sorry, only leader can demote vice-leaders to members.')
  					talk_state = 0
  				end

  			elseif msgcontains(msg, 'nick') or msgcontains(msg, 'title') then	-- set nick
  				gstat = getPlayerGuildStatus(cname);

  				if gstat == LEADER then
  					selfSay('Whom player do you want to change nick?')
  					talk_state = 11
  				else
  					selfSay('Sorry, only leader can change nicks.')
  					talk_state = 0
  				end
  			end

  		else	-- talk_state != 0
  			talk_start = os.clock()

  			if talk_state == 1 then		-- get name of new guild
  				gname = msg

  				if string.len(gname) <= maxnamelen then
 					if string.find(gname, allow_pattern) then
 						if foundNewGuild(gname) == 0 then
							selfSay('Sorry, there is already a guild with that name.')
 							talk_state = 0
 						else
 							selfSay('And what rank do you wish to have?')
 							talk_state = 2
 						end
 					else
 						selfSay('Sorry, guild name contains illegal characters.')
 						talk_state = 0
 					end
  				else
  					selfSay('Sorry, guild name cannot be longer than ' .. maxnamelen .. ' characters.')
  					talk_state = 0
  				end

  			elseif talk_state == 2 then		-- get rank of leader
  				grank = msg

  				if string.len(grank) <= maxranklen then
 					if string.find(grank, allow_pattern) then
 						setPlayerGuild(cname,LEADER,grank,gname)
 						selfSay('You are now leader of your new guild.')
 						talk_state = 0
 					else
						selfSay('Sorry, rank name contains illegal characters.')
 						talk_state = 0
 					end
  				else
  					selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
  					talk_state = 0
  				end

  			elseif talk_state == 3 then		-- join a guild
  				if msg == 'yes' then
  					setPlayerGuildStatus(cname, MEMBER)
  					selfSay('You are now member of a guild.')
  					talk_state = 0
  				else
  					selfSay('What else can I do for you?')
  					talk_state = 0
  				end

  			elseif talk_state == 4 then		-- kick player
  				pname = msg
  				gname = getPlayerGuildName(cname)
  				gname2 = getPlayerGuildName(pname)

  				if cname == pname then
  					selfSay('To kick yourself say leave.')
  					talk_state = 0
  				elseif gname == gname2 then
  					gstat2 = getPlayerGuildStatus(pname)

  					if gstat > gstat2 then
  						clearPlayerGuild(pname)
  						selfSay('You kicked ' .. pname .. ' from your guild.')
  						talk_state = 0
  					else
  						selfSay('Sorry, vice-leaders can kick only regular members.')
  						talk_state = 0
  					end
  				else
  					selfSay('Sorry, ' .. pname .. ' is not in your guild.')
  					talk_state = 0
  				end

  			elseif talk_state == 5 then		-- get invited name
  				pname = msg
  				gstat = getPlayerGuildStatus(pname)

  				if gstat == MEMBER or gstat == VICE or gstat == LEADER then
  					selfSay('Sorry, ' .. pname .. ' is in another guild.')
  					talk_state = 0
  				else
  					selfSay('And what rank do you wish to give him/her?')
  					talk_state = 6
  				end

  			elseif talk_state == 6 then		-- get invited rank
  				grank = msg

  				if string.len(grank) <= maxranklen then
 					if string.find(grank, allow_pattern) then
 						gname = getPlayerGuildName(cname)
 						setPlayerGuild(pname, INVITED, grank, gname)
 						selfSay('You have invited ' .. pname .. ' to your guild.')
 						talk_state = 0
 					else
 						selfSay('Sorry, rank name contains illegal characters.')
 						talk_state = 0
 					end
  				else
					selfSay('Sorry, rank name cannot be longer than ' .. maxranklen .. ' characters.')
  					talk_state = 0
  				end

  			elseif talk_state == 7 then		-- leave a guild
  				if msg == 'yes' then
  					clearPlayerGuild(cname)
  					selfSay('You have left your guild.')
  					talk_state = 0
  				else
					selfSay('What else can I do for you?')
  					talk_state = 0
  				end

  			elseif talk_state == 8 then		-- pass leadership
  				pname = msg
  				level = getPlayerLevel(pname)

  				if level >= leaderlevel then
  					gname = getPlayerGuildName(cname)
  					gname2 = getPlayerGuildName(pname)

  					if gname == gname2 then
  						setPlayerGuildStatus(cname,MEMBER)
  						setPlayerGuildStatus(pname,LEADER)
  						gname = getPlayerGuildName(cname)
  						selfSay(pname .. ' is a new leader of ' .. gname .. '.')
  						talk_state = 0
  					else
  						selfSay('Sorry, ' .. pname .. ' is not in your guild.')
  						talk_state = 0;
  					end
  				else
  					selfSay('Sorry, ' .. pname .. ' is not online.')
  					talk_state = 0
  				end

  			elseif talk_state == 9 then		-- set vice-leader
  				pname = msg
  				gname = getPlayerGuildName(cname)
  				gname2 = getPlayerGuildName(pname)

  				if cname == pname then
  					selfSay('To resign from leadership say pass.')
  					talk_state = 0
  				elseif gname == gname2 then
  					gstat = getPlayerGuildStatus(pname)

  					if gstat == INVITED then
						selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
						talk_state = 0
  					elseif gstat == VICE then
  						selfSay(pname .. ' is already a vice-leader.')
						talk_state = 0
  					elseif gstat == MEMBER then
  						setPlayerGuildStatus(pname, VICE)
  						selfSay(pname .. ' is now a vice-leader of your guild.')
						talk_state = 0
  					end
  				else
  					selfSay('Sorry, ' .. pname .. ' is not in your guild.')
  					talk_state = 0
  				end

  			elseif talk_state == 10 then	-- set member
  				pname = msg
  				gname = getPlayerGuildName(cname)
  				gname2 = getPlayerGuildName(pname)

  				if cname == pname then
  					selfSay('To resign from leadership say pass.')
  					talk_state = 0
  				elseif gname == gname2 then
  					gstat = getPlayerGuildStatus(pname)

  					if gstat == INVITED then
  						selfSay('Sorry, ' .. pname .. ' hasn\'t joined your guild yet.');
  						talk_state = 0
  					elseif gstat == VICE then
  						setPlayerGuildStatus(pname, MEMBER)
  						selfSay(pname .. ' is now a regular member of your guild.')
  						talk_state = 0
  					elseif gstat == MEMBER then
  						selfSay(pname .. ' is already a regular member.')
  						talk_state = 0
  					end
  				else
  					selfSay('Sorry, ' .. pname .. ' is not in your guild.')
  					talk_state = 0
  				end

  			elseif talk_state == 11 then	-- get name of player to change nick
  				pname = msg
				gname = getPlayerGuildName(cname)
  				gname2 = getPlayerGuildName(pname)

  				if gname == gname2 then
  					selfSay('And what nick do you want him to have (say none to clear)?')
  					talk_state = 12
  				else
  					selfSay('Sorry, ' .. pname .. ' is not in your guild.')
  					talk_state = 0
  				end

  			elseif talk_state == 12 then	-- get nick
  				if msg == 'none' then
  					setPlayerGuildNick(pname, '')
  					selfSay(pname .. ' now has no nick.')
  					talk_state = 0
  				else
  					if string.len(msg) <= maxnicklen then
 						if string.find(msg, allow_pattern) then
 							setPlayerGuildNick(pname, msg)
 							selfSay('You have changed ' .. pname .. '\'s nick.')
 							talk_state = 0
 						else
							selfSay('Sorry, nick contains illegal characters.')
 							talk_state = 0
 						end
  					else
  						selfSay('Sorry, nick cannot be longer than ' .. maxnicklen .. ' characters.')
  						talk_state = 0
  					end
  				end
  			end
  		end
  	end
end


function onCreatureChangeOutfit(creature)

end


function onThink()
  	if (os.clock() - talk_start) > 45 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

The code is from 8.0 i think
 
Back
Top