Mirage Source http://web.miragesource.net/forums/ |
|
Spawn NPC Tiles http://web.miragesource.net/forums/viewtopic.php?f=201&t=917 |
Page 1 of 13 |
Author: | Rian [ Fri Dec 22, 2006 2:34 am ] |
Post subject: | Spawn NPC Tiles |
I made a new tile type called TILE_TYPE_SCRIPT This doesn't acutally load any kind of script, I just called it script cuz it can serve multiple purposes. Anyways, .Data3 carried by TILE_TYPE_SCRIPT gets saved and loaded properly (Data2 doesn't have a purpose until I get weather implimented into my game, and the code that uses .Data1 works perfectly fine) however, .Data3 is supposed to be an NPC spawn, but for some reason, it only seems to work right if I use NPC Number 1 (In which case, happens to be a drunken sea pirate). Below are snips of my spawn npc code: Code: 'Check if theres a spawn tile for the specific npc
For x = 0 To MAX_MAPX For y = 0 To MAX_MAPY If MAP(MapNum).Tile(x, y).Type = TILE_TYPE_SCRIPT Then If MAP(MapNum).Tile(x, y).Data2 = MapNpcNum Then MapNpc(MapNum, MapNpcNum).x = x MapNpc(MapNum, MapNpcNum).y = y Spawned = True Exit For End If End If Next y Next x ' Well try 100 times to randomly place the sprite If Not Spawned Then ' Well try 100 times to randomly place the sprite For i = 1 To 100 x = Int(Rnd * MAX_MAPX) y = Int(Rnd * MAX_MAPY) ' Check if the tile is walkable If MAP(MapNum).Tile(x, y).Type = TILE_TYPE_WALKABLE Then MapNpc(MapNum, MapNpcNum).x = x MapNpc(MapNum, MapNpcNum).y = y Spawned = True Exit For End If Next i End If ' Didn't spawn, so now we'll just try to find a free tile If Not Spawned Then For y = 0 To MAX_MAPY For x = 0 To MAX_MAPX If MAP(MapNum).Tile(x, y).Type = TILE_TYPE_WALKABLE Then MapNpc(MapNum, MapNpcNum).x = x MapNpc(MapNum, MapNpcNum).y = y Spawned = True End If Next x Next y End If I could post the whole code, but I'm pretty sure the problem is in one of the If Statments above. So, if anyone sees anything wrong with this code, please let me know, I'd really like to get this to function correctly [Edit] Heh, nevermind. I see what I did wrong. I didn't fully understand how the system worked xD |
Page 1 of 13 | All times are UTC |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |