mirror of
				https://bitbucket.org/Ioncannon/project-meteor-server.git
				synced 2025-05-20 08:26:59 -04:00 
			
		
		
		
	initial navmesh stuff
This commit is contained in:
		
							
								
								
									
										169
									
								
								FFXIVClassic Map Server/bin/Debug/scripts/commands/gm/yolo.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								FFXIVClassic Map Server/bin/Debug/scripts/commands/gm/yolo.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,169 @@ | ||||
| require("global"); | ||||
|  | ||||
| properties = { | ||||
|     permissions = 0, | ||||
|     parameters = "ssss", | ||||
|     description =  | ||||
| [[ | ||||
| yolo | ||||
| ]], | ||||
| } | ||||
|  | ||||
| local quests =  | ||||
| { | ||||
|     [111807] = { level = 25, weight = 4, rewardexp = 1080 }, | ||||
|     [110868] = { level = 50, weight = 4, rewardexp = 4400 }, | ||||
|     [111603] = { level = 22, weight = 5, rewardexp = 1100 }, | ||||
|     [111602] = { level = 22, weight = 5, rewardexp = 1100 }, | ||||
|     [111420] = { level = 45, weight = 5, rewardexp = 4450 }, | ||||
|     [110811] = { level = 18, weight = 6, rewardexp = 780 }, | ||||
|     [110814] = { level = 18, weight = 6, rewardexp = 780 }, | ||||
|     [110707] = { level = 25, weight = 6, rewardexp = 1620 }, | ||||
|     [110682] = { level = 34, weight = 6, rewardexp = 3180 }, | ||||
|     [111202] = { level = 35, weight = 6, rewardexp = 3360 }, | ||||
|     [111222] = { level = 35, weight = 6, rewardexp = 3360 }, | ||||
|     [111302] = { level = 35, weight = 6, rewardexp = 3360 }, | ||||
|     [111223] = { level = 40, weight = 6, rewardexp = 4260 }, | ||||
|     [110819] = { level = 45, weight = 6, rewardexp = 5340 }, | ||||
|     [111224] = { level = 45, weight = 6, rewardexp = 5340 }, | ||||
|     [111225] = { level = 45, weight = 6, rewardexp = 5340 }, | ||||
|     [110867] = { level = 45, weight = 6, rewardexp = 5340 }, | ||||
|     [110869] = { level = 45, weight = 6, rewardexp = 5340 }, | ||||
|     [110708] = { level = 45, weight = 6, rewardexp = 5340 }, | ||||
|     [110627] = { level = 45, weight = 6, rewardexp = 5340 }, | ||||
|     [111434] = { level = 50, weight = 6, rewardexp = 6600 }, | ||||
|     [110850] = { level = 1, weight = 7, rewardexp = 40 }, | ||||
|     [110851] = { level = 1, weight = 7, rewardexp = 40 }, | ||||
|     [110841] = { level = 20, weight = 7, rewardexp = 1120 }, | ||||
|     [110642] = { level = 20, weight = 7, rewardexp = 1120 }, | ||||
|     [110840] = { level = 20, weight = 7, rewardexp = 1120 }, | ||||
|     [110727] = { level = 21, weight = 7, rewardexp = 1401 }, | ||||
|     [111221] = { level = 30, weight = 7, rewardexp = 2661 }, | ||||
|     [111241] = { level = 30, weight = 7, rewardexp = 2661 }, | ||||
|     [110687] = { level = 28, weight = 9, rewardexp = 2970 }, | ||||
|     [110016] = { level = 34, weight = 50, rewardexp = 26500 }, | ||||
|     [110017] = { level = 38, weight = 50, rewardexp = 32500 }, | ||||
|     [110019] = { level = 46, weight = 50, rewardexp = 46000 } | ||||
| }; | ||||
|  | ||||
| local expTable = { | ||||
|     570, -- 1 | ||||
|     700, | ||||
|     880, | ||||
|     1100, | ||||
|     1500, | ||||
|     1800, | ||||
|     2300, | ||||
|     3200, | ||||
|     4300, | ||||
|     5000, -- 10 | ||||
|     5900, | ||||
|     6800, | ||||
|     7700, | ||||
|     8700, | ||||
|     9700, | ||||
|     11000, | ||||
|     12000, | ||||
|     13000, | ||||
|     15000, | ||||
|     16000, -- 20 | ||||
|     20000, | ||||
|     22000, | ||||
|     23000, | ||||
|     25000, | ||||
|     27000, | ||||
|     29000, | ||||
|     31000, | ||||
|     33000, | ||||
|     35000, | ||||
|     38000, -- 30 | ||||
|     45000, | ||||
|     47000, | ||||
|     50000, | ||||
|     53000, | ||||
|     56000, | ||||
|     59000, | ||||
|     62000, | ||||
|     65000, | ||||
|     68000, | ||||
|     71000, -- 40 | ||||
|     74000, | ||||
|     78000, | ||||
|     81000, | ||||
|     85000, | ||||
|     89000, | ||||
|     92000, | ||||
|     96000, | ||||
|     100000, | ||||
|     100000, | ||||
|     110000 -- 50 | ||||
| }; | ||||
|  | ||||
| local commandCost = { | ||||
|     ["raise"] = 150, | ||||
|     ["cure"] = 40, | ||||
|     ["cura"] = 100, | ||||
|     ["curaga"] = 150, | ||||
| }; | ||||
| -- stone:   (1, 9) (5, 12) (10, ) | ||||
| -- cure:    (1, 5) (5, 6)  (10, ) | ||||
| -- aero:    (1, 9) (5, 12) (10, ) | ||||
| -- protect: (1, 9) (5, 12) (10, ) | ||||
| --[[ | ||||
| function onTrigger(player, argc, id, level, weight) | ||||
|     id = tonumber(id) or 111807; | ||||
|     level = tonumber(level) or quests[id].level; | ||||
|     weight = tonumber(weight) or quests[id].weight; | ||||
|     local messageId = MESSAGE_TYPE_SYSTEM_ERROR; | ||||
|     local sender = "yolo"; | ||||
|  | ||||
|     if id == 1 then | ||||
| 	    return | ||||
|     end | ||||
|     local message = calcSkillPoint(player, level, weight); | ||||
|     if player then | ||||
|         player.SendMessage(messageId, sender, string.format("calculated %s | expected %s", message, quests[id].rewardexp)); | ||||
|     end; | ||||
|     printf("calculated %s | expected %s", message, quests[id].rewardexp); | ||||
| end; | ||||
| ]] | ||||
|  | ||||
| function onTrigger(player, argc, skillName, level) | ||||
|     local messageId = MESSAGE_TYPE_SYSTEM_ERROR; | ||||
|     local sender = "yolo"; | ||||
|     if player then | ||||
|         local pos = player:GetPos(); | ||||
|         local x = tonumber(pos[0]); | ||||
|         local y = tonumber(pos[1]); | ||||
|         local z = tonumber(pos[2]); | ||||
|         local rot = tonumber(pos[3]); | ||||
|         local zone = pos[4]; | ||||
|          | ||||
|         printf("%f %f %f", x, y, z); | ||||
|         --local x, y, z = player.GetPos(); | ||||
|         for i = 1, 1 do | ||||
|          | ||||
|         local actor = player.GetZone().SpawnActor(1000070, 'ass', x-(13 + 2*i), y, z); | ||||
|          | ||||
|         actor.FollowTarget(player, 3.2); | ||||
|         end; | ||||
|         return; | ||||
|     end | ||||
|     level = tonumber(level) or 1;  | ||||
|     if player then | ||||
|         player.SendMessage(messageId, sender, string.format("name %s | cost %d | level %u", skillName, calculateCommandCost(player, skillName, level), level)); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| function calculateCommandCost(player, skillName, level) | ||||
|   if skillName and level and commandCost[skillName] then | ||||
|     return math.ceil((8000 + (level - 70) * 500) * (commandCost[skillName] * 0.001)); | ||||
|   end; | ||||
|   return 1; | ||||
| end | ||||
|  | ||||
| function calcSkillPoint(player, lvl, weight) | ||||
|   weight = weight / 100 | ||||
|  | ||||
|   return math.ceil(expTable[lvl] * weight) | ||||
| end | ||||
		Reference in New Issue
	
	Block a user