Le rendez-vous de l'île d'or


Le site officiel du AckMod
 
AccueilPortailMembresGroupesS'enregistrerConnexion
Ohé les pirates ! Necro cherche des volontaires pour traduire les dialogues de : to each his own . contactez le par MP
Vous devez être identifié et enregistré pour accéder à tout le contenu du forum !

Partagez | 
 

 Tuto : Mes astuces.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Alano69
Pirate
Pirate


Messages : 12
Date d'inscription : 28/04/2013

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
necro
Testeur-Contributeur
Testeur-Contributeur


Messages : 142
Date d'inscription : 14/12/2012
Age : 22
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

MessageSujet: 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^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
BreakSy
Administrateur
Administrateur


Messages : 157
Date d'inscription : 16/06/2012
Age : 22
Localisation : Je navigue sur les 7 mers , accompagné d'Acknuth , sur un vaisseau dont les voiles sont noire.

MessageSujet: 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

_________________
Capitaine BreakSy, Fidèle capitaine de l'île d'or, pour tous nouveau marin en quête de piraterie, je suis à votre écoute.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://l-ile-d-or.forumgratuit.org
Alano69
Pirate
Pirate


Messages : 12
Date d'inscription : 28/04/2013

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Alano69
Pirate
Pirate


Messages : 12
Date d'inscription : 28/04/2013

MessageSujet: 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
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Alano69
Pirate
Pirate


Messages : 12
Date d'inscription : 28/04/2013

MessageSujet: 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;
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Acknuth
Administrateur
Administrateur


Messages : 355
Date d'inscription : 02/03/2011
Age : 35
Localisation : Québec

MessageSujet: 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é... Evil or Very Mad

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...


_________________
Priez le seigneur et faites passé les munitions !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://l-ile-d-or.forumgratuit.org
Alano69
Pirate
Pirate


Messages : 12
Date d'inscription : 28/04/2013

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Tuto : Mes astuces.   Aujourd'hui à 13:32

Revenir en haut Aller en bas
 
Tuto : Mes astuces.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [TUTO]Des Astuces PS3
» [TUTO] Le Yama Tsukami
» [TUTO] Le Gypceros ...
» [Tuto] La Forgemagie
» Doom Builder - Tutorial, astuces, et informations

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le rendez-vous de l'île d'or :: Age Of Pirates 2 - AckMod :: Tutoriaux Officiels-
Sauter vers: