Jump to content

Novik

Members
  • Posts

    98
  • Joined

  • Last visited

Everything posted by Novik

  1. Novik

    Diehard mod

    Err... 5 years ago... 1.1 - contain balance changes only 1.52 - some new merks, new scenario zones etc. For allies scenario only. All new dialogs - on russian.
  2. Anyone know. Use correct bindsection to add your binds. Add new lines to *begin* of file, not to it end.
  3. For reality termin "weapon repairing" in game must be replaced with "weapon cleaning". I thinked about that, but a lot of items and texts is need to change...
  4. See here: http://vif2ne.ru/nvk/stuff/novik/ScrnShot_301205_004936.jpg This is a start of second turn. Are you need any additional comments?
  5. Anather way - set field DurabilityStep of table RPGWeaponTypes to zero for all records in table.
  6. I think no. Really this is bad wrapper of good idea. And it contain a russian strings. May be interesting for modders, not for end players.
  7. Here - http://forum.nival.com/rus/attachment.php?...31&d=1144166731 Author's remarks (on russian) here - http://forum.nival.com/rus/showthread.php?t=32676 Mod realize morale factor for your units (like Ja2) Great idea. But realization is not very good - status of morale doesn't displaying on unit's tooltip, mod contain russian strings for morale status identification etc. All code placed in external file, code contain english comments, may be somebody develop this...
  8. First mission is a continue of learning curve. Some freedom you will receive at future missions. May be
  9. "This mode realized hotseat for H&S between some (up to 16) human and AI players. Installation: unpack to game directory (N: i think for english version this mean "to Run subfolder"), start game, attach mod in custom menu, start new company. Map "Bridge" with 2 human players will be loaded. (N: in first step you need to talk with gun seller, it placed near your units, don't miss that) If you want change something you need to change some constant in file scripts\s3PvPmod.l That is: 1) Constant PVP_MAP, it may be 1,2 or 3. (Three maps exists at this moment) 1 - "Bridge" 2 - "Destroyed town" 3 - "Defence of base". First team must to destroy PK on base, second - defend it. 2) Array PVP_UNIT[0] - this is a units for first player. 3) Array PVP_UNIT[1] - this is a units for second player. (N: I don't know, is existing maps designed for 2 or for more players count. If yes, then you need to change PVP_UNIT[2] for 3 player etc.) Current configuration: PVP_UNIT[0]={5,5,5,0,0,0,0} PVP_UNIT[1]={5,5,5,0,0,0,0} PVP_UNIT[2]={0,0,0,0,0,0,0} this mean: "exist two players, 3 units of 5 level for first player and some for second". 4) Array PVP_AIPLAYER. If element of array = 0 then corresponding player is human, if = 1 then AI. Current configuration: PVP_AIPLAYER={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} this mean: "exist two human players" 5) Array PVP_PLAYERTEAM. For setting diplomacy between players. Allied players has equal digits. Current configuration: PVP_PLAYERTEAM={1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0} this mean: "exist two human players, and they are enemy" Err... May be i'm better BabelFish, may be not I hope you understand something. Yes. No. But may be you may decompile mod and adaptate it for S^2 / S^3, don't know.
  10. That all about hotseat? Beta version for H&S located here - http://forums.nival.com/rus/attachment.php...20&d=1141730412 Download, unpack, edit scripts\s3PvPmod.l for mod configure. (Beta version hasn't configuration utilite) Authors remarks and discussion here - http://forums.nival.com/rus/showthread.php?t=32212 (on russian) If somebody wants, i may try to translate authors readme.
  11. Details for this message: X-Message-Status: n:0 X-SID-PRA: StrategyCore Forums <admin@strategycore.co.uk> X-SID-Result: TempError X-Message-Info: txF49lGdW43qh9ZrZgxsknFVncjDJaijTadVXmf+JoU= Received: from traffix.multisite.site5.com ([216.118.97.133]) by bay0-mc4-f1.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.1830); Sun, 7 May 2006 11:29:49 -0700 Received: from strategy by traffix.multisite.site5.com with local (Exim 4.52) id 1Fco0o-0008VO-T0 for novik65@hotmail.com; Sun, 07 May 2006 14:29:46 -0400 To: novik65@hotmail.com Subject: From strategycore.co.uk. Try our new service! ( StrategyCore Forums ) Content-type: text/plain; charset="iso-8859-1" From: "StrategyCore Forums" <admin@strategycore.co.uk> X-Priority: 3 X-Mailer: IPB PHP Mailer Message-Id: <E1Fco0o-0008VO-T0@traffix.multisite.site5.com> Date: Sun, 07 May 2006 14:29:46 -0400 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - traffix.multisite.site5.com X-AntiAbuse: Original Domain - hotmail.com X-AntiAbuse: Originator/Caller UID/GID - [32322 32003] / [47 12] X-AntiAbuse: Sender Address Domain - traffix.multisite.site5.com X-Source: /usr/bin/php X-Source-Args: /usr/bin/php index.php X-Source-Dir: strategycore.co.uk:/public_html/forums Return-Path: strategy@traffix.multisite.site5.com X-OriginalArrivalTime: 07 May 2006 18:29:50.0155 (UTC) FILETIME=[39C909B0:01C67204]
  12. Unit with this logic will shoot when *this* unit will see you. With logic "Sentry" shoot, run etc. - when *his allies* will see you. Simple try this method - are you units will leave bunker with this logic? If method, which i describe above doesn't work, you can 1) full replace AI logic from script, with combination of UnitSetScriptLogic and OnUnitNeedCommand. But this method is not very easy. 2) run background thread, and restrict moving of units in this thread. Some like this: function unitInBunker( unit ) local ret = (UnitInArea(unit,"bunker1","bunker2") and (UnitGetFloor(unit)==0)) return(ret) end function unitsControl() local enemies = PlayerGetUnits(1) while(1) do for i = 0, GroupGetSize( enemies ) - 1 do local unit = GroupGetUnit( enemies, i ) if(UnitCanFight(unit) and (not unitInBunker( unit ))) then UnitMoveToWaypoint( unit, "bunkerCenter"..random(1,5)) end end Sleep(40) end end StartThread(unitsControl)
  13. Find property with name 'Logic'. Set it to 'Guard'. Now units will be guard it's place (they will be attack enemies if they see it only). Also you may set property RoamingRadius to something >0 - this is a radius of units move from guarded place.
  14. This is a result of "non-commercial" development. Names structure (Name od char\Nationality of char\etc) used for better localization process. We don't thinked about this at moment of dialog's creation. BTW max count of personages in one dialog - 4. For more count engine can't draw heads.
  15. Simple restart editor - and new AckInfo's record's will be editable. For which AckInfos.ID? Automatically, if you specify >2 persons in your dialog. Order of heads only partially under your control - you may specify second parameter in DialogPlay function. (true - hero on left, false - hero on right)
  16. Tables to description: RPGWeapons, RPGClips, RPGAmmos, RPGGrenades, RPGWeaponTypes, RPGArmorsToDmgs. RPGWeapons fields. Firearms parameters. InnerClip - reference to RPGClips.ID, used clip. InnerClipAmmoQuantity - clip quantity. If -1, then see corresponding field of RPGClips. But may be different, for example, for nagant. WeaponTypeID - reference to RPGWeaponTypes.ID, bonuses and penalties for this weapon type. InitialVelocity - initial velocity of bullet. Use for calculate of penetration. ReloadAP - AP to reload. MinRange - "Handling" of weapon. Must be <= MaxRange. Use for ToHit calculation. If near MaxRange then handling "easy". MaxRange - weapon range. ShotAP - AP to shot. Targeting - AP to targeting (AimedShot = ShotAP+Targeting). Quality - Use for ToHit calculation. Greater value corresponding greater ToHit. Recoil - weapon recoil. Greater value corresponding lower recoil. Must be <=100. RoF - rate of fire * 6. Scope - if 1, then scope present. if 0 - not. Silencer - level of volume of shot. If 0 - no sound, silencer present. Greater value corresponding greater volume. Must be >=0. ItemID - reference to RPGItems.ID SnapShot, AimedShot, CarefulShot, SnipeShot, ShortBurst, LongBurst, FanFire, SuppressiveFire - if true, then corresponding regim of fire is present. Two last regims really doesn't realized in game. BPM - visual speed of bullets in game. Must be<=1700. AIRating - rating this weapon for AI. If AI unit will see on ground weapon with greater rating, then he take this weapon (and drop his current weapon) MaxDurability, CurMaxDurability, Durability - durability of weapon ShotsInOne - bullets count per one shot. DamageMod, DamageModMax - damage modifiers. Note about weapon handling (MinRange). One of the coefficients of ToHit is calculating as nSkill * ( nMaxRange - nMinRange ) / 140 + nMinRange Therefore, for units with shooting skill >=140, "hard handled" weapons is a better. RPGClips fields. Clips parameters. Quantity - shot count. AmmoGroup - reference to RPGAmmos.AmmoGroup. Clips with some cartridges (9x19 para, .45 ACP etc) must have some value. ItemID - reference to RPGItems.ID DefaultAmmo - field not in use ClipGroup - field must be equal for clips for some weapon. AmmoColor - reference to RPGAmmos.AmmoColor. Use for creation of clips with some cartridge but another bullets type (JHP version etc) RPGAmmos fields. Ammos parameters. AmmoGroup, AmmoColor - see RPGClips BulletType - type of bullet, must be from 0 to 5 (Wave,Pistol,Rifle,MG,Melee,Ray) See RPGArmorsToDmgs. DmgMin - damage modifier DmgMax - field not in use GrenadeID - reference to RPGGrenades.ID, if bullet is grenade really. UnconsciousProbability - probability of enemy unconscious state after shooting. Cost - cost of ammo. RangeMod - field not in use UnitWeight - weight of ammo unit. Use for calculate of penetration. Weight - weight of ammo Calibr - calibr of ammo RPGGrenades fields. Grenades parameters. Note: grenades has two damage factors - wave and fragmens. ItemID - reference to RPGItems.ID WaveNumber - count of waves. FragmentAPA - APA of fragments. Use for calculate of penetration. FragmentNumber - fragments count. FragmentDmgMin, FragmentDmgMax - fragments damage modifiers. MaxDelay - delay of explode. If zero - grenade will explode immidiatelly after throw and drop. Quality - Use for ToHit calculation. Greater value corresponding greater ToHit. WeaponTypeID - reference to RPGWeaponTypes.ID, bonuses and penalties for this weapon type. CriticalProbability - probability of criticals applying CriticalDifficulty - difficulty of critical WaveDmgMin, WaveDmgMax - wave damage modifiers. WaveRadius - range of wave. FragmentRange - range of fragments. StructureDamageCoeff - damage for buildings, objects etc. If zero - damage not present. RPGWeaponTypes fields. Bonuses and penalties (for ToHit at most) for any weapon types. SkillIndex - skill number, used for this type of weapon (For most of firearms - 1 - ST_SHOOTING) TwoHanded - 1, if weapon is twohanded. PrepareCost - AP for weapon prepare HandlingEasyRange, HandlingMediumRange - bounds of weapon handling. For use on tooltip only. If RPGWeapon.MinRange <= HandlingMediumRange, then "hard". HandlingMediumRange < RPGWeapon.MinRange < HandlingEasyRange then "medium". RPGWeapon.MinRange >= HandlingEasyRange - "easy". DurabilityStep - quant of durability. MovePenalty - penalty for move before shooting (really if value <0 then penalty, >0 - bonus) CrawlBonus - penalty for shooting at crawl pose CrouchBonus - penalty for shooting at crouch pose MeleePenalty - melee penalty. For cold steel only. StoreType - part of store (loot, shop) interface corresponding to this weapon type. May be 'ColdSteel', 'HeavyWeapon' etc. RPGArmorsToDmgs fields. Effects of shot to structures (building walls etc). See RPGAmmos.BulletType Wave, Pistol, Rifle, MG, Melee, Ray - how many HP will be taked from object after shot. ThrowResult - for thowing knives only. Describe result of throw. Database fields->InGame tooltip. Range = RPGWeapons.MaxRange RateOfFire = RPGWeapons.RoF/6 If weapons bullets is grenades really (MG-108, any launchers) MinDmg = RPGGrenades.WaveDmgMin MaxDmg = RPGGrenades.WaveDmgMax Penetration = RPGGrenades.FragmentAPA/26 for weapons with "normal" bullets MinDmg = RPGAmmos.DmgMin*RPGWeapons.DamageMod/100 MaxDmg = RPGAmmos.DmgMin*RPGWeapons.DamageModMax/100 Penetration = RPGAmmos.UnitWeight*RPGWeapons.InitialVelocity/26 SQL statement for quick data access: SELECT RPGItems.ID as ItemID, a.String as Name, b.String as Type, DamageMin = case isNULL(RPGAmmos.GrenadeID,1) when 1 then cast( RPGAmmos.DmgMin*DamageMod/100 as int) else (select WaveDmgMin from RPGGrenades where RPGAmmos.GrenadeID=RPGGrenades.ID) end, DamageMax = case isNULL(RPGAmmos.GrenadeID,1) when 1 then cast( RPGAmmos.DmgMin*DamageModMax/100 as int) else (select WaveDmgMax from RPGGrenades where RPGAmmos.GrenadeID=RPGGrenades.ID) end, MaxRange as Range, AmmoQuantity = case InnerClipAmmoQuantity when -1 then RPGClips.Quantity else InnerClipAmmoQuantity end, RPGAmmos.UserName as Ammo, Durability, Penetration = case isNULL(RPGAmmos.GrenadeID,1) when 1 then cast( RPGAmmos.UnitWeight*RPGWeapons.InitialVelocity/26 as int) else (select cast( FragmentAPA/26 as int) from RPGGrenades where RPGAmmos.GrenadeID=RPGGrenades.ID) end, cast( RoF/6 as int ) as RateOfFire, SnapShot = case SnapShot when 0 then '-' else cast( ShotAP as varchar ) end, AimedShot = case AimedShot when 0 then '-' else cast( ShotAP+Targeting as varchar ) end, CarefulShot = case CarefulShot when 0 then '-' else '+' end, ShortBurst = case ShortBurst when 0 then '-' else '+' end, LongBurst = case LongBurst when 0 then '-' else '+' end, SnipeShot = case SnipeShot when 0 then '-' else '+' end, RPGItems.Cost as Cost from dbo.RPGWeapons, dbo.RPGClips, RPGAmmos, Strings a, RPGItems, RPGWeaponTypes, Strings b where InnerClip=RPGClips.ID and RPGClips.AmmoGroup=RPGAmmos.AmmoGroup and a.ID=RPGItems.NameID and RPGItems.ID=RPGWeapons.ItemID and RPGWeapons.WeaponTypeID=RPGWeaponTypes.ID and RPGWeaponTypes.NameID=b.ID order by Type,Name Excuse me for my bad english. May be somebody understand what i write above
  17. Try to rename corresponding User Data Source to "Excel Files" (without quotes, ofcourse). (at Data Sources (ODBC)\User DSN\Configure) Or add new with such name.
  18. Full connect string is: Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Excel Files; DriverId=790;MaxBufferSize=2048;PageTimeout=5;DBQ=<name dependent from dialog>" I have some problems on computers with localized (russian) version of Windows. Some of its hasn't DSN=Excel Files, DSN name on its is translated to russian.
  19. I use standard inner text editor of FAR manager. ( http://farmanager.com/index.php?l=en ) But if you want some special, you may try this - http://hyperupload.com/download/01d2d38f90...Editor.rar.html screenshorts: http://forums.nival.com/rus/attachment.php...72&d=1144341214 http://forums.nival.com/rus/attachment.php...73&d=1144341222 http://forums.nival.com/rus/attachment.php...74&d=1144341229 Author remarks and readme (on russian) here - http://forums.nival.com/rus/showthread.php?t=32699 I will try to translate shortly. "Functionality: 1) Syntax hightlitning (scheme of it may be corrected by user). 2) Code Insite 3) Autocompete 4) Tooltips for function parameters 5) Search & replace 6) Syntax checking. To install: Unpack archive to any location. Hotkeys: 1. Ctrl+Space - autocomplete list. 2. Shift+Ctrl+Space - tooltip for function parameters (when cursor located inside brackets) 3. Shift+Ctrl+J - automatic creation code by template. 4. Shift+CTrl+1 ... Shift+Ctrl+9 - create text markers (1-9) 5. Ctrl+1 ... Ctrl+9 - go to trext marker (1-9) 6. Alt+G - go to line with number... 7. Ctrl+R - search & replace 8. F9 - syntax check."
  20. 1) About initVariables/getVariables/putVariables. This is global variables wrapper. Just for comfort. initVariables for init global variables (one call at scenareo start). getVariables maps block of global variables to local zone variables (at start zone), putVariables - commit changes of locals to globals (at finish zone). If you use standart script decoration (see previous post), getVariables/putVariables is called automatically, you don't need to remember about it. 2) About addZone. Some zones are complex. For example, Zeizenburg contain 3 zones - "City","Sewerage","Railroad". All zones placed on one chapter. Any of calls - ScenarioAddVisibleZone("City") or ScenarioAddVisibleZone("Sewerage") or ScenarioAddVisibleZone("Railroad") - is opening this chapter. addZone simple call ScenarioAddVisibleZone and put global markers - "Player really have access to all of three zones - "City","Sewerage","Railroad". Just for inner usage.
  21. May be. But one moment - this is not replace for full editor. This is update for it. Archive don't contain database, it contain replace for exe file only.
  22. Placed here (MapEdit.exe only) - http://vif2ne.ru/s3/stuff/hs/MapEditBeta.rar [4M]
  23. Don't use .RES files at all. Use corresponding subdirectories. Errr... Forget about this. When (and if) path will be realised, i will describe process more detail, OK? In that case all will be normal.
  24. Excuse me, don't understand. Write more detailed, please. You may migrate it to new database in "semi-automatic" way. With S2Differ. To do this you need 1) Download official editor patch, which will contain new original database. 2) Backup your mod (and old original database for some reason) 3) run S2Differ x YouModName This command create file YouModName\YouModName.hsm - this file contain difference between you mod and original database. 4) Stop SQL-server, install patch, start SQL-server 5) Run S2Differ a YouModName This command copy new original database to mod directory and apply your changes to it. 6) Delete file YouModName\sickle_original.db 7) Now you have your mod "over new database". Ofcourse, some bad things may occured. For example, if you change some original script and patch change it too - patch changes *in this script* wil be lost. You need synchronize this changes "by hands". Etc.
  25. Will be fixed (by normal way, with correct .RES files usage etc) in official patch only. Another known bug - you can't create new chapter in editor. I will fix it and upload correct editor version tomorrow. This is a debug output. For me only All correct - forget about this message, it has'nt relation to your mod.
×
  • Create New...