Thread Tools
Old April 2, 2001, 10:16   #1
Immortal Wombat
Apolytoners Hall of Fame
Prince
 
Immortal Wombat's Avatar
 
Local Time: 10:58
Local Date: October 31, 2010
Join Date: Dec 2000
Location: in perpetuity
Posts: 4,962
Reply to Ralph (Unit Creation)
Hmmm, I can't reply in the other thread, so sorry moderators, I'm starting a new thread.

Units.txt, bit by bit

quote:

from units.txt
## UNIT 0
UNIT_ABOLITIONIST { <----- unit internal name
Description DESCRIPTION_UNIT_ABOLITIONIST <----- not used
DefaultIcon UNIT_ICON_ABOLITIONIST <--- In uniticon.txt
IconDefaultSprite SPRITE_ABOLITIONIST <--- In newsprite.txt
Category UNIT_CATEGORY_SPECIAL <--- category
Attack 0 <---------- statistics
Defense 10 <----------
ZBRangeAttack 0 <---------- used
Firepower 1 <---------- in
Armor 1 <----------
MaxHP 10 <---------- combat
ShieldCost 540 <---- cost of unit
PowerPoints 250
ShieldHunger 5 <---- upkeep cost of unit (per turn)
FoodHunger 0 <---- upkeep cost of unit in food
MaxMovePoints 300 <---- how far it can move
VisionRange 1 <---- how far it can see
EnableAdvance ADVANCE_CLASSICAL_EDUCATION <--- enabling advance
ActiveDefenseRange 0 <---- how far it can actively defend
LossMoveToDmgNone
MaxFuel 0 <---- Amount of fuel (for aeroplanes)
* IgnoreZOC <---- This unit can ignore zones of control
* NoZoc <---- This unit has no zone of control
* CanBeExpelled <---- This unit can be expelled
* CantCaptureCity <---- This uniot cannot capture cities
* NoSlaves <---- Only build if you have no slaves
* IsSpecialForces <---- Full hitpoints regardless of military status
* Civilian <---- Isn't a military unit
s SoundSelect1 SOUND_SELECT1_ABOLITIONIST
s SoundSelect2 SOUND_SELECT2_ABOLITIONIST
s SoundMove SOUND_MOVE_ABOLITIONIST
s SoundAcknowledge SOUND_ACKNOWLEDGE_ABOLITIONIST
s SoundCantMove SOUND_CANTMOVE_ABOLITIONIST
s SoundAttack SOUND_ATTACK_ABOLITIONIST
s SoundWork SOUND_WORK_ABOLITIONIST
s SoundVictory SOUND_VICTORY_ABOLITIONIST
s SoundDeath SOUND_DEATH_ABOLITIONIST

CanSee: Standard <----- can see normal units
CanSee: Stealth <----- can see stealth units
MovementType: Land <----- walks on land
MovementType: Mountain <----- walks on mountains
Size: Small <----- is small
VisionClass: Stealth <----- is stealthy

se SlaveUprising {
Sound SOUND_ID_SLAVE_UPRISING
Effect SPECEFFECT_SLAVE_UPRISING
}

se UndergroundRailway {
Chance 0.75
DeathChance 0.5
Sound SOUND_ID_UNDERGROUND_RAILWAY
Effect SPECEFFECT_UNDERGROUND_RAILWAY
}
}

################################################## ##########



Lines marked * indicate that these flags do not have to be present, and are used by the Abolitionist, and certain others, other units have other special flag, like the paratrooper that can paradrop etc.

Lines marked - s are sound lines, that are present in all units, and unless you want to make your own sound files, have to end with a unit that the game already uses.

Lines marked se are special effects that only the abolistionist has. again, other units have their own special effects, eg. the cleric, slaver...


The combat lines are what really make military units different from each other.

Attack 10
Defense 10
ZBRangeAttack 20
Firepower 1
Armor 1
MaxHP 10

The attack line is how powerful the unit is. These numbers are from the archer unit. it has a melee atatck of 10. This is fairly standard for the ancient age. As you go through the ages, the attack power gets bigger, as the weopons get more advanced.
Defence (english spelling, not american ) is how resistant to enemy attacks the unit is. (obviously).
ZBRangeAttack is how powerful the unit is as a ranged attacker. Archers, gunners, and war walkers are better as ranged attackers because they fire from a distance.
Firepower is a multiplier that works in the clever combat function so that good units beat worse units.
Armour is a defence multiplier, so tanks have lots of armour, hoplites have a little (a shield) and slavers (fat men) have none.

If this explaination was too much, then I apologise, but I hope it helped people understand how to edit stuff, especially if translating from American programming references into a foreign language, then back again is a little difficult.

If this explaination was too little, please ask more questions, and I'm sure everyone will be happy to help.

Ben
[This message has been edited by Immortal Wombat (edited April 02, 2001).]
Immortal Wombat is offline  
Old April 2, 2001, 14:11   #2
hexagonian
The Courts of Candle'Bre
Emperor
 
hexagonian's Avatar
 
