ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/doc/playbook-html/gods-extract
Revision: 1.1
Committed: Fri Feb 3 07:12:42 2006 UTC (18 years, 5 months ago) by root
Branch: MAIN
Branch point for: UPSTREAM
Log Message:
Initial revision

File Contents

# User Rev Content
1 root 1.1
2     # parse the crossfire -m8 output
3    
4     BEGIN {
5     crosscmd = crosscmd " 2>&1";
6     god = 0;
7     while (crosscmd | getline buff == 1) {
8     if(buff ~ /GOD/) { god++; gift[god] =0; name[god] = get_entry(buff,2," "); }
9     if(!god) continue;
10     if(buff ~ /enemy:/) enemy[god] = get_entry(buff,2," ");
11     if(buff ~ /aligned/) aligned[god] = get_entry(buff,2," ");
12     if(buff ~ /enemy_race/) erace[god] = get_entry(buff,2," ");
13     if(buff ~ /servant/) servant[god] = get_entry(get_entry(get_entry(buff,2,": "),1,")"),2"(");
14     if(buff ~ /Attacks:/) atype[god] = get_entry(get_entry(buff,2,": "),1,")");
15     if(buff ~ /Immune:/) immune[god] = get_entry(get_entry(buff,2,": "),1,")");
16     if(buff ~ /Prot:/) prot[god] = get_entry(get_entry(buff,2,": "),1,")");
17     if(buff ~ /Vuln:/) vuln[god] = get_entry(get_entry(buff,2,": "),1,")");
18     if(buff ~ /Attuned:/) attuned[god] = get_entry(get_entry(buff,2,": "),1,")");
19     if(buff ~ /Repelled:/) repelled[god] = get_entry(get_entry(buff,2,": "),1,")");
20     if(buff ~ /Denied:/) denied[god] = get_entry(get_entry(buff,2,": "),1,")");
21     if(buff ~ /Desc:/) desc[god] = get_entry(get_entry(buff,2,": "),1,",");
22     if(buff ~ /Priest/ || gift[god]) {
23     if(!buff) continue;
24     special[god,gift[god]++] = buff;
25     }
26     # printf(" %s \n", buff);
27     }
28     close(crosscmd);
29     for(i=1;i<=god;i++) {
30     printf("<table border=1 cellpadding=3 width=100%%><tr><th width=20%%>%s</th><td>%s</td></tr>\n", name[i], capitalize(desc[i]));
31     if(enemy[i]) printf("<tr><td>Enemy cult:</td><td>%s</td></tr>\n", enemy[i]);
32     # if(servant[i]) printf("<tr><td>Servant:</td><td>%s</td></tr>\n ", servant[i]);
33     if(aligned[i]) prt_var("<tr><td>Aligned race(s):",aligned[i],",",3);
34     if(erace[i]) prt_var("<tr><td>Enemy race(s): ",erace[i],",",3);
35     if(atype[i]) prt_var("<tr><td>Attacktype(s): ",atype[i],",",3);
36     if(immune[i]) prt_var("<tr><td>Immunity: ",immune[i],",",3);
37     if(prot[i]) prt_var("<tr><td>Protected: ",prot[i],",",3);
38     if(vuln[i]) prt_var("<tr><td>Vulnerable: ",vuln[i],",",3);
39     if(attuned[i]) prt_var("<tr><td>Attuned: ",attuned[i],",",3);
40     if(repelled[i]) prt_var("<tr><td>Repelled: ",repelled[i],",",3);
41     if(denied[i]) prt_var("<tr><td>Denied: ",denied[i],",",3);
42     for(j=1;j<gift[i];j++) {
43     if(j==1) printf("<tr><td>Added gifts/limits:</td><td> ");
44     if (j!=1) print(", ");
45     printf("%s",special[i,j]);
46     }
47     if (gift[i]!=0) print("</td></tr>\n");
48     print("</table><p>");
49     }
50     }
51    
52     function prt_var (hstr,vstr,sep,len) {
53     printf("%s </td><td> ",hstr); prtlong(vstr,sep,len);
54     }
55    
56    
57     function get_entry (str,start,sep) {
58     nr = split(str, var, sep);
59     for(k=start;k<=nr;k++) {
60     if(var[k]==" ") continue;
61     break;
62     }
63     while(var[k] ~ /_/ ) { sub("_", " ", var[k]); }
64     return var[k];
65     }
66    
67     function prtlong (str,sep,max) {
68     nr = split(str, var, sep);
69     printf("\n");
70     for(l=1;l<=nr;l++) {
71     if(var[l] == "(null)") var[l] = "None";
72     if(l==nr) printf("%s </td></tr>\n",capitalize(var[l]));
73     else printf("%s,",capitalize(var[l]));
74     }
75     }
76    
77     function capitalize(str) {
78     return toupper(substr(str, 1, 1)) substr(str, 2);
79     }
80