• 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!

New npc system!

Nesaj

New Member
Joined
Apr 10, 2008
Messages
126
Reaction score
0
Well, i make this thread to request an simple thing, change the new npc system for the old one. =X
The new system is SUX for buy/sell loot, can't hide itens like keys because, always you say "offer" he shows everything, some npcs dont work on it, like this one:

Code:
local focus = 0
local talk_start = 0
local target = 0
local following = false
local attacking = false

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, I can enchant some weapons with my fire enchant technique, just say enchant if youre intrested.')
  		focus = cid
  		talk_start = os.clock()

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

	elseif focus == cid then
		talk_start = os.clock()

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


		if msgcontains(msg, 'enchant') then
			selfSay('What weapon do you want to enchant to the fire version?')
			talk_state = 1

		
		elseif talk_state == 1 then
		if msgcontains(msg, 'spike sword') then
        plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
        ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
        weap = getPlayerItemCount(cid,2383) --- spike sword
	        if plats >= 60 and ing >= 5 and weap >= 1 then
                doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
				doPlayerRemoveItem(cid,2383,1) --- spike sword
                selfSay('Enchantmenth completed, here is your weapon.')
                doPlayerAddItem(cid,7744) --- Spike sword with fire enchant
			else
		        selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the spike sword, or else i cant enchant the weapon for you.')
			end
			elseif talk_state == 1 then
			if msgcontains(msg, 'barbarian axe') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,2429) --- barbarian axe
			    if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,2429,1) --- barbarian axe
                    selfSay('Enchantmenth completed, here is your weapon.')
                    doPlayerAddItem(cid,7749) --- barbarian axe with fire enchant
				else
		            selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the barbarian axe, or else i cant enchant the weapon for you.')
                end
			elseif talk_state == 1 then
     if msgcontains(msg, 'relic sword') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7383) --- weapon
			  			  	        if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7383,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7745) --- fire enchanted weapon
						 else
		                 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the relic sword, or else i cant enchant the weapon for you.')
                         end
			elseif talk_state == 1 then
     if msgcontains(msg, 'blacksteel sword') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7406) --- weapon
			  		    if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7406,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7747) --- fire enchanted weapon
							 else
		                 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the blacksteel sword, or else i cant enchant the weapon for you.')
                              end
							  			elseif talk_state == 1 then
     if msgcontains(msg, 'dragon slayer') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7402) --- weapon
			  			 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7402,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7748) --- fire enchanted weapon
							 else
		                 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the dragon slayer, or else i cant enchant the weapon for you.')
                             end
							 			elseif talk_state == 1 then
     if msgcontains(msg, 'mystic blade') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7384) --- weapon
			  			  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7384,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7746) --- fire enchanted weapon
						 else
		                 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the mystic blade, or else i cant enchant the weapon for you.')
                         end
						 			elseif talk_state == 1 then
     if msgcontains(msg, 'knight axe') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,2430) --- weapon
			  	  			  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,2430,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7750) --- fire enchanted weapon
		       		  			 else
		                 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the knight axe, or else i cant enchant the weapon for you.')
                                end
											elseif talk_state == 1 then
     if msgcontains(msg, 'heroic axe') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7389) --- weapon
			  		  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7389,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7751) --- fire enchanted weapon
		                       else
		                 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the heroic axe, or else i cant enchant the weapon for you.')
                               end
							   			elseif talk_state == 1 then
     if msgcontains(msg, 'headchopper') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7380) --- weapon
			  	  		  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7380,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7752) --- fire enchanted weapon
			                    else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the headchopper, or else i cant enchant the weapon for you.')
                                end
											elseif talk_state == 1 then
     if msgcontains(msg, 'war axe') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,2454) --- weapon
			  	  	  		  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,2454,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7753) --- fire enchanted weapon
	                         	else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the war axe, or else i cant enchant the weapon for you.')
                              end
							  			elseif talk_state == 1 then
     if msgcontains(msg, 'clerical mace') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,2423) --- weapon
			  	  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,2423,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7754) --- fire enchanted weapon
		           else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the clerical mace, or else i cant enchant the weapon for you.')
                    end
								elseif talk_state == 1 then
     if msgcontains(msg, 'crystal mace') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,2445)  --- weapon
			  	  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,2445,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7755) --- fire enchanted weapon
		             else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the crystal mace, or else i cant enchant the weapon for you.')
                    end
								elseif talk_state == 1 then
     if msgcontains(msg, 'cranial basher') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7415)  --- weapon
			  	  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7415,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7756) --- fire enchanted weapon
	             	else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the cranial basher, or else i cant enchant the weapon for you.')
                    end
								elseif talk_state == 1 then
     if msgcontains(msg, 'orcish maul') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,7392)  --- weapon
			  	  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,7392,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7757) --- fire enchanted weapon
		           else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the orcish maul, or else i cant enchant the weapon for you.')
                    end
								elseif talk_state == 1 then
     if msgcontains(msg, 'war hammer') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,2391)  --- weapon
			  	  	 if plats >= 60 and ing >= 5 and weap >= 1 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,2391,1) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7758) --- fire enchanted weapon
		            else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the war hammer, or else i cant enchant the weapon for you.')
                    end
								elseif talk_state == 1 then
     if msgcontains(msg, 'arrow') then
              plats = getPlayerItemCount(cid,2152) --- 60 platinum coins
              ing = getPlayerItemCount(cid,2795) --- 5 fire mushrooms
              weap = getPlayerItemCount(cid,2544)  --- weapon
			  	  	 if plats >= 60 and ing >= 5 and weap >= 100 then
                    doPlayerRemoveItem(cid,2152,60) --- 60 platinum coins
                    doPlayerRemoveItem(cid,2795,5) --- 5 fire mushrooms
                    doPlayerRemoveItem(cid,2544,100) --- weapon
                              selfSay('Enchantmenth completed, here is your weapon.')
                              doPlayerAddItem(cid,7840,100) --- fire enchanted weapon
		          else
		 selfSay('I need 60 platinum coins, 5 fire mushrooms and borrow the arrow, or else i cant enchant the weapon for you.')
                    end
					end
	
		elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then
			selfSay('Goodbye!')
			focus = 0
			talk_start = 0
		end
	end
end
end
end
end
end
end
end
end
end
end
end
end
end
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 also, the mail npc dont give a label inside the parcel (only on this system).

Ahhh... I just hate it and many users hate it too (i think o0), so remove it please.
 
Well I don't think it's finished yet, but yeah it needs to accept these types of things or have an option for it.

The only thing I like about it is the PM npc feature, the rest just makes it harder to use.
 
Back
Top