Local Time: 04:58
Local Date: October 31, 2010
Join Date: Jun 1999
Location: Smemperor
Posts: 3,405
FoodHunger 0 <---- upkeep cost of unit in food

Were you able to get this line to work within the game? I tried it once to see if it would work, but was unsuccessful. This would be a good line to get to work though.

And I take it you couldn't figure out the PowerPoints do either.

This is a good reference for anyone who is adding new units!!!!
hexagonian is offline  
Old April 3, 2001, 07:48   #3
Immortal Wombat
Apolytoners Hall of Fame
Prince
 
Immortal Wombat's Avatar
 
Local Time: 10:58
Local Date: October 31, 2010
Join Date: Dec 2000
Location: in perpetuity
Posts: 4,962
To be honest, I've never actually tried it, except when Nuo was trying the nomad, and tried it with a minus number to give the civ food.

Powerpoints I don't know, but I just had a look round, and I think it may be something to do with how much production points the unit disbands to when its disbanded in a city. Look in const.txt for POWER_POINTS_TO_MATERIALS 1

Evidently powerpoints should be roughly 1/2 the unit cost, and by the looks of things, you can edit how much each powerpoint donates.

Ben
Immortal Wombat is offline  
Old April 5, 2001, 06:07   #4
RalphTheMouth
Settler
 
Local Time: 09:58
Local Date: October 31, 2010
Join Date: Mar 2001
Location: CH-8820 Wädenswil
Posts: 5
Hi Ben

Thanks a lot for your reply with the explanations. Most of it, I assumed allready, as you explained. However I still have a couple of questions:

1) What dose "LossMoveToDmgNone" mean
2) What flag do I have to set, in order that a unit can attack in the same turn more than once, if this unit has move-points left

Thanks a lot and best regards
Ralph
RalphTheMouth is offline  
Old April 5, 2001, 07:53   #5
Immortal Wombat
Apolytoners Hall of Fame
Prince
 
Immortal Wombat's Avatar
 
Local Time: 10:58
Local Date: October 31, 2010
Join Date: Dec 2000
Location: in perpetuity
Posts: 4,962
quote:

Originally posted by RalphTheMouth on 04-05-2001 06:07 AM
1) What dose "LossMoveToDmgNone" mean



I dont know. But... I think it may mean the unit doesn't lose movement points when its damaged. In civ2, units lost their movement points when they got damaged. 1/2 their hit points left = 1/2 their movement points.

quote:


2) What flag do I have to set, in order that a unit can attack in the same turn more than once, if this unit has move-points left



That needs SLIC code, its in the Samurai scenario, so it could be cut straight from there.

Hope that helps
Ben

EDIT: I just found the code you want:
Code:
  //----------------------------------------------------------------
 // Clear Battle Flag so samurai can attack multiple times per turn
//------------------------------------------------------------------

HandleEvent(BattleAfterMath) 'SSAfterBattle_F' post {   
	afterBattle = 1;                                
}

HandleEvent(MoveUnits) 'SSClearBattleFlag_f' pre {
int_t		i;

	if (afterBattle == 1) {                     
		afterBattle = 0;                     
		for(i = 0; i < 7; i = i + 1) {
			if (sevenSamurai[i].valid) {
				ClearBattleFlag(sevenSamurai[i]);
			}
		}
	}
This is designed for the seven samurai, so it will need adapting for your needs. Try:

Code:
HandleEvent(BattleAfterMath) 'SSAfterBattle_F' post {   
	afterBattle = 1;                                
}

HandleEvent(MoveUnits) 'SSClearBattleFlag_f' pre {
int_t		i;

	if (afterBattle == 1) {                     
		afterBattle = 0;                     
		for(i = 0; i < army[0].size; i = i + 1) {
			GetUnitByIndex(army[0], i, tmpUnit)
                          if(tmpUnit[i].valid) {
				ClearBattleFlag(tmpUnit[i]);
			}
		}
	}
That should clear the battle flag for your army, after each battle. If that doesnt work, replace the line "for(i = 0; i < army[0].size; i = i + 1) {" with "for(i = 0; i < player[0].units; i = i + 1) {", and in the line below that, replace "army[0]" with "player[0].units", which will then clear the battle flag for all your units. If that doesn't work (my SLIC is not amazing), I'm sure someone else will point out my errors.

Pheeuw, talked too much today, going to eat lunch
[This message has been edited by Immortal Wombat (edited April 05, 2001).]
Immortal Wombat is offline  
Old April 5, 2001, 11:53   #6
RalphTheMouth
Settler
 
Local Time: 09:58
Local Date: October 31, 2010
Join Date: Mar 2001
Location: CH-8820 Wädenswil
Posts: 5
Hi Ben

I hope you had a good lunch with something to "undry" your mouth from the "lots of talking".

Thanks a lot. I will try this out over the weekend.
I will let you know the outcome of my tryings.

Thanks and best regards

Ralph

RalphTheMouth is offline  
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 05:58.


Design by Vjacheslav Trushkin, color scheme by ColorizeIt!.
Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Apolyton Civilization Site | Copyright © The Apolyton Team