ArcEmu: Zomgz Arcemu Vehicles! - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Resize Shouts Area

  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • This topic is locked

Zomgz Arcemu Vehicles! The time has finally come!

#1 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 05 September 2011 - 07:44 PM

~Since r4590, the branch has been reintegrated into Trunk, therefore this thread is now closed. All the information here is now irrelevant!!



Hi there!
As you might have noticed, some time ago I started working on vehicles.
Finally they are working somewhat.
If you want to help in the development, feel free to check out my branch and post bug reports, or suggestions.

In order to help or just try them you need to check out my branch, to do that you have to use a different SVN address.
https://arcemu.svn.s...nches/dfighter/


You can build it the very same way as you would build Arcemu otherwise.
The difference is, you need to apply some DB changes for this to work, so you are strongly urged to make a copy of your world database and apply these on that ;)
You will have to apply the following db updates for this branch to work:

Structure
ALTER TABLE `creature_proto` ADD COLUMN `vehicleid` INT UNSIGNED DEFAULT '0' NOT NULL AFTER `spelldataid`;
UPDATE `arcemu_db_version` SET `LastUpdate` = '4429';


ALTER TABLE `creature_proto` ADD COLUMN `spell5` INT UNSIGNED DEFAULT '0' NOT NULL AFTER `spell4`, ADD COLUMN `spell6` INT UNSIGNED DEFAULT '0' NOT NULL AFTER `spell5`, ADD COLUMN `spell7` INT UNSIGNED DEFAULT '0' NOT NULL AFTER `spell6`, ADD COLUMN `spell8` INT UNSIGNED DEFAULT '0' NOT NULL AFTER `spell7`, CHANGE `spell1` `spell1` INT UNSIGNED DEFAULT '0' NOT NULL, CHANGE `spell2` `spell2` INT UNSIGNED DEFAULT '0' NOT NULL, CHANGE `spell3` `spell3` INT UNSIGNED DEFAULT '0' NOT NULL, CHANGE `spell4` `spell4` INT UNSIGNED DEFAULT '0' NOT NULL;
UPDATE `arcemu_db_version` SET `LastUpdate`='4533';


