Le rendez-vous de l'île d'or
Le rendez-vous de l'île d'or
Le rendez-vous de l'île d'or
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Le site officiel du AckMod
 
AccueilPortailDernières imagesS'enregistrerConnexion
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 !
Le Deal du moment : -20%
-20% Récupérateur à eau mural 300 ...
Voir le deal
79 €

 

 Tuto : Mes astuces.

Aller en bas 
4 participants
AuteurMessage
Alano69
Pirate
Pirate



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

Tuto : Mes astuces. Empty
MessageSujet: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeMer 15 Mai 2013 - 18:23

Bonjour Tuto : Mes astuces. 1010410637,

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 Tuto : Mes astuces. 2398211921 :
***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é Tuto : Mes astuces. 2031569955:
***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  Tuto : Mes astuces. 3590638331  : 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 : Tuto : Mes astuces. 2941667468
***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 :)  Tuto : Mes astuces. 3534569468


Dernière édition par Alano69 le Ven 18 Avr 2014 - 20:43, édité 1 fois
Revenir en haut Aller en bas
necro
Testeur-Contributeur
Testeur-Contributeur
necro


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

Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeMer 15 Mai 2013 - 18:43

Joli tuto, merci bien Tuto : Mes astuces. 1575622260

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
Napaal
Administrateur
Administrateur
Napaal


Messages : 157
Date d'inscription : 16/06/2012
Age : 29

Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeMer 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 Tuto : Mes astuces. 2941667468
Revenir en haut Aller en bas
https://l-ile-d-or.forumgratuit.org
Alano69
Pirate
Pirate



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

Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeVen 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
Alano69
Pirate
Pirate



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

Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeVen 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
Alano69
Pirate
Pirate



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

Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeVen 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
Acknuth
Administrateur
Administrateur
Acknuth


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

Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeVen 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é Tuto : Mes astuces. 995439709 

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  Tuto : Mes astuces. 995439709 

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

Revenir en haut Aller en bas
https://l-ile-d-or.forumgratuit.org
Alano69
Pirate
Pirate



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

Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitimeSam 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
Contenu sponsorisé





Tuto : Mes astuces. Empty
MessageSujet: Re: Tuto : Mes astuces.   Tuto : Mes astuces. Icon_minitime

Revenir en haut Aller en bas
 
Tuto : Mes astuces.
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Tuto : Viré un officier
» Tuto: Modifié un cannon
» Tuto : Modifié les voiles d'un navire
» Tuto : Officiers invincible + loyauté max
» Tuto : Recruter ,Competence des Officiers

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: