[(Awesome)RELEASE] CoEmuv2.Nano(5095) Source Code

06/19/2009 02:04 _tao4229#841
there'ya go.
06/19/2009 02:15 WHITELIONX#842
+12 and I am only tickling things at best. The plus part to the item registers at 1800 maximum? And dura 2/2 is scary lol

How are people finding out the case numbers for the npcs? I have moved Mightytao npc to where windsage should be standing but if I want to create a new npc such as the real windsage then how would I find his case number? This is what I find in npc.ini in my client folder for MightyTao but it is so totally different to what it says in db
[NpcType845]
Name=MightyTao
SimpleObjID=265
StandByMotion=999265100
BlazeMotion=999265102
RestMotion=999265101
Effect=none
ASB=5
ADB=6
FixDir=0
06/19/2009 03:31 n0mansland#843
#WHITELIONX

wait do you want an explanation of it like how you find the case number? and what the 845 means in it IDK what your trying to say



#ME

ok this is a crappy code just an example but cant seem to get it to work anyway
I'm making the warden like in real CO but cant get it

Code:
                       if (LinkBack == 0)
                        {
                            if (CSocket.Client.PkPoints <= 99)
			{
                            Text("Lucky for you, the player who killed you is willing to drop the murder charges if", CSocket);
                            Text(" you pay him according to what you did. Lucky for you, the player who killed you", CSocket);
                            Text(" is willing to drop the murder charges if you pay him 500,000 silvers.", CSocket);
                            Link("Ok! Let me get out from here!", 1, CSocket);
                            Link("Any chance of a discount?", 2, CSocket);
                            Link("I would rather rot in hell!", 255, CSocket);
                            End(CSocket);
                        }

                        else if (LinkBack == 1)
                        {
                            Text("You needn't stay here anymore. Let me help you out.", CSocket);
                            Link("Ok, thanks.", 5, CSocket);
                            Link("Leave me alone", 255, CSocket);
                            End(CSocket);
                        }
                        else if (LinkBack == 5)
                        {
                            if (CSocket.Client.PkPoints <= 99)
                            {
                                Teleport(1002, 518, 356, 0, CSocket);
                            }
                        }

                        else if (LinkBack == 2)
                        {
                            Text("The red name, whose PK Points are 30-99 can leave here without any price.", CSocket);
                            Text(" The black name, whose PK Points are 100 or above, should pay 500,000 as recognizance", CSocket);
                            Text(" to leave here.", CSocket);
                            Link("Ok, I will pay.", 7, CSocket);
                            Link("I would rather stay here.", 255, CSocket);
                            End(CSocket);
                        }
                        else if (LinkBack == 7)
                        {
                                if (CSocket.Client.PkPoints <= 99)
                                {
                                    Text("You needn't stay here anymore. Let me help you out.", CSocket);
                                    Link("Ok.", 8, CSocket);
                                    Link("Leave me alone.", 255, CSocket);
                                    End(CSocket);
                                }

                                    else if (LinkBack == 8)
                                    {
                                        if (CSocket.Client.PkPoints <= 99)
                                            {
                                                Teleport(1002, 518, 356, 0, CSocket);
				}
			if (LinkBack == 0)
			{
			if (CSocket.Client.PkPoints > 99)
			{
			    Text("Lucky for you, the player who killed you is willing to drop the murder charges if", CSocket);
                            Text(" you pay him according to what you did. Lucky for you, the player who killed you", CSocket);
                            Text(" is willing to drop the murder charges if you pay him 500,000 silvers.", CSocket);
                            Link("Ok! Let me get out from here!", 9, CSocket);
                            Link("Any chance of a discount?", 10, CSocket);
                            Link("I would rather rot in hell!", 255, CSocket);
                            End(CSocket);
                        }
                        else if (LinkBack == 9)
                        {
                            Text("You needn't stay here anymore. Let me help you out.", CSocket);
                            Link("Ok, thanks.", 11, CSocket);
                            Link("Leave me alone", 255, CSocket);
                            End(CSocket);
                        }
                        else if (LinkBack == 11)
                        {
                            if (CSocket.Client.PkPoints > 99)
                            {
                            Text("I cannot let you out you are black name.", CSocket);
                            Link("Crap!", 255, CSocket);
                            End(CSocket);
                            }
                        }

                        else if (LinkBack == 10)
                        {
                            Text("The red name, whose PK Points are 30-99 can leave here without any price.", CSocket);
                            Text(" The black name, whose PK Points are 100 or above, should pay 500,000 as recognizance", CSocket);
                            Text(" to leave here.", CSocket);
                            Link("Ok, I will pay.", 12, CSocket);
                            Link("I would rather stay here.", 255, CSocket);
                            End(CSocket);
                        }
                        else if (LinkBack == 12)
                        {
                                if (CSocket.Client.PkPoints > 99)
                                {
                                    Text("You needn't stay here anymore. Let me help you out.", CSocket);
                                    Link("Ok.", 13, CSocket);
                                    Link("Leave me alone.", 255, CSocket);
                                    End(CSocket);
                                }

                                    else if (LinkBack == 13)
                                    {
                                        if (CSocket.Client.PkPoints > 99)
                                        if (CSocket.Client.Money >= 500000)
                                            {
                                                Teleport(1002, 518, 356, 0, CSocket);
                                                Money(-500000, CSocket);
				}
                                                break;
                                            }
if you dont see what im trying to do then ill explain it... Like in real co if you press link 1 it will send non black names outside into TC and black names kept in w/ a message.
if you press link 2 then my LINK 4 it will put no extra fee on white names and fee black names 500k and let them out... IF THAT HELPS IDK
06/19/2009 03:42 Zeroxelli#844
Someone was talking about DMap's, and Andy said something about scenes being somewhere in the dmap. Anyway, wrote a CLI map to check the contents of the files, small example of output:
Code:
Reading 'newplain.DMap'
map\puzzle\newplain.pul
ani\MapScene.ani
( Repeats for 20k bytes )

-- ani\MapScene.ani: Reference 'newplain' --
[gsp01.tga]
FrameAmount=1
Frame0=data/map/mapobj/newplain/city/gsp01.tga
[gsp02.tga]
FrameAmount=1
Frame0=data/map/mapobj/newplain/city/gsp02.tga
Which is just the furniture thingy LadyLuck stands next to, I'm assuming it makes another reference to one of the map tga files but that's normal. As for the scenes, I can't seem to find them.. Maybe in the TQ server they're assigned to DMaps, because I can't get the data from them. Or, I'm just doing it wrong.

EDIT:
Code:
[18:44:53.59 # Thu 06/18/2009]
[IO-41532922F054 / ~\DMapReader\bin\Debug] >DMapReader newplain.pul
Reading 'newplain.pul'
ani\newplain.ani

-- ani\MapScene.ani: Reference 'n/a' --
[Puzzle0]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city000.dds

[Puzzle1]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city001.dds

[Puzzle2]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city002.dds

[Puzzle3]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city003.dds

[Puzzle4]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city004.dds

[Puzzle5]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city005.dds

[Puzzle6]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city006.dds

[Puzzle7]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city007.dds

[Puzzle8]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city008.dds

[Puzzle9]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city009.dds

[Puzzle10]
FrameAmount=1
Frame0=data/map/puzzle/newplain/city/city010.dds

( Continues to 1749 )
Well, there's how the map is drawn. lmao.
06/19/2009 04:25 _tao4229#845
the scene files are stored in seperate .scene files in the same map folder as .dmaps are in the client. they have a different structure which isn't public on e*pvp, it may be released elsewhere though, I don't know.

It's not that huge of a deal, you can just disable the DMap check for jumping/walking because the client will prevent any entity jumping there. Only people with asm experience could exploit that, and even so all they can do is play jesus and walk on water; as far as I've seen of the source, you've got bigger exploits to worry about.
06/19/2009 04:39 Zeroxelli#846
I know where the scene files are, was just wondering where the DMap's reference them. Apparently they don't.

And, yeah. Or you could always make a multidimensional array to list the coordinate ranges that are valid, and dc the play or return false on anything not in the array. There are many options.
06/19/2009 06:43 WHITELIONX#847
Ok so case number for Eternity is 300500 how do I find out what the REAL WindSage case number would be?
06/19/2009 09:15 gaby22v#848
what is the password of arhives
06/19/2009 09:41 WHITELIONX#849
Password is elitepvpers

If I want to add something extra to the navicat such as with items and I want to add min and max attack both ph and magic I would need to use MySql BUT what would I need to write into MySql to give navicat these extra options to play with :D

Btw I saved BusterBlade to the source but I have no idea how to find it >.< I tried /item BusterBlade and I tried /item (number) but I didn`t get anything :(
06/19/2009 15:26 .Dan.#850
So, I should put 192.168.1.*** into the source as a serverIP and 127.0.0.1 into the server.dat? If I do that the client says 'server.dat is broken please reinstall the client'. It gives the same error if I put 192.168.1.*** into my server.dat instead of the 127.

I'm doing something terribly wrong I know it, lol.
06/19/2009 16:41 n0mansland#851
Wind Sage isnt in the game.. but you can add him


NPCID = Random not taken number

NPCType = Random not taken number (also the case ID)

SubType = What the npc looks like (Go into NPC.ini and look for what you want and add a 0 at the end of it.)

So Wind Sage is like this
NPCID= Lets say 590
NpcType= 999
SubType= 8330

If that helps i dont get what you're asking
06/19/2009 19:44 WHITELIONX#852
Yup that was exactly what I wanted to know :D I have moved the current npc to the position where WindSage should be, And for anybody curious about Eternity well that npc is still in the AC map. But adding new npcs would be done through MySql? And this i know nothing about :(
Just the same as I want to add into items a strength of weapon also.


I moved Eternity to market and used some codes that the good people on this site have given but the case number to use IS 300500 so all I did was add the codes then changed the case number to 300500 and the name to Eternity and I have Eternity that rbs me :) Btw anybody noticed that you have to log off then back on for it to understand you have been reborned?
06/19/2009 20:52 Zeroxelli#853
Quote:
Btw anybody noticed that you have to log off then back on for it to understand you have been reborned?
No, You just have to send the status packet.
06/19/2009 21:01 WHITELIONX#854
>.< That I have no idea about lol
06/19/2009 21:20 n0mansland#855
#WHITELIONX
Glad I could help I had the same problem as you I couldnt figure out what the difference was between NPC ID, Type and SubType

#ME
Well i almost got all npcs coded just need Unknown man, tinter, and im working on houses... I got a question w/ houses.

1.If you gave the dude a house permit how do you make it so you dont have to give it to him again?

2.Im not sure about this problem havent tested it but if you set the npc that teleports you to a house and lets say you put 1099 every character that teleports goes to the same house am I right on that? If so how do you make it so they have a different house.

3. Anyone got furniture npc ids?