CREATE TABLE `vehicle_accessories` (
  `creature_entry` int(10) unsigned NOT NULL DEFAULT '0',
  `accessory_entry` int(10) unsigned NOT NULL DEFAULT '0',
  `seat` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`creature_entry`,`accessory_entry`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

UPDATE `arcemu_db_version` SET `LastUpdate` = '4553';


ALTER TABLE `creature_proto` ADD COLUMN `rooted` INT UNSIGNED DEFAULT '0' NOT NULL AFTER `vehicleid`;
UPDATE `arcemu_db_version` SET `LastUpdate` = '4583';


Vehicle IDs
http://filebeam.com/...21f14269256b767


Spells
http://pastebin.com/X6Jen8s0


Vehicle Accessories
http://pastebin.com/iwLncy5G

( The vehicle IDs, spells and vehicle accessories are all from TDB, so credits go to them )


Known Issues
  • When in a group, the group frame for group members on a vehicle is messed up
  • On the client of the controller, it looks like projectiles are fired twice ( in reality it's just a visual bug )
  • Sometimes there are weird spells on the vehicle spellbar, when in reality there are no spells ( it's a visual bug as well )


A little teaser



Posted Image


Posted Image


Posted Image


Posted Image


Posted Image


Posted Image


Posted Image



Posted Image


Posted Image



Posted Image


http://www.youtube.c...h?v=it0clz-VsIA

http://www.youtube.c...h?v=Rmou-3MFodI

http://www.youtube.c...h?v=xr9RytSoLJ0


http://www.youtube.c...h?v=4PGjCdKJzgE


http://www.youtube.c...h?v=HPXeqQ8yzZI


http://www.youtube.c...h?v=xSgm6YmQZAQ

How can you use them?
You can use them by spawning a vehicle, and going close to it. When you move your mouse pointer over the vehicle NPC, it will show a green arrow, if you click it, your character will hop on the vehicle. Just like on the video above!

Vehicles I've tried
Havenshire Stallion ( 28605 ) http://old.wowhead.com/npc=28605
Wintergrasp Siege Engine ( alliance version ) ( 28312 ) http://old.wowhead.com/npc=28312
Frostbrood Vanquisher ( 28670 ) http://old.wowhead.com/npc=28670


You can spawn them with the .npc spawn GM command!



Also please feel free to subscribe to the Arcemu project's youtube channel
http://www.youtube.c...r/arcemuproject

Usually I post development videos, and videos related to some forum topic there!


Have fun!
"The demand for free goods is infinite."
6

#2 User is offline   Trigardon 

  • Priest of the SUWGOMH
  • Pip
  • Group: Members
  • Posts: 33
  • Joined: 30-August 08
  • Gender:Male
  • Location:Germany
  • Interests:Trolling,
    Calling Hoffa a hoe,
    Waiting for somebody being wrong on the internet

Posted 06 September 2011 - 06:01 PM

I applaud you sir.

Posted Image
1

#3 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 06 September 2011 - 07:13 PM

I was just playing around with the X-53 :)


"The demand for free goods is infinite."
0

#4 User is offline   dobri88 

  • Member
  • Pip
  • Group: Members
  • Posts: 27
  • Joined: 27-November 10
  • Gender:Male
  • Server OS:Windows

Posted 08 September 2011 - 02:52 AM

Hi there.
I tested the branch and the vehicles work great. The only problem is that there are only 4 ai spells in creature_proto so you can have vehicles with only 4 spells. And some of them have 5 or even 6 spells. I fixed this by adding 8 ai spells (thanks to trinity core for the idea). However i am not all that good at C++ so can you check my code so i know if i did it all ok? It works fine for me but it may cause something hacky or etc.

This is the .patch file
http://pastebin.com/yp3QUc6q

And this is the SQL that adds the missing ai spells (spell5 to spell8)

ALTER TABLE `creature_proto` ADD COLUMN `spell5` int(30) NOT NULL default '0' AFTER `spell4`;
ALTER TABLE `creature_proto` ADD COLUMN `spell6` int(30) NOT NULL default '0' AFTER `spell5`;
ALTER TABLE `creature_proto` ADD COLUMN `spell7` int(30) NOT NULL default '0' AFTER `spell6`;
ALTER TABLE `creature_proto` ADD COLUMN `spell8` int(30) NOT NULL default '0' AFTER `spell7`;

1

#5 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 08 September 2011 - 12:05 PM

I actually already have this in my local changes, soon I will commit them too ( with support for flying vehicles when done ).
A little teaser in the meantime:

"The demand for free goods is infinite."
0

#6 User is offline   Refuge 

  • Member
  • Pip
  • Group: Members
  • Posts: 10
  • Joined: 06-February 09
  • Gender:Male
  • Location:Poland
  • Server OS:Windows

Posted 08 September 2011 - 01:24 PM

+1

applaud!
ascent 2.4.3 back
1

#7 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 09 September 2011 - 07:33 PM

View PostRefuge, on 08 September 2011 - 01:24 PM, said:

+1

applaud!

Thanks! Be sure to test it with us! ;)
"The demand for free goods is infinite."
0

#8 User is offline   Garvey 

  • is a cool guy
  • Group: Super Moderator
  • Posts: 331
  • Joined: 23-November 09
  • Gender:Male
  • Location:England
  • Server OS:Windows

Posted 13 September 2011 - 03:43 PM

Nicely done, dfighter mang.

Mani mani repz fur u :P
But I, being poor, have only my dreams;
I have spread my dreams under your feet;
Tread softly because you tread on my dreams.
0

#9 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 14 September 2011 - 11:49 AM

Thanks Garvey :P


Btw as I am nearing the completion of the Arcemu vehicle system, it's time for you people to start thinking about what vehicle GM commands, C++ and Lua calls you'd like for vehicles ^^
"The demand for free goods is infinite."
0

#10 User is offline   Enterprise 

  • Newbie
  • Group: Members
  • Posts: 6
  • Joined: 24-January 11
  • Gender:Male
  • Server OS:Windows

Posted 14 September 2011 - 12:37 PM

Suggestions for Lua vehicle calls:
IsInVehicle() - Returns true/false depending on if player is in vehicle or not
VehicleCreate(SpawnIDOfVehicle) - Creates a vehicle and sets player on it automatically if possible with the given parametres
VehicleDismiss() - Dismisses current vehicle if player is in vehicle

Will add more if something comes on my mind.
0

#11 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 14 September 2011 - 05:55 PM

tmmowne

View PostEnterprise, on 14 September 2011 - 12:37 PM, said:

Suggestions for Lua vehicle calls:
IsInVehicle() - Returns true/false depending on if player is in vehicle or not
VehicleCreate(SpawnIDOfVehicle) - Creates a vehicle and sets player on it automatically if possible with the given parametres
VehicleDismiss() - Dismisses current vehicle if player is in vehicle

Will add more if something comes on my mind.

OK, sounds good so far.



Also, I've added 2 simple Creature AI script hooks for entering and exiting vehicles.
Example for usage:
class MammothVendorAI : public CreatureAIScript{
public:
	ADD_CREATURE_FACTORY_FUNCTION( MammothVendorAI );
	MammothVendorAI( Creature *c ) : CreatureAIScript( c ){}

	void OnEnterVehicle(){
		_unit->SendChatMessage( CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Yay! I've arrived! :)", 0 );
	}

	void OnExitVehicle(){
		_unit->SendChatMessage( CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Aw, I got booted! :P", 0 );
	}
};

Result:

"The demand for free goods is infinite."
0

#12 User is offline   CanManDan 

  • Newbie
  • Group: Members
  • Posts: 2
  • Joined: 16-September 11
  • Gender:Male
  • Location:Columbus
  • Server OS:Windows

Posted 16 September 2011 - 12:37 PM

http://pastebin.com/3LB6NXv6

These are just some misc edits from what I know about vehicles, like ulduar vehicles gain pyrite from the containers within the instance, most if not all flying creatures have UNIT_BYTE1_FLAG_UNK_2 set onto them and removed your double call of c->GetScript().
0

#13 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 16 September 2011 - 12:50 PM

There was no double call there.
	if( passenger->IsCreature() ){
		Creature *c = static_cast< Creature* >( passenger );
		
		if( c->GetScript() != NULL ){
			c->GetScript()->OnEnterVehicle();
		}
	}

	if( owner->IsCreature() ){
		Creature *c = static_cast< Creature* >( owner );

		if( c->GetScript() != NULL ){
			if( passengercount == 1 )
				c->GetScript()->OnFirstPassengerEntered( passenger );

			if( !HasEmptySeat() )
				c->GetScript()->OnVehicleFull();
		}
	}

The first is for passenger, the other is for the owner ( the vehicle itself ).
The rest I will check out a bit later, thanks!
"The demand for free goods is infinite."
0

#14 User is offline   CanManDan 

  • Newbie
  • Group: Members
  • Posts: 2
  • Joined: 16-September 11
  • Gender:Male
  • Location:Columbus
  • Server OS:Windows

Posted 16 September 2011 - 01:58 PM

View Postdfighter, on 16 September 2011 - 12:50 PM, said:

There was no double call there.
	if( passenger->IsCreature() ){
		Creature *c = static_cast< Creature* >( passenger );
		
		if( c->GetScript() != NULL ){
			c->GetScript()->OnEnterVehicle();
		}
	}

	if( owner->IsCreature() ){
		Creature *c = static_cast< Creature* >( owner );

		if( c->GetScript() != NULL ){
			if( passengercount == 1 )
				c->GetScript()->OnFirstPassengerEntered( passenger );

			if( !HasEmptySeat() )
				c->GetScript()->OnVehicleFull();
		}
	}

The first is for passenger, the other is for the owner ( the vehicle itself ).
The rest I will check out a bit later, thanks!

Totally misread it then. :P
0

#15 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 16 September 2011 - 03:08 PM

Added 3 simple Lua engine commands for vehicles in the latest commit
IsOnVehicle() - Tells if the Unit is on a Vehicle.
SpawnAndEnterVehicle( creature_entry, delay ) - Spawns a vehicle with creature_entry and adds the player to it after delay milliseconds.
DismissVehicle() - Dismisses the vehicle the Unit is on, if any.

Example script:
http://pastebin.com/Qn29gxkn


"The demand for free goods is infinite."
0

#16 User is offline   Enterprise 

  • Newbie
  • Group: Members
  • Posts: 6
  • Joined: 24-January 11
  • Gender:Male
  • Server OS:Windows

Posted 17 September 2011 - 07:35 AM

Just wanted to add, on retail, the NPC's on example mammoth don't disappear exactly after your dismiss the mount, they do disappear usually around ~5 seconds after you have dismissed the vehicle.
0

#17 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 17 September 2011 - 08:56 AM

View PostEnterprise, on 17 September 2011 - 07:35 AM, said:

Just wanted to add, on retail, the NPC's on example mammoth don't disappear exactly after your dismiss the mount, they do disappear usually around ~5 seconds after you have dismissed the vehicle.

Yes, I am aware and in time I am gonna change that too ( I even need to for some reasons ) but tks :P
"The demand for free goods is infinite."
0

#18 User is offline   linhdh 

  • Member
  • Pip
  • Group: Members
  • Posts: 14
  • Joined: 13-August 11
  • Gender:Male
  • Location:Vietnam
  • Server OS:Linux

Posted 18 September 2011 - 03:30 AM

Great! How did you do that?
0

#19 User is offline   dfighter 

  • Titles are overrated
  • PipPipPipPipPipPipPipPipPipPip
  • Group: Administrator
  • Posts: 5,189
  • Joined: 14-June 08
  • IRC:dfighter
  • Gender:Male
  • Server OS:Linux

Posted 18 September 2011 - 07:05 PM

View Postlinhdh, on 18 September 2011 - 03:30 AM, said:

Great! How did you do that?

What do you mean?
I am a programmer, I thought my "job" was to program? :P
"The demand for free goods is infinite."
0

#20 User is offline   Notthecrow 

  • Member
  • Pip
  • Group: Members
  • Posts: 30
  • Joined: 27-June 10
  • Gender:Male
  • Server OS:Windows

Posted 18 September 2011 - 10:30 PM

Sexy.
Ghost in my mind, you used to be, so alive...
0

Share this topic:


  • (2 Pages)
  • +
  • 1
  • 2
  • You cannot start a new topic
  • This topic is locked

2 User(s) are reading this topic
0 members, 2 guests, 0 anonymous users