AAS, с не родными картами... |
|
Здравствуйте, гость ( Вход | Регистрация )
AAS, с не родными картами... |
3.1.2007, 12:04
Сообщение
#1
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
сабж, пробывал дабавить в этот мод другие карты, ни чего не получилось. раунд не стартовал... кто нить пробывал это осуществить ?
|
|
|
3.1.2007, 15:06
Сообщение
#2
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Может стоит начать с описания мода желательно с линками ;)
знаю много модов но про этот не слышал хотя как показывает практита - у одного омда порой несколько названий..
|
|
|
3.1.2007, 15:55
Сообщение
#3
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
mods\bf2\python\game\gamemodes\gpm_cq.py
landot AAS mod for BF2 conquest mode меняется файл на "не родной", и на сервере точки начинают захватываться в строго определенной последовательности, на моем сервере народ тащится по некоторым не офф картам, а мод есстественно на них не работает, вот я его уже и так и так, а всеравно не работает. :( ну в торопях нашел страничку с этим модом, не сочтите за рекламу... http://landot.org:8080/landot/aas/ Сообщение отредактировал ROOL - 3.1.2007, 15:58 |
|
|
5.1.2007, 9:07
Сообщение
#4
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Странно, у меня и с родными картами не стартует, если баланс поставить false стартует, но флаги вообще не захватываются, пробовал на версии 1 и 1.4, 1.12 как там рекомендуют патча нету. может кто посоветует в чем причина?
|
|
|
8.7.2007, 9:21
Сообщение
#5
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Комрады, никто не нашел способ впихнуть в этот мод новые карты?Он прекрасно работает на 1.41 у нас в локале,но хотелось бы добавить несколько новых карт,Джал например
|
|
|
13.7.2007, 21:43
Сообщение
#6
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
где можно взять этот мод ?
|
|
|
17.7.2007, 9:49
Сообщение
#7
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
где можно взять этот мод ? Создать текстовый файл,вставить всю ету хрень, переименовать файл в gpm_cq.py и заменить им родной gpm_cq.py в папке C:\Program Files\EA GAMES\Battlefield 2\mods\bf2\python\game\gamemodes,желательно оставить копию родного,а то вдруг не понравиться # # landot AAS mod for BF2 conquest mode # # Version 1.7 # # The following copyright only applies to pieces of code added or changed # in this file compared to the original gpm_cq.py included with BF2 1.02. # Any other code is copyright of the copyright owner of that particular code. # # Copyright © 2005, Jarkko Santala <santala@landot.org> # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Contributors: # # Letranger, Men Dake, Nordstern, Dark Angel # # Thanks to everyone for great help in testing, flag order and new ideas! # # Please check SETTINGS below. # TAKEOVERTYPE_CAPTURE = 1 TAKEOVERTYPE_NEUTRALIZE = 2 SCORE_CAPTURE = 2 SCORE_NEUTRALIZE = 2 SCORE_CAPTUREASSIST = 1 SCORE_NEUTRALIZEASSIST = 1 SCORE_DEFEND = 1 Top = 0 Middle = 1 Bottom = 2 import host import bf2 import math from game.scoringCommon import addScore, RPL from bf2 import g_debug g_controlPoints = [] # cache, as this map won't change global aasTip global aasLast global aasNextCp global aasRadius global aasVehicleCap global aasCpBalance global aasDebug global aasL10n global aasL10nCp global aasL10nText ############################################################################### # # landot AAS mod - SETTINGS # # # The CP area sizes will be calculated using the following formula: # # Original CP Radius * ( Max Number Of Players / aasRadius ) # # If you set the aasRadius to 0 the CP area sizes will stay normal. # With default setting 10: 10 players = the same, 30 players = 3 times bigger # aasRadius = 10 # # Choose localization by setting the variable aasL10n # # 0 = English # 1 = French # 2 = German # aasL10n = 0 # # Enable/disable Commander # # 1 = Enable # 0 = Disable # aasCommander = 0 # # Using the following setting you can choose whether CPs per team will # be balanced at the start of each map. Enabling this setting means that # the battle will always start in the middle of the map. # # True = Balance number of CPs per team at map start # False = Don't balance, use default CP ownerships # aasCpBalance = True # # No user serviceable parts below this point! # ############################################################################### aasDebug = 0 aasLast = [ 0, 0, 0 ] aasNextCp = [ 0, 0, 0 ] aasTip = " * AAS * " aasL10nCp = { "abandonedhuts" : [ "Abandoned Huts" , "Baraquements dйsaffectйs", "Verlassene Hьtten" ] , "abandonedvillage" : [ "Abandoned Village" , "Village abandonnй", "Verlassenes Dorf" ] , "airfield" : [ "Airfield" , "Aйrodrome", "Flugplatz" ] , "airfieldbase" : [ "Airfield Base" , "Base de l aйrodrome", "Basis am Flugplatz" ] , "airfieldcamp" : [ "Airfield Camp" , "Camp de l aйrodrome", "Lager am Flugplatz" ] , "alley" : [ "Alley" , "Rue", "Gasse" ] , "alleyway" : [ "Alleyway" , "Ruelle", "Durchgang" ] , "ammodepot" : [ "Ammo Depot" , "Dйpфt de munitions", "Munitionslager" ] , "backyard" : [ "Backyard" , "Arriиre-cour", "Hinterhof" ] , "beach" : [ "Beach" , "Plage", "Strand" ] , "beachhouse" : [ "Beach House" , "Maison cфtiиre", "Strandhaus" ] , "bridge" : [ "Bridge" , "Pont", "Brьcke" ] , "bridgebase" : [ "Bridge Base" , "Base du pont", "Brьckenbasis" ] , "bridgecamp" : [ "Bridge Camp" , "Camp du pont", "Brьckenlager" ] , "canyonguardpost" : [ "Canyon Guard Post" , "Poste de garde du dйfilй", "Wachposten an der Schlucht" ] , "cementfactory" : [ "Cement Factory" , "Cimenterie", "Zementfabrik" ] , "centralfront" : [ "Central Front" , "Front central", "Zentrale Front" ] , "centralisland" : [ "Central Island" , "Ile centrale", "Zentrale Insel" ] , "chineseairfield" : [ "Chinese Airfield" , "Aйrodrome chinois", "Flugplatz (China)" ] , "chinesebase" : [ "Chinese Base" , "Base chinoise", "Basis (China)" ] , "chinesehq" : [ "Chinese HQ" , "PC chinois", "HQ (China)" ] , "city" : [ "City" , "Ville", "Stadt" ] , "city_entrance" : [ "City Entrance" , "Entrйe de la ville", "Stadt-Eingang" ] , "citypark" : [ "City Park" , "Parc", "Stadtpark" ] , "clubhouse" : [ "Club House" , "Pavillon", "Klubhaus" ] , "communicationcentral" : [ "Communication Central" , "Central de communication", "Kommunikationszentrale" ] , "constructionsite" : [ "Construction Site" , "Chantier", "Baustelle" ] , "containerstorage" : [ "Container Storage" , "Zone de stockage", "Lagerhaus" ] , "controlcenter" : [ "Control Center" , "Centre de contrфle", "Kontrollzentrum" ] , "convoy" : [ "Convoy" , "Convoi", "Konvoi" ] , "docks" : [ "Docks" , "Quais", "Docks" ] , "eastoilfield" : [ "East Oilfield" , "Champ pйtrolifиre Est", "Цstliches Цlfeld" ] , "emineentrance" : [ "East Mine Entrance" , "Entrйe Est de la mine", "Eingang zur цstlichen Mine" ] , "factory" : [ "Factory" , "Usine", "Fabrik" ] , "farm" : [ "Farm" , "Ferme", "Bauernhof" ] , "fishfactory" : [ "Fish Factory" , "Conserverie de poisson", "Fischfabrik" ] , "fortification" : [ "Fortification" , "Fortification", "Befestigungsanlage" ] , "gasstation" : [ "Gas Station" , "Station-service", "Tankstelle" ] , "gatehouse" : [ "Gatehouse" , "Maison de gardien", "Pfцrtnerhaus" ] , "harbor" : [ "Harbor" , "Port", "Hafen" ] , "hill" : [ "Hill" , "Colline", "Hьgel" ] , "hillvillage" : [ "Hill Village" , "Village sur la colline", "Bergdorf" ] , "hotel" : [ "Hotel" , "Hфtel", "Hotel" ] , "industrialarea" : [ "Industrial Area" , "Zone industrielle", "Industriegebiet" ] , "intake" : [ "Intake" , "Cheminйe", "Einlaufturm" ] , "island" : [ "Island" , "Ile", "Insel" ] , "islandfarmhouse" : [ "Island Farmhouse" , "Ferme insulaire", "Insel-Bauernhaus" ] , "lowerdam" : [ "Lower Dam" , "Pied du barrage", "Unterer Damm" ] , "mainentrance" : [ "Main Entrance" , "Entrйe principale", "Haupteingang" ] , "maintenancebuilding" : [ "Maintenance Buildings" , "Locaux d entretien", "Wartungsgebдude" ] , "market" : [ "Market Place" , "Marchй", "Marktplatz" ] , "marketplace" : [ "Market Place" , "Place du marchй", "Marktplatz" ] , "materialstation" : [ "Material Station" , "Dйpфt de matйriel", "Materialstation" ] , "mecairfield" : [ "MEC Airfield" , "Aйrodrome CMO", "Flugplatz (MEC)" ] , "mecbase" : [ "MEC Base" , "Base CMO", "Basis (MEC)" ] , "mosque" : [ "Mosque", "Mosquйe", "Mosque" ] , "mountainlookout" : [ "Mountain Lookout" , "Poste de guet", "Beobachtungsposten auf dem Berg" ] , "naturalgasstation" : [ "Natural Gas Station" , "Exploitation de gaz naturel", "Erdgas-Werk" ] , "ngasstation" : [ "North Gas Station" , "Station-service Nord", "Nцrdliche Tankstelle" ] , "northbeach" : [ "North Beach" , "Plage Nord", "Nцrdlicher Strand" ] , "northdocks" : [ "North Docks" , "Quais Nord", "Nцrdliche Docks" ] , "northfront" : [ "North Front" , "Front Nord", "Nцrdliche Front" ] , "northisland" : [ "North Island" , "Ile septentrionale", "Nцrdliche Insel" ] , "northperimeter" : [ "North Perimeter" , "Nord du pйrimиtre", "Randstellung Nord" ] , "officebuildings" : [ "Office Buildings" , "Bureaux", "Bьrogebдude" ] , "oilcisterns" : [ "Oil Cisterns" , "Citernes d essence", "Цl-Zisternen" ] , "oilfieldcheckpoint" : [ "Oilfield Checkpoint" , "Point de contrфle champ pйtrol.", "Checkpoint Цlfeld" ] , "oldcity" : [ "Old City" , "Vieille ville", "Alte Stadt" ] , "olivefort" : [ "Olive Hill Fortification" , "Fortif. colline des oliviers", "Olivenberg-Befestigung" ] , "outpost" : [ "Outpost" , "Avant-poste", "Vorposten" ] , "outskirts" : [ "Outskirts" , "Faubourgs", "AuЯenbezirke" ] , "powerplant" : [ "Power Plant" , "Centrale йlectrique", "Elektrizitдtswerk" ] , "powerstation" : [ "Power Station" , "Centrale йlectrique", "Kraftwerk" ] , "reactors" : [ "Reactor Towers" , "Cheminйes", "Reaktoren" ] , "refinery" : [ "Refinery" , "Raffinerie", "Raffinerie" ] , "refineryentrance" : [ "Refinery Entrance" , "Entrйe de la raffinerie", "Eingang zur Raffinerie" ] , "refuellingstation" : [ "Refueling Station" , "Poste de ravitaillement", "Tankstation" ] , "riverfort" : [ "River Fortification" , "Fortification fluviale", "Fluss-Befestigung" ] , "rivervillage" : [ "River Village" , "Village en bord de riviиre", "Dorf am Fluss" ] , "roadblock" : [ "Road Block" , "Barrage routier", "StraЯensperre" ] , "roadconstruct" : [ "Road Construction" , "Route en travaux", "StraЯenbaustelle" ] , "rockfort" : [ "Rock Fortification" , "Fortification du rocher", "Fels-Befestigung" ] , "securityhq" : [ "Security Headquarters" , "QG de la sйcuritй", "Sicherheits-Hauptquartier" ] , "sgasstation" : [ "South Gas Station" , "Station-service Sud", "Sьdliche Tankstelle" ] , "smallairstrip" : [ "Small Airstrip" , "Petite piste d aviation", "Kleines Flugfeld" ] , "southbeach" : [ "South Beach" , "Plage Sud", "Sьdlicher Strand" ] , "southblock" : [ "South Block" , "Pвtй de maisons Sud", "Sьdlicher Block" ] , "southdocks" : [ "South Docks" , "Quais Sud", "Sьdliche Docks" ] , "southfront" : [ "South Front" , "Front Sud", "Sьdliche Front" ] , "southisland" : [ "South Island" , "Ile mйridionale", "Sьdliche Insel" ] , "southperimeter" : [ "South Perimeter" , "Sud du pйrimиtre", "Randstellung Sьd" ] , "square" : [ "Square" , "Place", "Platz" ] , "suburb" : [ "Suburb" , "Banlieue", "Vorort" ] , "supervisorbase" : [ "Supervisor Base" , "Base de surveillance", "Basis (Aufseher)" ] , "surveillancepost" : [ "Surveillance Post" , "Poste de surveillance", "Kontrollposten" ] , "temple" : [ "Temple" , "Temple", "Tempel" ] , "trainaccident" : [ "Train Accident" , "Accident ferroviaire", "Zugunglьck" ] , "tvstation" : [ "TV Station" , "Station TV", "Fernsehsender" ] , "uppercamp" : [ "Upper Camp" , "Camp supйrieur", "Oberes Lager" ] , "upperdam" : [ "Upper Dam" , "Sommet du barrage", "Oberer Damm" ] , "usairfield" : [ "US Airfield" , "Aйrodrome amйricain", "Flugplatz (US)" ] , "uscarrier" : [ "US Carrier" , "Porte-avions amйricain", "Flugzeugtrдger (US)" ] , "ustown" : [ "US Town" , "Ville amйricaine", "Stadt (US)" ] , "village" : [ "Village" , "Village", "Verlassenes Dorf" ] , "villagefort" : [ "Village Fortification" , "Fortification du village", "Dorf-Befestigung" ] , "vistapoint" : [ "Vista Point" , "Point de vue", "Aussichtspunkt" ] , "warehouse" : [ "Warehouse" , "Entrepфt", "Lagerhaus" ] , "waterfall" : [ "Dam" , "Barrage", "Damm" ] , "westoilfield" : [ "West Oilfield" , "Champ pйtrolifиre Ouest", "Westliches Цlfeld" ] , "westperimeter" : [ "West Perimeter" , "Ouest du pйrimиtre", "Randstellung West" ] , "wmineentrance" : [ "West Mine Entrance" , "Entrйe Ouest de la mine", "Eingang zur westlichen Mine" ] , "woodyard" : [ "Wood Yard" , "Parc а bois", "Holzlagerplatz" ] } aasL10nTexts = [ [ "Flags must be captured in correct order!", "You have entered the ", " must be captured before the ", "Proceed to the " ] , [ "Capturez les points dans le bon ordre!", "Vous кtes au point : ", " : doit кtre capturй avant : ", "Capturez : " ] , [ "Die Flaggen mьssen in einer bestimmten Reihenfolge erobert werden!", "Gerade erobert: ", " muss zuerst erobert werden vor ", "Nдchster Eroberungspunkt: " ] ] aasL10nText = aasL10nTexts[aasL10n] def aasSetNextCp(aasTeam, aasInit): aasMaps = { "16" : { "dalian_plant" : [ "cpname_dp_16_powerplant", "cpname_dp_16_mainentrance", "cpname_dp_16_constructionsite", "cpname_dp_16_reactors" ] , "daqing_oilfields" : [ "cpname_do_16_oldcity", "cpname_do_16_oilcisterns", "cpname_do_16_refinery" ] , "dragon_valley" : [ "cpname_dv_16_refinery", "cpname_dv_16_powerstation", "cpname_dv_16_hillvillage" , "cpname_dv_16_woodyard" ] , "fushe_pass" : [ "cpname_gp_16_wmineentrance", "cpname_gp_16_island", "cpname_gp_16_emineentrance" ] , "gulf_of_oman" : [ "cpname_go_16_constructionsite", "cpname_go_16_city", "cpname_go_16_village", "cpname_go_16_beach" ] , "kubra_dam" : [ "cpname_kd_16_powerstation", "cpname_kd_16_lowerdam", "cpname_kd_16_upperdam", "cpname_kd_16_constructionsite" ] , "mashtuur_city" : [ "cpname_mc_16_hotel", "cpname_mc_16_northbridge", "cpname_mc_16_roadconstruct", "cpname_mc_16_southblock" ] , "operation_clean_sweep": [ "cpname_oc_16_smallairstrip", "cpname_oc_16_refuellingstation", "cpname_oc_16_controlcenter", "cpname_oc_16_airfield" ] , "sharqi_peninsula" : [ "cpname_sp_16_hotel", "cpname_sp_16_constructionsite", "cpname_sp_16_officebuildings", "cpname_sp_16_tvstation" ] , "songhua_stalemate" : [ "cpname_ss_16_centralfront", "cpname_ss_16_northisland", "cpname_ss_16_temple", "cpname_ss_16_westperimeter" ] , "strike_at_karkand" : [ "cpname_sk_16_market", "cpname_sk_16_square", "cpname_sk_16_hotel", "cpname_sk_16_gasstation" ] , "zatar_wetlands" : [ "cpname_zw_16_naturalgasstation", "cpname_zw_16_centralisland", "cpname_zw_16_factory" ] } , "32" : { "dalian_plant" : [ "cpname_dp_32_airfield", "cpname_dp_32_mainentrance", "cpname_dp_32_maintenancebuilding", "cpname_dp_32_southdocks", "cpname_dp_32_reactors", "cpname_dp_32_uscarrier" ] , "daqing_oilfields" : [ "cpname_do_32_chinesebase", "cpname_do_32_oldcity", "cpname_do_32_powerstation", "cpname_do_32_oilcisterns", "cpname_do_32_gasstation", "cpname_do_32_refinery", "cpname_do_32_ustown"] , "dragon_valley" : [ "cpname_dv_32_refinery", "cpname_dv_32_powerstation", "cpname_dv_32_hillvillage", "cpname_dv_32_woodyard", "cpname_dv_32_islandfarmhouse", "cpname_dv_32_marketplace"] , "fushe_pass" : [ "cpname_gp_32_uppercamp", "cpname_gp_32_bridgecamp", "cpname_gp_32_wmineentrance", "cpname_gp_32_emineentrance", "cpname_gp_32_securityhq", "cpname_gp_32_powerplant" ] , "gulf_of_oman" : [ "cpname_go_32_airfieldbase", "cpname_go_32_constructionsite", "cpname_go_32_hotel", "cpname_go_32_rockfort", "cpname_go_32_olivefort", "cpname_go_32_riverfort", "cpname_go_32_uscarrier" ] , "kubra_dam" : [ "cpname_kd_32_intake", "cpname_kd_32_constructionsite", "cpname_kd_32_powerstation", "cpname_kd_32_lowerdam", "cpname_kd_32_materialstation", "cpname_kd_32_refuellingstation", "cpname_kd_32_bridgebase", "cpname_kd_32_abandonedhuts" ] , "mashtuur_city" : [ "cpname_mc_32_hotel", "cpname_mc_32_powerplant", "cpname_mc_32_mosque", "cpname_mc_32_backyard", "cpname_mc_32_hill" ] , "operation_clean_sweep" : [ "cpname_oc_32_communicationcentral", "cpname_oc_32_abandonedvillage", "cpname_oc_32_smallairstrip", "cpname_oc_32_refuellingstation", "cpname_oc_32_controlcenter", "cpname_oc_32_airfield" ] , "sharqi_peninsula" : [ "cpname_sp_32_beachhouse", "cpname_sp_32_clubhouse", "cpname_sp_32_outskirts", "cpname_sp_32_city_entrance", "cpname_sp_32_surveillancepost", "cpname_sp_32_hotel", "cpname_sp_32_constructionsite", "cpname_sp_32_tvstation" ] , "songhua_stalemate" : [ "cpname_ss_32_chinesehq", "cpname_ss_32_centralfront", "cpname_ss_32_northisland", "cpname_ss_32_southisland", "cpname_ss_32_westperimeter", "cpname_ss_32_fishfactory" ] , "strike_at_karkand" : [ "cpname_sk_32_gatehouse", "cpname_sk_32_trainaccident", "cpname_sk_32_market", "cpname_sk_32_suburb", "cpname_sk_32_square", "cpname_sk_32_hotel", "cpname_sk_32_gasstation" ] , "zatar_wetlands" : [ "cpname_zw_32_mecbase", "cpname_zw_32_farm", "cpname_zw_32_naturalgasstation", "cpname_zw_32_centralisland", "cpname_zw_32_factory", "cpname_zw_32_village", "cpname_zw_32_airfield" ] } , "64" : { "dalian_plant" : [ "cpname_dp_64_airfield", "cpname_dp_64_mainentrance", "cpname_dp_64_maintenancebuilding", "cpname_dp_64_southdocks", "cpname_dp_64_reactors", "cpname_dp_64_warehouse", "cpname_dp_64_northdocks", "cpname_dp_64_uscarrier" ] , "daqing_oilfields" : [ "cpname_do_64_chinesebase", "cpname_do_64_powerstation", "cpname_do_64_westoilfield", "cpname_do_64_refinery", "cpname_do_64_oilcisterns", "cpname_do_64_oldcity", "cpname_do_64_eastoilfield", "cpname_do_64_gasstation", "cpname_do_64_ustown" ] , "dragon_valley" : [ "cpname_dv_64_refinery", "cpname_dv_64_powerstation", "cpname_dv_64_hillvillage", "cpname_dv_64_woodyard", "cpname_dv_64_islandfarmhouse", "cpname_dv_64_marketplace", "cpname_dv_64_temple", "cpname_dv_64_rivervillage", "cpname_dv_64_vistapoint", "cpname_dv_64_docks", "cpname_dv_64_uscarrier" ] , "fushe_pass" : [ "cpname_gp_64_chineseairfield", "cpname_gp_64_canyonguardpost", "cpname_gp_64_uppercamp", "cpname_gp_64_bridgecamp", "cpname_gp_64_wmineentrance", "cpname_gp_64_securityhq", "cpname_gp_64_powerplant", "cpname_gp_64_emineentrance", "cpname_gp_64_mountainlookout", "cpname_gp_64_usairfield" ] , "gulf_of_oman" : [ "cpname_go_64_airfieldbase", "cpname_go_64_village", "cpname_go_64_constructionsite", "cpname_go_64_hotel", "cpname_go_64_villagefort", "cpname_go_64_rockfort", "cpname_go_64_olivefort", "cpname_go_64_riverfort", "cpname_go_64_uscarrier" ] , "kubra_dam" : [ "cpname_kd_64_intake", "cpname_kd_64_constructionsite", "cpname_kd_64_powerstation", "cpname_kd_64_lowerdam", "cpname_kd_32_refuellingstation", "cpname_kd_64_materialstation", "cpname_kd_64_supervisorbase", "cpname_kd_64_bridgebase", "cpname_kd_64_abandonedhuts" ] , "mashtuur_city" : [ "cpname_mc_64_ngasstation", "cpname_mc_64_hotel", "cpname_mc_64_powerplant", "cpname_mc_64_mosque", "cpname_mc_64_backyard", "cpname_mc_64_hill", "cpname_mc_64_sgasstation" ] , "operation_clean_sweep" : [ "cpname_oc_64_mecairfield", "cpname_oc_64_harbor", "cpname_oc_64_communicationcentral", "cpname_oc_64_abandonedvillage", "cpname_oc_64_smallairstrip", "cpname_oc_64_refuellingstation", "cpname_oc_64_controlcenter", "cpname_oc_64_airfield" ] , "sharqi_peninsula" : [ "cpname_sp_64_beachhouse", "cpname_sp_64_clubhouse", "cpname_sp_64_outskirts", "cpname_sp_64_city_entrance", "cpname_sp_64_surveillancepost", "cpname_sp_64_alley", "cpname_sp_64_constructionsite", "cpname_sp_64_hotel", "cpname_sp_64_tvstation" ] , "songhua_stalemate" : [ "cpname_ss_64_chinesehq", "cpname_ss_64_centralfront", "cpname_ss_64_southfront", "cpname_ss_64_southisland", "cpname_ss_64_northisland", "cpname_ss_64_westperimeter", "cpname_ss_64_fishfactory", "cpname_ss_64_northperimeter" ] , "strike_at_karkand" : [ "cpname_sk_64_factory", "cpname_sk_64_warehouse", "cpname_sk_64_cementfactory", "cpname_sk_64_gatehouse", "cpname_sk_64_trainaccident", "cpname_sk_64_suburb", "cpname_sk_64_square", "cpname_sk_64_hotel", "cpname_sk_64_gasstation" ] , "zatar_wetlands" : [ "cpname_zw_64_mecbase", "cpname_zw_64_farm", "cpname_zw_64_naturalgasstation", "cpname_zw_64_centralisland", "cpname_zw_64_factory", "cpname_zw_64_village", "cpname_zw_64_airfield", "cpname_zw_64_beach", "cpname_zw_64_uscarrier" ] } } aasCps = False for obj in bf2.objectManager.getObjectsOfType('dice.hfe.world.ObjectTemplate.ControlPoint'): obj = obj.templateName aasMapSize = obj[10:12] break aasMapsOfSize = aasMaps[aasMapSize] aasCps = aasMapsOfSize[bf2.gameLogic.getMapName()] aasTeam2 = 2 if aasCps: if aasTeam == 2: aasTeam2 = 1 aasCps.reverse() for aasCnt in range(0,len(aasCps)): aasNumOfCps = 0 aasTeamCps = 0 for obj in bf2.objectManager.getObjectsOfType('dice.hfe.world.ObjectTemplate.ControlPoint'): aasNumOfCps += 1 if obj.cp_getParam('team') == aasTeam: aasTeamCps += 1 if obj.templateName.lower() == aasCps[aasCnt]: aasCpId = obj elif obj.templateName.lower() == aasCps[aasCnt-1]: aasPrevCpId = obj if aasInit: if aasTeamCps < int(aasNumOfCps / 2): aasCpId.cp_setParam('flag', aasTeam) aasCpId.cp_setParam('team', aasTeam) aasCpId.cp_setParam('takeOverChangePerSecond', 100) elif aasCpId.cp_getParam('team') != aasTeam: if aasCnt == 0 or aasPrevCpId.cp_getParam('team') == aasTeam: aasNextCp[aasTeam] = aasCps[aasCnt] break def aasCpName(aasCp): aasCp = aasCp.lower() aasCp = aasL10nCp[aasCp[13:]] aasCp = aasCp[aasL10n] return aasCp def init(): # events hook host.registerGameStatusHandler(onGameStatusChanged) if host.sgl_getIsAIGame() == 1: host.sh_setEnableCommander(aasCommander) else: host.sh_setEnableCommander(aasCommander) host.registerHandler('TimeLimitReached', onTimeLimitReached, 1) if g_debug: print "gpm_cq.py initialized" def deinit(): bf2.triggerManager.destroyAllTriggers() global g_controlPoints g_controlPoints = [] host.unregisterGameStatusHandler(onGameStatusChanged) if g_debug: print "gpm_cq.py uninitialized" def onGameStatusChanged(status): global g_controlPoints if status == bf2.GameStatus.Playing: if aasCpBalance: aasSetNextCp(1, 1) aasSetNextCp(2, 1) # add control point triggers g_controlPoints = bf2.objectManager.getObjectsOfType('dice.hfe.world.ObjectTemplate.ControlPoint') for obj in g_controlPoints: radius = float(obj.getTemplateProperty('radius')) isHemi = int(obj.cp_getParam('isHemisphere')) if aasRadius > 0: aasRadiusFactor = float(host.ss_getParam('maxPlayers')) / aasRadius if aasRadiusFactor > 1: radius = round(radius * aasRadiusFactor) if isHemi != 0: id = bf2.triggerManager.createHemiSphericalTrigger(obj, onCPTrigger, '<<PCO>>', radius, (1, 2, 3)) else: id = bf2.triggerManager.createRadiusTrigger(obj, onCPTrigger, '<<PCO>>', radius, (1, 2, 3)) obj.triggerId = id obj.lastAttackingTeam = 0 if obj.cp_getParam('team') > 0: obj.flagPosition = Top else: obj.flagPosition = Bottom host.registerHandler('ControlPointChangedOwner', onCPStatusChange) # setup ticket system ticketsTeam1 = calcStartTickets(bf2.gameLogic.getDefaultTickets(1)) ticketsTeam2 = calcStartTickets(bf2.gameLogic.getDefaultTickets(2)) bf2.gameLogic.setTickets(1, ticketsTeam1) bf2.gameLogic.setTickets(2, ticketsTeam2) bf2.gameLogic.setTicketState(1, 0) bf2.gameLogic.setTicketState(2, 0) bf2.gameLogic.setTicketLimit(1, 1, 0) bf2.gameLogic.setTicketLimit(2, 1, 0) bf2.gameLogic.setTicketLimit(1, 2, 10) bf2.gameLogic.setTicketLimit(2, 2, 10) bf2.gameLogic.setTicketLimit(1, 3, int(ticketsTeam1*0.1)) bf2.gameLogic.setTicketLimit(2, 3, int(ticketsTeam2*0.1)) bf2.gameLogic.setTicketLimit(1, 4, int(ticketsTeam1*0.2)) bf2.gameLogic.setTicketLimit(2, 4, int(ticketsTeam1*0.2)) host.registerHandler('TicketLimitReached', onTicketLimitReached) updateTicketLoss() # player events host.registerHandler('PlayerDeath', onPlayerDeathCQ) host.registerHandler('PlayerKilled', onPlayerKilledCQ) host.registerHandler('PlayerRevived', onPlayerRevived) host.registerHandler('PlayerSpawn', onPlayerSpawn) host.registerHandler('EnterVehicle', onEnterVehicle) host.registerHandler('ExitVehicle', onExitVehicle) if g_debug: print "Conquest gamemode initialized." else: bf2.triggerManager.destroyAllTriggers() g_controlPoints = [] def calcStartTickets(mapDefaultTickets): return int(mapDefaultTickets * (bf2.serverSettings.getTicketRatio() / 100.0)) def onTimeLimitReached(value): team1tickets = bf2.gameLogic.getTickets(1) team2tickets = bf2.gameLogic.getTickets(2) winner = 0 victoryType = 0 if team1tickets > team2tickets: winner = 1 victoryType = 3 elif team2tickets > team1tickets: winner = 2 victoryType = 3 host.sgl_endGame(winner, victoryType) # update ticket system def updateTicketLoss(): areaValueTeam1 = 0 areaValueTeam2 = 0 totalAreaValue = 0 numCpsTeam0 = 0 numCpsTeam1 = 0 numCpsTeam2 = 0 # calculate control point area value for each team for obj in g_controlPoints: team = obj.cp_getParam('team') if team == 1: areaValueTeam1 += obj.cp_getParam('areaValue', team) totalAreaValue += areaValueTeam1 numCpsTeam1 += 1 elif team == 2: areaValueTeam2 += obj.cp_getParam('areaValue', team) totalAreaValue += areaValueTeam2 numCpsTeam2 += 1 else: numCpsTeam0 += 1 totalAreaValue += 0 # check if a team has no control points if numCpsTeam1 == 0 or numCpsTeam2 == 0: if numCpsTeam1 == 0: losingTeam = 1 winningTeam = 2 else: losingTeam = 2 winningTeam = 1 # check if there is anyone alive foundLivingPlayer = False for p in bf2.playerManager.getPlayers(): if p.getTeam() == losingTeam and p.isAlive(): foundLivingPlayer = True break if not foundLivingPlayer: # drop tickets ticketLossPerSecond = bf2.gameLogic.getDefaultTicketLossAtEndPerMin() bf2.gameLogic.setTicketChangePerSecond(losingTeam, -ticketLossPerSecond) bf2.gameLogic.setTicketChangePerSecond(winningTeam, 0) return # update ticket loss team1AreaOverweight = areaValueTeam1 - areaValueTeam2 percentualOverweight = 1.0 if totalAreaValue != 0: percentualOverweight = abs(team1AreaOverweight / totalAreaValue) ticketLossPerSecTeam1 = calcTicketLossForTeam(1, areaValueTeam2, -team1AreaOverweight) ticketLossPerSecTeam2 = calcTicketLossForTeam(2, areaValueTeam1, team1AreaOverweight) bf2.gameLogic.setTicketChangePerSecond(1, -ticketLossPerSecTeam1) bf2.gameLogic.setTicketChangePerSecond(2, -ticketLossPerSecTeam2) # actual ticket loss calculation function def calcTicketLossForTeam(team, otherTeamAreaValue, otherTeamAreaOverweight): if otherTeamAreaValue >= 100 and otherTeamAreaOverweight > 0: ticketLossPerSecond = (bf2.gameLogic.getDefaultTicketLossPerMin(team) / 60.0) * (otherTeamAreaOverweight / 100.0) return ticketLossPerSecond else: return 0 DOWNWARDS = -1 UPWARDS = 1 # called when tickets reach a predetermined limit (negativ value means that the tickets have become less than the limit) def onTicketLimitReached(team, limitId): if (limitId == -1): if (team == 1): winner = 2 elif (team == 2): winner = 1 bf2.gameLogic.setTicketState(1, 0) bf2.gameLogic.setTicketState(2, 0) host.sgl_endGame(winner, 3) # update ticket state else: updateTicketWarning(team, limitId) # called when the ticket state should be updated (for triggering messages and sounds based on tickets left) def updateTicketWarning(team, limitId): oldTicketState = bf2.gameLogic.getTicketState(team) newTicketState = 0 if (oldTicketState >= 10): newTicketState = 10 if (limitId == -2): newTicketState = 10 elif (limitId == 2): newTicketState = 0 elif (limitId == -3): newTicketState += 2 elif (limitId == -4): newTicketState += 1 if (oldTicketState != newTicketState): bf2.gameLogic.setTicketState(team, newTicketState) # called when someone enters or exits cp radius def onCPTrigger(triggerId, cp, vehicle, enter, userData): if not cp.isValid(): return if vehicle and vehicle.getParent(): return # can this cp be captured at all? if cp.cp_getParam('unableToChangeTeam') != 0: return playersInVehicle = None if vehicle: playersInVehicle = vehicle.getOccupyingPlayers() if enter: for p in playersInVehicle: cp = getOccupyingCP(p) if cp != None: if not p.getIsInsideCP(): if g_debug: print "Resetting enterPctAt for player ", p.getName() p.enterCpAt = host.timer_getWallTime() if vehicle: for p in playersInVehicle: # only count first player in a vehicle if p == playersInVehicle[0]: print p.index, " is in radius. v=", vehicle.templateName p.setIsInsideCP(enter) else: p.setIsInsideCP(0) if enter == 1: bf2.gameLogic.sendHudEvent(p, 66, 49) #66 = HEEnableHelpMessage, 49 = VHMExitToCaptureFlag; # count people in radius team1Occupants = 0 team2Occupants = 0 pcos = bf2.triggerManager.getObjects(cp.triggerId) for o in pcos: if not o: continue # you can get None in the result tuple when the host can't figure out what object left the trigger if o.getParent(): continue # getOccupyingPlayers returns all players downwards in the hierarchy, so dont count them twice occupyingPlayers = o.getOccupyingPlayers() for p in occupyingPlayers: # only count first player in a vehicle if p != occupyingPlayers[0]: continue if p.isAlive() and not p.isManDown(): if not p.killed: if p.getTeam() == 1: team1Occupants += 1 elif p.getTeam() == 2: team2Occupants += 1 # determine who is taking control team1OverWeight = team1Occupants - team2Occupants attackOverWeight = 0 if team1OverWeight > 0: attackingTeam = 1 elif team1OverWeight < 0: attackingTeam = 2 else: attackingTeam = 0 if team1Occupants == 0 and team2Occupants == 0: # nobody here, slowly go back to owning team if cp.cp_getParam('team') == 0: attackOverWeight = -0.5 else: attackOverWeight = 0.5 timeToChangeControl = cp.cp_getParam('timeToLoseControl') else: aasTeam = attackingTeam aasSetNextCp(aasTeam, 0) if cp.cp_getParam('team') != aasTeam: if aasNextCp[aasTeam] != cp.templateName.lower(): aasMsg = 'game.sayTeam ' + str(aasTeam) + ' "' + aasTip + aasCpName(aasNextCp[aasTeam]) + aasL10nText[2] + aasCpName(cp.templateName) + aasTip + '"' if aasMsg != aasLast[aasTeam]: aasLast[aasTeam] = aasMsg host.rcon_invoke(aasMsg) return # raise flag if already ours, or at bottom and neutral. Otherwise lower first. if cp.cp_getParam('flag') == attackingTeam or (cp.flagPosition == Bottom and cp.cp_getParam('team') == 0): # our flag, raise attackOverWeight = abs(team1OverWeight) timeToChangeControl = cp.cp_getParam('timeToGetControl') else: # other team raised flag, lower first attackOverWeight = - abs(team1OverWeight) timeToChangeControl = cp.cp_getParam('timeToLoseControl') if cp.cp_getParam('onlyTakeableByTeam') != 0 and cp.cp_getParam('onlyTakeableByTeam') != attackingTeam: return # flag can only be changed when at bottom if cp.flagPosition == Bottom: cp.cp_setParam('flag', attackingTeam) # calculate flag raising/lowering speed if timeToChangeControl > 0: takeOverChangePerSecond = 1.0 * attackOverWeight / timeToChangeControl else: takeOverChangePerSecond = 0.0 if (cp.flagPosition == Top and takeOverChangePerSecond > 0) or (cp.flagPosition == Bottom and takeOverChangePerSecond < 0): takeOverChangePerSecond = 0.0 if abs(takeOverChangePerSecond) > 0: cp.flagPosition = Middle cp.cp_setParam('takeOverChangePerSecond', takeOverChangePerSecond) # called when a control point flag reached top or bottom def onCPStatusChange(cp, top): playerId = -1 takeoverType = -1 newTeam = -1 scoringTeam = -1 if top: cp.flagPosition = Top else: cp.flagPosition = Bottom # determine capture / neutralize / defend if cp.cp_getParam('team') != 0: if top: # regained flag, do nothing pass else: # neutralize newTeam = 0 if cp.cp_getParam('team') == 1: scoringTeam = 2 else: scoringTeam = 1 takeoverType = TAKEOVERTYPE_NEUTRALIZE else: if top: # capture newTeam = cp.cp_getParam('flag') scoringTeam = newTeam takeoverType = TAKEOVERTYPE_CAPTURE else: # hit bottom, but still neutral pass # scoring if takeoverType > 0: pcos = bf2.triggerManager.getObjects(cp.triggerId) # count number of players scoringPlayers = [] firstPlayers = [] for o in pcos: if o.getParent(): continue occupyingPlayers = o.getOccupyingPlayers() for p in occupyingPlayers: # only count first player in a vehicle if p != occupyingPlayers[0]: continue if p.isAlive() and not p.isManDown() and p.getTeam() == scoringTeam: if len(firstPlayers) == 0 or p.enterCpAt < firstPlayers[0].enterCpAt: firstPlayers = [p] elif p.enterCpAt == firstPlayers[0].enterCpAt: firstPlayers += [p] if not p in scoringPlayers: scoringPlayers += [p] # deal score for p in scoringPlayers: oldScore = p.score.score; if takeoverType == TAKEOVERTYPE_CAPTURE: if p in firstPlayers: p.score.cpCaptures += 1 addScore(p, SCORE_CAPTURE, RPL) bf2.gameLogic.sendGameEvent(p, 12, 0) #12 = Conquest, 0 = Capture playerId = p.index else: p.score.cpAssists += 1 addScore(p, SCORE_CAPTUREASSIST, RPL) bf2.gameLogic.sendGameEvent(p, 12, 2) #12 = Conquest, 2 = Assist elif takeoverType == TAKEOVERTYPE_NEUTRALIZE: if p in firstPlayers: p.score.cpNeutralizes += 1 addScore(p, SCORE_NEUTRALIZE, RPL) bf2.gameLogic.sendGameEvent(p, 12, 3) #12 = Conquest, 3 = Neutralize else: p.score.cpNeutralizeAssists += 1 addScore(p, SCORE_NEUTRALIZEASSIST, RPL) bf2.gameLogic.sendGameEvent(p, 12, 4) #12 = Conquest, 4 = Neutralize assist # immediate ticket loss for opposite team enemyTicketLossInstant = cp.cp_getParam('enemyTicketLossWhenCaptured') if enemyTicketLossInstant > 0 and newTeam > 0: if newTeam == 1: punishedTeam = 2 elif newTeam == 2: punishedTeam = 1 tickets = bf2.gameLogic.getTickets(punishedTeam) tickets -= enemyTicketLossInstant bf2.gameLogic.setTickets(punishedTeam, tickets) # update control point cp.cp_setParam('playerId', playerId) #always set player first if newTeam != -1 and cp.cp_getParam('team') != newTeam: cp.cp_setParam('team', newTeam) onCPTrigger(cp.triggerId, cp, 0, 0, 0) updateTicketLoss() for aasTeam in [ 1, 2 ]: aasSetNextCp(aasTeam, 0) aasMsg = 'game.sayTeam ' + str(aasTeam) + ' "' + aasTip + aasL10nText[3] + aasCpName(aasNextCp[aasTeam]) + aasTip + '"' if aasMsg != aasLast[aasTeam]: aasLast[aasTeam] = aasMsg host.rcon_invoke(aasMsg) def onPlayerDeathCQ(victim, vehicle): # punish team with one ticket if victim != None: team = victim.getTeam() teamTickets = bf2.gameLogic.getTickets(team) teamTickets -= 1 bf2.gameLogic.setTickets(team, teamTickets) # check if it was the last player foundLivingPlayer = False for p in bf2.playerManager.getPlayers(): if p != victim and p.getTeam() == victim.getTeam() and p.isAlive(): foundLivingPlayer = True if not foundLivingPlayer: updateTicketLoss() def onPlayerKilledCQ(victim, attacker, weapon, assists, object): if not victim: return victim.killed = True # update flag takeover status if victim was in a CP radius cp = getOccupyingCP(victim) if cp != None: onCPTrigger(-1, cp, victim.getVehicle(), False, None) # give defend score if killing enemy within cp radius if attacker != None and attacker.getTeam() != victim.getTeam()\ and cp.cp_getParam('unableToChangeTeam') == 0 and cp.cp_getParam('onlyTakeableByTeam') == 0: if cp != None and cp.cp_getParam('team') == attacker.getTeam(): attacker.score.cpDefends += 1 addScore(attacker, SCORE_DEFEND, RPL) bf2.gameLogic.sendGameEvent(attacker, 12, 1) #12 = Conquest, 1 = Defend def onPlayerRevived(victim, attacker): # update flag takeover status if victim was in a CP radius victim.killed = False cp = getOccupyingCP(victim) if cp != None: onCPTrigger(-1, cp, victim.getVehicle(), True, None) def onPlayerSpawn(player, soldier): player.killed = False aasTeam = player.getTeam() aasMsg = 'game.sayTeam ' + str(aasTeam) + ' "' + aasTip + aasL10nText[0] + aasTip + '"' if aasMsg != aasLast[aasTeam]: aasLast[aasTeam] = aasMsg host.rcon_invoke(aasMsg) aasSetNextCp(aasTeam, 0) aasMsg = 'game.sayTeam ' + str(aasTeam) + ' "' + aasTip + aasL10nText[3] + aasCpName(aasNextCp[aasTeam]) + aasTip + '"' if aasMsg != aasLast[aasTeam]: aasLast[aasTeam] = aasMsg host.rcon_invoke(aasMsg) def onEnterVehicle(player, vehicle, freeSoldier = False): updateCaptureStatus(vehicle) def onExitVehicle(player, vehicle): # update flag takeover status if player in a CP radius print "Player exiting ", player.getName() cp = getOccupyingCP(player) # can this cp be captured at all? player.setIsInsideCP(cp != None and cp.cp_getParam('unableToChangeTeam') == 0) updateCaptureStatus(vehicle) #Update cp capture status on players in vehicle def updateCaptureStatus(vehicle): rootVehicle = bf2.objectManager.getRootParent(vehicle) playersInVehicle = rootVehicle.getOccupyingPlayers() # set the player in the topmost pco as inside - others outside for p in playersInVehicle: print "Players in vehicle ", p.getName() cp = getOccupyingCP(p) p.setIsInsideCP(cp != None and cp.cp_getParam('unableToChangeTeam') == 0 and p == playersInVehicle[0]) # find cp that player is occupying, if any def getOccupyingCP(player): vehicle = player.getVehicle() playerPos = vehicle.getPosition() # find closest CP closestCP = None if len(g_controlPoints) == 0: return None for obj in g_controlPoints: distanceTo = getVectorDistance(playerPos, obj.getPosition()) if closestCP == None or distanceTo < closestCPdist: closestCP = obj closestCPdist = distanceTo # is the player in radius? pcos = bf2.triggerManager.getObjects(closestCP.triggerId) for o in pcos: if o == player.getDefaultVehicle(): # Player is DEFAULT vehicle - this is needed when called from onEnterVehicle return closestCP else: for p in o.getOccupyingPlayers(): if p == player: return closestCP return None # get distance between two positions def getVectorDistance(pos1, pos2): diffVec = [0.0, 0.0, 0.0] diffVec[0] = math.fabs(pos1[0] - pos2[0]) diffVec[1] = math.fabs(pos1[1] - pos2[1]) diffVec[2] = math.fabs(pos1[2] - pos2[2]) return math.sqrt(diffVec[0] * diffVec[0] + diffVec[1] * diffVec[1] + diffVec[2] * diffVec[2]) |
|
|
26.7.2007, 17:43
Сообщение
#8
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
TERROR_rus, твой "файл" работать не будет - потеряна табуляция.
ROOL, TERROR_rus, если еще актуально, то здесь моя обновленная версия. Поддерживается Road to Jalalabad и Wake Island 2007. To ALL. Вкратце, что нужно, чтобы добавить свои новые карты: 1. Вписать названия карт и точек в массив aasMaps, причем названия точек (брать из server.zip/GameModes/gpm_cq/XX/GamePlayObjects.con - внизу, перед CombatAreaManager) должны быть в определенном порядке: от неамериканцев до американцев в порядке их захватывания. 2. В строке 358 (я беру свой файл) скрипт определяет размер карты (16/32/64) путем просмотра значения позиции 10:12. Для новых карт пришлось добавить 2 проверки (строки 359 и 361). Если в вашей карте названия точек не содержать размера карты, то включить AAS режим можно одним способом: вручную отредактировать все файлы внутри server.zip. 3. В строке 395 задается значения "красивого" названия точек (массив aasL10nCp), поэтому в этот массив (aasL10nCp) в качестве первого параметра надо добавить название точки с 14 символа. Именно поэтому вы можете увидеть точки "el_0". Вроде все... |
|
|
27.7.2007, 16:08
Сообщение
#9
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
REW.BMW
твой файл тоже не работает; после выбора точки респауна ничего не происходит, респауна нет, билетов у обеих команд - 0. Проверял на Dalian_plant gpm_cq 64 и на Dalian_plant gpm_cq 32. |
|
|
28.7.2007, 10:28
Сообщение
#10
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
REW.BMW, вот красавчег :+: :+: :+: ,всё отлично завелось и Вейк и ДжаЛ(Далай Плант тоже работает )Огромное тебе спасибо комрад... ;) Жаль постов не хватает,чтоб дать тебе + в репу :( ,выручил ты нас :D
|
|
|
28.7.2007, 10:49
Сообщение
#11
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Нашёл такой же скрипт для "Special Forces", всё замечательно работает совместно с "modmanager"ом.
Подскажите, плз, возможную причину, почему у меня с вашим скриптом BF2 не стартует (проверял на стандартных картах)? о сервере:
OS WinXP BF2 v1.41 + AF + EF bf2statistics "modmanager" ("mm_tk_punish", "mm_mapautosizer", "mm_kicker" , "mm_antibaserape", "mm_announcer", "mm_bf2cc", "mm_autobalance") Сообщение отредактировал niknk - 28.7.2007, 11:01 |
|
|
28.7.2007, 15:01
Сообщение
#12
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Вопрос снят, разобрался
|
|
|
28.7.2007, 16:57
Сообщение
#13
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
30.7.2007, 4:47
Сообщение
#14
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
31.7.2007, 1:49
Сообщение
#15
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
кстати! с этим модом ни у кого проблем с администрировнием не возникает???
если нет подскажите как сделать автобаланс и смену сторон после раунда |
|
|
31.7.2007, 6:15
Сообщение
#16
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
31.7.2007, 6:47
Сообщение
#17
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
REW.BMW
По работе скрипта. У меня он ни в какую не хотел работать, до тех пор, пока (каково было моё удивление после нескольких часов поиска причины ) не прописал в маплисте все карты только в нижнем ригистре ( скрипт чувствителен к ригистру ). По добавлению новых карт. Попробывал добавить карту Strait_of_Hormuz, изменил в server.zip названия точек (в них не было размера), добавил всё что нужно в массивы aasL10nCp и aasMaps - результат отрицательный (делал всё по твоей инструкции). Во-первых игра не стартует, во-вторых, в игре при просмотре карты названия точек остались преждние, хотя в массиве aasL10nCp я им прописал "красивые" названия. В чём может быть проблема? Сообщение отредактировал niknk - 31.7.2007, 6:50 |
|
|
1.8.2007, 17:43
Сообщение
#18
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
у меня такая ошибка вылезает, делал всё по инструкции, карта highway tampa названия там содержат размер карты на техже местах что и стандартные, подскажите что делать плиз!!! |
|
|
2.8.2007, 4:27
Сообщение
#19
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
"failed to initialize gamemode"
ты во время добавления новой карты нарушил код скрипта, у тебя серв его (скрипт) не воспринимает, а где ты его нарушил, это только тебе может быть известно. У кого-нить есть положительный опыт добавления новых карт (с редактированием server.zip самой карты)? Отпишитесь плз. |
|
|
2.8.2007, 9:43
Сообщение
#20
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
"failed to initialize gamemode" ты во время добавления новой карты нарушил код скрипта, у тебя серв его (скрипт) не воспринимает, а где ты его нарушил, это только тебе может быть известно. У кого-нить есть положительный опыт добавления новых карт (с редактированием server.zip самой карты)? Отпишитесь плз. это разобрался, надо ведь в алфавитном порядке карты ставить, другая проблема, теперь в том чтобы точки както распределить между командами, ато получаеццо что заходиш а половина точек ужа захвачена, причём както даже не по порядку :( осюда вопрос, как обозначать принадлежность точки к команде в начале раунда??? |
|
|
Текстовая версия | Сейчас: 27.9.2024, 4:56 |