https://www.17buddies.rocks/index.html

17's Buddies Maps HL1 Maps HL2 Wads Plan des Maps
17 Buddies
Only for stats

Welcome Guest ( Log In | Register )

Les Textures Utilisées Par Une Map Cs:source ?
Nosferatu
post 27/10/2004 - 09:31:12 |   Post #1
+Reply

Group: 17 Buddies
Posts: 5 245
Joined: 15/01/2004

fr 
Team:
KiNdReD


Comment faire pour les lister ?
Post PM
Website
Go to the top of the page
 
New
Replies
Nosferatu
post 28/10/2004 - 00:50:52 |   Post #2
+Reply

Group: 17 Buddies
Posts: 5 245
Joined: 15/01/2004

fr 
Team:
KiNdReD


bon j'ai solutionné mon probleme grace à un script perl .... et un bind magique bind "F4" "+mat_texture_list" .... et beaucoup de temps ...

et tout ça pour demeller un pack de map dont la moitié sont des beta et le reste des map sans grand interet ....

QUOTE
#!/usr/bin/perl

my(%textures,$indicedir);
$indicedir=0;

#Charge la liste des textures du Pack
sub analyseTexturesPacksDir {
  my ($materails,$parent)=@_;
  $indicedir+=1;
  $dirname=DIR . $indicedir;
  unless (opendir($dirname,$materails . "/" . $parent)) {
    die("$materails introuvable");
  }
  while ($directory=readdir($dirname)) {
    if (($directory !~ /^\.$/) and ($directory!~ /^\.\.$/)) {
      if (-d $materails . "/" . $parent . "/" . $directory) {
        analyseTexturesPacksDir($materails . "/" . $parent, $directory);
      } else {
        $directory =~ s/\.\w*$//g;
        $texture= lc($parent . "/" . $directory);
        $textures{$texture}=$parent . "/" . $directory;
      }   
    }
  }
  closedir($dirname);
}

sub loadTexturesPacks {
  my ($materials)=@_;
  unless (opendir(MATERIALS,$materials)) {
    die("$materails introuvable");
  }
  while ($directory=readdir(MATERIALS)) {
    if (($directory ne ".") and ($directory ne "..")) {
      if (-d ($materials . "/" . $directory)) {
        analyseTexturesPacksDir($materials, $directory);
      }
    }
  }
  closedir(MATERIALS);
}

#Analyse le fichier de texture d'une map
sub analyseTextureFile {
  my ($fichier, $materials, $cible)=@_;
  local($ligne,$target);
  unless (open(TEXTURES,$fichier)) {
    die("$fichier introuvable");
  }
  $ligne=<TEXTURES>; #La première ligne c'est les titres des colonnes
  while ($ligne=<TEXTURES>) {
    chomp($ligne);
    $ligne =~ s/\\/\//g;
    $ligne=lc($ligne);
    $ligne =~ s/^([^\s]*)\s.*$/$1/g;
    if (defined($textures{$ligne})) {
      $rep=$textures{$ligne};
      $fichier=$textures{$ligne};
      $rep=~ s/^([^\/]*)\/(.*)$/$1/;
      $fichier=~ s/^([^\/]*)\/(.*)$/$2/;
      $target=$cible . "/materials";
      if (! (-e $target)) {
        mkdir($target, 0777);
      }
      while ($rep ne $fichier) {
        $target = $target ."/". $rep;
        if (! (-e $target)) {
          mkdir($target, 0777);
        }
        $rep=$fichier;
        $rep=~ s/^([^\/]*)\/(.*)$/$1/;
        $fichier=~ s/^([^\/]*)\/(.*)$/$2/;

      }
      $cmdline="cp -p " . $materials . "/" . $textures{$ligne} . ".* " . $target;
      `$cmdline`;
    }
  }
}

#Code principal
$mapDir="/home/nosferatu/HL2MapAnalyser/Packs";
$mapCible="/home/nosferatu/HL2MapAnalyser/Cible";
$mapTextures="/home/nosferatu/HL2MapAnalyser/Textures";
loadTexturesPacks($mapDir . "/materials");
  my ($map);
  unless (opendir(MAPS,$mapDir . "/maps")) {
    die($mapDir . "/maps introuvable");
  }
  while ($map=readdir(MAPS)) {
    if ($map =~ /\.bsp/) {
      if (-f ($mapDir . "/maps/" . $map)) {
          $map=~ s/\.bsp*$//g;
          mkdir($mapCible . "/". $map, 0777);
          mkdir($mapCible . "/". $map . "/maps", 0777);
          `cp -p $mapDir/maps/$map.* $mapCible/$map/maps/` ;
          if (-e ($mapTextures . "/" . $map . ".txt")) {
            analyseTextureFile($mapTextures . "/" . $map . ".txt", $mapDir . "/materials",$mapCible . "/". $map);
          } else {
            print "Can't find " . $map . ".txt\n";
          }
      }
    }
  }
  closedir(MAPS);


faudra que je le perfectionne un poil .... mais bon d'ici la sortie de HL² et l'arrivée du SDK permettant de créer des maps, les choses auront probablement changées

donc ...
Post PM
Website
Go to the top of the page

Posts in this topic
- Nosferatu   Les Textures Utilisées Par Une Map Cs:source ?   27/10/2004 - 09:31:12
- - V3nom   décompilation du GCF (si gcf il y a ) avec l...   27/10/2004 - 17:12:06
- - Chapo   Voir gcf scape dans la rubrique downloads   27/10/2004 - 17:34:25
- - V3nom   j'ais hésité à marquer "cf section dow...   27/10/2004 - 17:39:44
- - Nosferatu   et ça marche pour du cs:source votre truc ? j...   27/10/2004 - 18:08:05
- - Chapo   Ha ben non, ça marchera pas Si tu veux conn...   27/10/2004 - 18:13:31
- - Nosferatu   j'ai testé et non ça ne colle pas .... en ...   27/10/2004 - 18:19:43
- - V3nom   et pour les textures dites "de base" tu ...   27/10/2004 - 18:25:56
- - Nosferatu   pas sur le serveur y a pas de gcf sur le serveur...   27/10/2004 - 18:31:23
- - Acidounet   Pour information la structure sur les serveurs lin...   27/10/2004 - 18:43:51
- - Nosferatu   bon j'ai solutionné mon probleme grace à un ...   28/10/2004 - 00:50:52
- - V3nom   Source SDK   06/11/2004 - 11:25:27
- - Chapo   Ca mériterait une ch'tite news ça Tout ...   06/11/2004 - 11:40:02
- - V3nom   inaperçu car on en est toujours au même point......   06/11/2004 - 11:47:09
- - Nosferatu   pour le pre SDK il se download ? paske j'avai...   06/11/2004 - 14:41:02
- - V3nom   en fait c'est une fenettre suplémentaire de s...   06/11/2004 - 14:48:32
- - Nosferatu   han viens de voir qu'il était disponible via ...   06/11/2004 - 14:49:34
- - Chapo   Mouais...Sauf qu'il faut avoir cs:source pour ...   06/11/2004 - 17:51:37
- - Nosferatu   T'en as pas besoin bon j'ai fait ma prem...   06/11/2004 - 18:33:08

9 User(s) are reading this topic (9 Guests and 0 Anonymous Users)
0 Members:

Quick ReplyNew
 


RSS Lo-Fi Version
 
Skin © Chapo