Le site officiel du AckMod |
Ohé pirates, flibustiers, corsaires ou aventuriers ! L'ancre est haute et claire, prêt pour l'aventure ? Vous devez être identifié et enregistré pour accéder à tout le contenu du forum ! |
| | Tuto : Mes astuces. | |
| | Auteur | Message |
---|
Alano69 Pirate
Messages : 12 Date d'inscription : 28/04/2013
| Sujet: Tuto : Mes astuces. Mer 15 Mai 2013 - 18:23 | |
| Bonjour , J'aurais préféré mettre mes astuces dans Le coin des moddeurs->Ressources et tutos mais c'est réservé aux admins. Pas grave :) Voici pêle-mêle mes astuces pour modder -non pas le AckMod- mais votre jeu : 1) modifiable par un débutant :***Empêcher la sauvegarde (exemple si vous souhaitez jouer en hardcore) : voir dans Program\scripts\time_events.c InterfaceStates.Buttons.Save.enable = false; ***Attribuer les touches qui nous plaisent, exemple j'utilise B pour tirer au pistolet, et V pour parer, 2 pour ramasser les objets sur les corps, A pour prendre une potion. C'est quand même plus pratique que les touches par défaut ! Idem il me semble qu'en pleine mer on a une touche bizarre pour faire avancer le navire - j'ai mis Z. =>éditer (modifier à votre convenance) : Program\Controls\init_pc.c =>puis en début de nouvelle partie, il faut maintenant presser le bouton "options->rétablir commandes par défaut" et ça met les réglages du fichier init_pc.c ***Pour corriger le bug de perte de loyalty, prendre la version de GOF (je les remercie au passage pour leur mod) Program\scripts\officers.c ***Je conseille de limiter le nombre de frame par seconde pour l'affichage pour limiter le les crash/freeze (l'oeil ne voit aucune différence au-delà de 30/40) engine.ini (mettre max_fps = 60) ***Augmenter la distance pour commercer avec les compagnons en offshore ou lors des combats=> Program\_mod_on_off.h ->ligne DistanceToShipTalk 300.0 au lieu de 150 ***Pour laisser plus de temps aux corps avant qu'ils disparaîssent c'est dans Program\_mod_on_off.h à la ligne : #define MOD_DEAD_CLEAR_TIME 180 (originellement 100 secondes)->il faut juste créer un nouveau perso pour que la modif soit prise en compte ***Chaloupe avec rameurs : prendre (copier/coller) le fichier Boat.gm de GOF 1.2, elle est quand même plus jolie ***Prix de la chambre à la Taverne que je trouve ridicule : (monter les prix à 25 et 50 au lieu de 5 et 10 pour dormir "jusqu'au soir" et "jusqu'au matin") Changer les 3 montants dans Program\Text\Dialogs\Common_Tavern.h +Program\DIALOGS\russian\Common_Tavern.c => "So how long are you planning on staying?", => DLG_TEXT_BASE[117] du "case room" c'est la ligne 119 dans le fichier réponse : until this evening. == room_night if (makeint(pchar.money) >= 5) ===> si le joueur a au moins 5 pièces d'or (à changer) ==> changer les case room_day-room_night-room_day_next Note : pour enlever 5 pièces d'or => AddMoneyToCharacter(pchar, -5); A remplacer par 25 ou 50. 2) modifiable par quelqu'un déjà expérimenté :***Afficher la position (profession) de l'officier qu'on va assigner au ship que l'on vient de capturer: grâce à GOF, et pour ceux qui ne souhaitent pas y jouer (mais souhaitent avoir cette fonctionnalité dans AckMod comme moi) car trouvent qu'il y a trop de bugs, notamment avec les bateaux->utiliser Winmerge avec les fichiers \Program\INTERFACE\transfer_main.c \RESOURCE\INI\interfaces\transfer_main.ini +ne pas oublier de mettre le fichier INTERFACE\utils\Vorius_utils.c ***Caractéristiques des bateaux : programs\ships\ships_init.c je conseille à AckNuth de mettre mincrew=10% de maxcrew, mais je crois que tu l'as fait depuis le AckMod 4.2 car depuis que j'ai le 6 je trouve le mincrew bien calibré. PS : Acknuth est bien meilleur moddeur que moi ; par ces lignes et ce fil de discussion je ne souhaite pas me montrer plus fort que quiconque, mais juste donner certaines astuces qui ne sont peut-être pas connues de vous. Je ne suis pas débutant ; je connais le jeu et le Ackmod depuis 1 an. ***Encore des améliorations empruntées à GOF : la possibilité de n'afficher que les boulets/nourriture/rhum/denrées de notre bateau, ou uniquement celles du magasin, ou les 2 lorsqu'on est dans un magasin. =>Permet de ne filtrer que ce qui est côté joueur/ ship OU magasin Editer (Winmerge) les fichiers : Program\INTERFACE\itemstrade.c Program\INTERFACE\store.c RESOURCE\INI\interfaces\itemstrade.ini RESOURCE\INI\interfaces\store.ini RESOURCE\INI\texts\russian\common.ini Chercher les mots "BUHO" pour localiser les modifications, et les reporter dans vos fichiers courants. Note : dans ma version du jeu j'ai aussi modifié les bateaux qui apparaissent au vendeur de bateaux des chantiers navals, et les bateaux que je rencontre en haute mer, mais je suggérerai probablement mes paramètres dans un autre fil de discussion, car le nombre de lignes de codes modifiées est assez important. Je sais aussi modifier les compétences des marins recrutés dans les tavernes, mais je les trouve corrects, surtout que ça monte vite lors des combats navals. ASTUCES : ***Commandes pour les compagnons lors d'un combat naval : "G" (suivre), "H" (stopper), and "C" (attaquer) ***Pour bien choisir vos officiers : (cliquer droit sur Navigation/Defense/Précision/etc pour plus de détails) Navigateur : Perception et Intelligence Maître : Agilité et Intelligence Canonnier : Perception et Chance Docteur : Endurance et Charisme Trésorier : Intelligence et Charisme Charpentier: Endurance et Perception. J'espère que ça vous plaira :)
Dernière édition par Alano69 le Ven 18 Avr 2014 - 20:43, édité 1 fois | |
| | | necro Testeur-Contributeur
Messages : 164 Date d'inscription : 14/12/2012 Age : 30 Localisation : C'est dur à expliquer, je suis dans les cales d'un navire remplit d'ossements animés, avec un gars qui s'appelle Henry
| Sujet: Re: Tuto : Mes astuces. Mer 15 Mai 2013 - 18:43 | |
| Joli tuto, merci bien Une question, quelqu'un sait comment modifié les officiers qui apparaissent à la taverne? Je m'explique : les officiers que l'on trouve à la taverne sont: officer_13, officer_14.... j'aimerais rajouter des personnages dans la liste pour faire apparaitre un barrows_55 et me promener avec lui^^ | |
| | | Napaal Administrateur
Messages : 157 Date d'inscription : 16/06/2012 Age : 30
| Sujet: Re: Tuto : Mes astuces. Mer 15 Mai 2013 - 19:08 | |
| Salut , c'est sympa pour les joueurs mais aussi ça peut donné des idées , pourquoi pas remplacé le prix d'une chambre a la taverne. Le sujet Contribution n'est pas approprié au sujet , je vais faire une exception et le déplacé dans "Ressources et tutos" car tu as pris le temps de faire tout ça... Je le renomme en Tutoriel Pour ton travaille je te donne une récompense de 30 pièces d'or , bonne soirée | |
| | | Alano69 Pirate
Messages : 12 Date d'inscription : 28/04/2013
| Sujet: Re: Tuto : Mes astuces. Ven 18 Avr 2014 - 21:00 | |
| Désolé Necro je ne sais pas ou plus. Merci BreakSky ! Voici le fichier Encounters_init que je suggère. Parfois en haute mer on se fait attaquer par un petit bateau de type sloop, et on se retrouve en fait en combat contre des bateaux de classe 3 ou 5. Ce fichier corrige ce bug, et remplace seulement les modèles affichés en haute mer de manière à ce qu'ils correspondent aux bateaux et à leur classe et au nombre qui nous attaque ; il ne modifie pas le nombre ni la classe des bateaux d'origine qui sont générés en haute mer. PS : pour que le résultat de la modification soit visible, il vous faudra redémarrer une nouvelle partie. - Code:
-
void Enc_ExcludeNation(ref rEnc, int iNation) { string sNation = Nations[iNation].Name; rEnc.Nation.Exclude.(sNation) = true; }
void Enc_AddShips(ref rEnc, string sEType, int iShipsMin, int iShipsMax) { rEnc.(sEType).ShipsMin = iShipsMin; rEnc.(sEType).ShipsMax = iShipsMax; }
void Enc_AddClasses(ref rEnc, int iRank, int iMClassMin, int iMClassMax, int iWClassMin, int iWClassMax) { string sRank = "Rank." + iRank; rEnc.(sRank).0 = iMClassMin; rEnc.(sRank).1 = iMClassMax; rEnc.(sRank).2 = iWClassMin; rEnc.(sRank).3 = iWClassMax; }
void InitEncounters() { int i; ref rEnc;
for (i=0; i<MAX_ENCOUNTER_TYPES; i++) { makeref(rEnc, EncountersTypes[i]); rEnc.Index = i; rEnc.Chance = 100; rEnc.Skip = false; rEnc.MinRank = 1; rEnc.MaxRank = 1000; rEnc.Merchant.ShipsMin = 0; rEnc.Merchant.ShipsMax = 0; rEnc.War.ShipsMin = 0; rEnc.War.ShipsMax = 0; rEnc.Type = ENCOUNTER_TRADE; } //// boal áàã ôèêñ äëÿ êâåñòîâûõ, à òî ãåíåðèëèñü â Ê3 makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_ALONE]); rEnc.Chance = 0; rEnc.Skip = true; /////////////////////////////////////////////////////////////////////////////////////// /// 1-2 òîðãîâöà 5-6 êëàññà. /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_SMALL]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 1; rEnc.MaxRank = 400; rEnc.worldMapShip = "sloop"; Enc_AddShips(rEnc, "Merchant", 1, 2); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 4, 6, 0, 0); Enc_AddClasses(rEnc, 1000,4, 6, 0, 0); /////////////////////////////////////////////////////////////////////////////////////// /// 1-1 òîðãîâöà 5-6 êëàññà.By Acknuth /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_ALONESMALL]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 1; rEnc.MaxRank = 400; rEnc.worldMapShip = "sloop"; Enc_AddShips(rEnc, "Merchant", 1, 1); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 4, 6, 0, 0); Enc_AddClasses(rEnc, 1000,4, 6, 0, 0); /////////////////////////////////////////////////////////////////////////////////////// /// 1-1 òîðãîâöà 5-6 êëàññà. /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_ALONEBIG]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 7; rEnc.MaxRank = 1000; rEnc.worldMapShip = "bark"; Enc_AddShips(rEnc, "Merchant", 1, 1); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 1, 3, 0, 0); Enc_AddClasses(rEnc, 1000,4, 6, 0, 0); /////////////////////////////////////////////////////////////////////////////////////// /// 2-4 òîðãîâöà 5-6 êëàññà. /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_MEDIUM]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 4; rEnc.MaxRank = 800; rEnc.worldMapShip = "bark"; Enc_AddShips(rEnc, "Merchant", 2, 4); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 4, 6, 0, 0); Enc_AddClasses(rEnc, 1000,4, 6, 0, 0);
/////////////////////////////////////////////////////////////////////////////////////// /// 3-5 òîðãîâöà 4-6 êëàññà. /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_LARGE]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 5; rEnc.MaxRank = 1000; rEnc.worldMapShip = "galleon"; Enc_AddShips(rEnc, "Merchant", 2, 5); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 1, 3, 0, 0); Enc_AddClasses(rEnc, 1000,1, 3, 0, 0); /////////////////////////////////////////////////////////////////////////////////////// /// 1-3 òîðãîâöà 5-6 êëàññà ïëþñ 1 êîðàáëü îõðàíû /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_GUARD_SMALL]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 1; rEnc.MaxRank = 400; rEnc.worldMapShip = "sloop"; Enc_AddShips(rEnc, "Merchant", 1, 3); Enc_AddShips(rEnc, "War", 1, 1); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 4, 6, 4, 5); Enc_AddClasses(rEnc, 1000,4, 6, 4, 5); /////////////////////////////////////////////////////////////////////////////////////// /// 2-3 òîðãîâöà 5-6 êëàññà ïëþñ 1-2 êîðàáëÿ îõðàíû /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_GUARD_MEDIUM]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 4; rEnc.MaxRank = 800; rEnc.worldMapShip = "bark"; Enc_AddShips(rEnc, "Merchant", 2, 3); Enc_AddShips(rEnc, "War", 1, 2); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 3, 5, 3, 4); Enc_AddClasses(rEnc, 1000,3, 5, 3, 4); /////////////////////////////////////////////////////////////////////////////////////// /// 3-5 òîðãîâöà 4-6 êëàññà ïëþñ 1-2 êîðàáëÿ îõðàíû /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_MERCHANT_GUARD_LARGE]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 10; rEnc.MaxRank = 1000; rEnc.worldMapShip = "galleon"; Enc_AddShips(rEnc, "Merchant", 2, 3); Enc_AddShips(rEnc, "War", 1, 3); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 1, 3, 1, 3); Enc_AddClasses(rEnc, 1000,1, 3, 1, 3); /////////////////////////////////////////////////////////////////////////////////////// /// 2-3 òîðãîâöà 3-4 êëàññà ïëþñ 1-2 êîðàáëÿ îõðàíû /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_ESCORT_SMALL]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 3; rEnc.MaxRank = 800; rEnc.worldMapShip = "bark"; Enc_AddShips(rEnc, "Merchant", 2, 3); Enc_AddShips(rEnc, "War", 1, 2); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 2, 3, 5, 3, 4); Enc_AddClasses(rEnc, 1000,3, 5, 3, 4);
/////////////////////////////////////////////////////////////////////////////////////// /// 2-4 òîðãîâöà 3-4 êëàññà ïëþñ 2-3 êîðàáëÿ îõðàíû /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_ESCORT_MEDIUM]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 6; rEnc.MaxRank = 800; rEnc.worldMapShip = "galleon"; Enc_AddShips(rEnc, "Merchant", 1, 3); Enc_AddShips(rEnc, "War", 1, 2); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 3, 3, 4, 2, 4); Enc_AddClasses(rEnc, 1000,3, 4, 2, 4); /////////////////////////////////////////////////////////////////////////////////////// /// 3-5 òîðãîâöà 3-4 êëàññà ïëþñ 2-4 êîðàáëÿ îõðàíû /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_ESCORT_LARGE]); rEnc.Type = ENCOUNTER_TRADE; rEnc.MinRank = 8; rEnc.MaxRank = 1000; rEnc.worldMapShip = "manowar"; Enc_AddShips(rEnc, "Merchant", 2, 3); Enc_AddShips(rEnc, "War", 2, 3); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 4, 1, 4, 1, 3); Enc_AddClasses(rEnc, 1000,1, 4, 1, 3);
// ======================== WAR ENCOUNTERS ======================== /////////////////////////////////////////////////////////////////////////////////////// /// 1-2 âîåííûõ êîðàáëÿ 4-6 êëàññà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_PATROL_SMALL]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 1; rEnc.MaxRank = 400; rEnc.worldMapShip = "bark"; Enc_AddShips(rEnc, "War", 1, 3); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 0, 0, 3, 5); Enc_AddClasses(rEnc, 1000,0, 0, 3, 5); /////////////////////////////////////////////////////////////////////////////////////// /// 2-4 âîåííûõ êîðàáëÿ 3-5 êëàññà ///////////////////////////////////////////////////////////////////////////////////////
makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_PATROL_MEDIUM]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 10; rEnc.MaxRank = 800; rEnc.worldMapShip = "frigate"; Enc_AddShips(rEnc, "War", 2, 4); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 2, 0, 0, 2, 5); Enc_AddClasses(rEnc, 1000,0, 0, 2, 5); /////////////////////////////////////////////////////////////////////////////////////// /// 3-5 âîåííûõ êîðàáëÿ 3-4 êëàññà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_PATROL_LARGE]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 14; rEnc.MaxRank = 1000; rEnc.worldMapShip = "frigate"; Enc_AddShips(rEnc, "War", 2, 5); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 3, 0, 0, 1, 3); Enc_AddClasses(rEnc, 1000,0, 0, 1, 3); /////////////////////////////////////////////////////////////////////////////////////// /// 1-2 ïèðàòà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_PIRATE_SMALL]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 1; rEnc.MaxRank = 400; rEnc.worldMapShip = "sloop"; Enc_AddShips(rEnc, "War", 1, 2); Enc_ExcludeNation(rEnc, ENGLAND); Enc_ExcludeNation(rEnc, FRANCE); Enc_ExcludeNation(rEnc, SPAIN); Enc_ExcludeNation(rEnc, HOLLAND); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 1, 0, 0, 4, 5); Enc_AddClasses(rEnc, 1000,0, 0, 4, 5);
/////////////////////////////////////////////////////////////////////////////////////// /// 1-4 ïèðàòà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_PIRATE_MEDIUM]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 6; rEnc.MaxRank = 800; rEnc.worldMapShip = "bark"; Enc_AddShips(rEnc, "War", 1, 4); Enc_ExcludeNation(rEnc, ENGLAND); Enc_ExcludeNation(rEnc, FRANCE); Enc_ExcludeNation(rEnc, SPAIN); Enc_ExcludeNation(rEnc, HOLLAND); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 2, 0, 0, 3, 5); Enc_AddClasses(rEnc, 1000,0, 0, 3, 5); /////////////////////////////////////////////////////////////////////////////////////// /// 2-6 ïèðàòà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_PIRATE_LARGE]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 8; rEnc.MaxRank = 1000; rEnc.worldMapShip = "galleon"; Enc_AddShips(rEnc, "War", 2, 5); Enc_ExcludeNation(rEnc, ENGLAND); Enc_ExcludeNation(rEnc, FRANCE); Enc_ExcludeNation(rEnc, SPAIN); Enc_ExcludeNation(rEnc, HOLLAND); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 3, 0, 0, 2, 3); Enc_AddClasses(rEnc, 1000,0, 0, 2, 3); /////////////////////////////////////////////////////////////////////////////////////// /// 2-3 âîåííûõ êîðàáëÿ 3-4 êëàññà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_SQUADRON]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 8; rEnc.MaxRank = 1000; rEnc.worldMapShip = "frigate"; Enc_AddShips(rEnc, "War", 2, 3); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 4, 0, 0, 1, 3); Enc_AddClasses(rEnc, 1000,0, 0, 1, 3); /////////////////////////////////////////////////////////////////////////////////////// /// 3-5 âîåííûõ êîðàáëÿ 2-4 êëàññà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_FLEET]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 12; rEnc.MaxRank = 1000; rEnc.worldMapShip = "manowar"; Enc_AddShips(rEnc, "War", 3, 5); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 5, 0, 0, 1, 4); Enc_AddClasses(rEnc, 1000,0, 0, 1, 4); /////////////////////////////////////////////////////////////////////////////////////// /// 3-7 âîåííûõ êîðàáëÿ 1-3 êëàññà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_ARMADA]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 18; rEnc.MaxRank = 1000; rEnc.Chance = 30; rEnc.worldMapShip = "manowar"; Enc_AddShips(rEnc, "War", 3, 6); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 6, 0, 0, 1, 2); Enc_AddClasses(rEnc, 1000,0, 0, 1, 2); /////////////////////////////////////////////////////////////////////////////////////// /// 2-4 âîåííûõ êîðàáëÿ 1-3 êëàññà /////////////////////////////////////////////////////////////////////////////////////// makeref(rEnc, EncountersTypes[ENCOUNTER_TYPE_PUNITIVE_SQUADRON]); rEnc.Type = ENCOUNTER_WAR; rEnc.MinRank = 14; rEnc.MaxRank = 1000; rEnc.Chance = 30; rEnc.worldMapShip = "manowar"; Enc_AddShips(rEnc, "War", 2, 4); Enc_ExcludeNation(rEnc, PIRATE); Enc_ExcludeNation(rEnc, MORVIS); Enc_AddClasses(rEnc, 6, 0, 0, 1, 3); Enc_AddClasses(rEnc, 1000,0, 0, 1, 3);
Trace("Init encounters complete."); }
Dernière édition par Alano69 le Sam 19 Avr 2014 - 13:40, édité 1 fois | |
| | | Alano69 Pirate
Messages : 12 Date d'inscription : 28/04/2013
| Sujet: Re: Tuto : Mes astuces. Ven 18 Avr 2014 - 21:09 | |
| Je conseille aussi de modifier le fichier ShipsUtilites.c de manière à modifier tous les vendeurs/acheteurs de bateaux/cannons au chantier naval. Le code qui suit permet d'avoir plus de probabilité d'avoir des navires de classe 4-3-2-1 (les gros bateaux). Bien sûr j'ai fait en sorte que ce soit quand même plus difficile de trouver en vente un bateau de classe 1 qu'un bateau de classe 2 ou 3 ou 4 ! Avec ce code on a 2 chances sur 8 de trouver un bateau de classe 1 au chantier naval lorsqu'on a au moins atteint le niveau 20. Par exemple si on est niveau 19 on ne trouvera jamais de bateau de classe 1 au chantier naval, mais on pourra trouver des bateaux de classe 2,3,4,5,ou 6. Cette fois pas besoin de modifier tout un fichier ; juste remplacer le paragraphe void SetShipyardStore(ref NPChar) {} par ce qui suit : - Code:
-
void SetShipyardStore(ref NPChar) { int iTest_ship, i; string attrName; if (CheckAttribute(NPChar, "shipyard")) return; // åùå åñòü êîðàáëè ñ òîãî ðàçà SaveCurrentNpcQuestDateParam(npchar, "shipyardDate"); // äàòà çàïîëíåíèÿ âåðôè if (bBettaTestMode) { for (i = 1; i <=SHIP_TYPES_QUANTITY; i++) { attrName = "ship" + i; FillShipParamShipyard(NPChar, GenerateStoreShip(i-1), attrName); } return; } FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_TARTANE), "ship1"); iTest_ship = rand(2); if (iTest_ship == 1) { FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_WAR_TARTANE), "ship2"); } if (iTest_ship == 2) { FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_LUGGER), "ship2"); }
iTest_ship = rand(3); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_SLOOP), "ship3"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BOUNTY), "ship3"); if (iTest_ship == 3) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_CARAVELR), "ship3");
if (sti(PChar.rank) > 1) { iTest_ship = rand(3); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_SCHOONER), "ship4"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BARQUE), "ship4"); iTest_ship = rand(3); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BAKU), "ship5"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BRIGANTINE), "ship5"); } if (sti(PChar.rank) > 4) { iTest_ship = rand(4); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BRIGSMALL), "ship8"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_CARAVEL), "ship8"); iTest_ship = rand(4); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_FLEUT), "ship9"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_HANNAH), "ship9"); iTest_ship = rand(4); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_INTERCEPTOR), "ship10"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_CARAVEL), "ship10"); } if (sti(PChar.rank) > 7) { iTest_ship = rand(5); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BRIG), "ship11"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_FLEUT), "ship11"); iTest_ship = rand(5); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_SHNYAVA), "ship12"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_GALEON_L), "ship12"); iTest_ship = rand(5); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BRIG), "ship13"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_HOOKER1), "ship13"); } if (sti(PChar.rank) > 10) { iTest_ship = rand(6); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_GALEON_L), "ship14"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_CORVETTE), "ship14"); iTest_ship = rand(6); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_GALEON_H), "ship15"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_PINNACE), "ship15"); } if (sti(PChar.rank) > 14) { iTest_ship = rand(7); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_FRIGATE), "ship141"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_CORVETTE), "ship141"); iTest_ship = rand(7); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_FRIGATE), "ship151"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_PINNACE), "ship151"); if (iTest_ship == 3) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_GALEON_H), "ship151"); } if (sti(PChar.rank) > 20) { iTest_ship = rand(8); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_LINESHIP), "ship16"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_WARSHIP), "ship16"); if (iTest_ship == 3) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_BATTLESHIP), "ship16");
iTest_ship = rand(8); if (iTest_ship == 1) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_INDIAMAN), "ship17"); if (iTest_ship == 2) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_GREYHOUND), "ship17"); if (iTest_ship == 3) FillShipParamShipyard(NPChar, GenerateStoreShip(SHIP_SEVENPROVINCIEN), "ship17"); } }
Note : un paragraphe est en fait une fonction écrite en language C | |
| | | Alano69 Pirate
Messages : 12 Date d'inscription : 28/04/2013
| Sujet: Re: Tuto : Mes astuces. Ven 18 Avr 2014 - 21:14 | |
| Le code qui suit permet de réduire l'argent qu'on reçoit lorsqu'on vend un navire réquisitionné (Rassurez-vous malgré le prix diminué il est toujours facile de se retrouver très vite avec plusieurs millions de piastres). Chercher le fichier shipyard.c et modifier la fonction (le paragraphe) comme ci-dessous : - Code:
-
int GetSellPrice(ref _chr) { int st = GetCharacterShipType(_chr); int price = GetShipPriceByType(st); price = makeint(price - 1.5*GetSailRepairCost(st, GetSailDamagePercent(_chr))); price = makeint(price - 1.5*GetHullRepairCost(st, GetHullDamagePercent(_chr)));
float nCommerce = GetSummonSkillFromNameToOld(GetMainCharacter(), SKILL_COMMERCE) + 0.001;
if(CheckOfficersPerk(pchar,"AdvancedCommerce")) { nCommerce += 2; } else { if(CheckOfficersPerk(pchar,"BasicCommerce")) { nCommerce += 2; } }
price = price - price / (nCommerce*2);
ref rRealShip = GetRealShip(st);
if (sti(rRealShip.Stolen) == true) //ïðîâåðêà íà âîðîâàííûé { price = makeint(price/4); } if (price < 0 && sti(_chr.Ship.Type) != SHIP_NOTUSED) { price = 0; }
return price; } | |
| | | Acknuth Administrateur
Messages : 355 Date d'inscription : 02/03/2011 Age : 43 Localisation : Québec
| Sujet: Re: Tuto : Mes astuces. Ven 18 Avr 2014 - 21:45 | |
| Bonjour à tous ! Il est impossible de plaire à tout les types de joueurs en même temps alors les tuto qui explique comment adapté les paramètres du jeux sont particulièrement utile. Ça permet à tous et chacun d'adapté son jeux selon ça façon de joué Un bon exemple est que le calibrage de ma version personnel ne seras pas la même que sur la version distribué... Une mention à ce sujet, conservez toujours une sauvegarde des fichiers que vous modifiez afin de pouvoir les récupéré en cas de problèmes...Une simple virgule mal placé peut empêché le jeux de se lancé où peut causé des bugs assez disgracieux... On avais déjà discuté BreakSy et moi de la possibilité de faire des patch facultative pour le AckMod, plusieurs des éléments que tu à apporté y aurait leur place Bien sur, ces patch ne sont pas encore en préparation, j'ai le projet de base (AckMod 6.6) à terminé et la version 6.66 qui devrais suivre... Mais il serais bête de ne pas envisagé des packs (navires, perso, recalibrage) qui pourraient être installé sur la version final du mod... | |
| | | Alano69 Pirate
Messages : 12 Date d'inscription : 28/04/2013
| Sujet: Re: Tuto : Mes astuces. Sam 19 Avr 2014 - 13:42 | |
| Merci Acknuth, et en effet il est utile de dire de bien sauvegarder chaque fichier avant chaque modification. | |
| | | Contenu sponsorisé
| Sujet: Re: Tuto : Mes astuces. | |
| |
| | | | Tuto : Mes astuces. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|