[php] Totalkills script blijft maar bijvullen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Webgnome
  • Registratie: Maart 2001
  • Laatst online: 08:47
Hoi mensen,


Ik heb een tijdje terug het spel Ravenshield gekocht en heb daar een scriptje voor gevonden die de serverstats laat zien. Nu ben ik dat script aan het uitbreiden en heb het al zover dat ie de totalen vanalle kills van 1 match laat zien.

Nu ben ik bezig om dat totaal op te laten schrijven in een tekstbestand. Dit werkt, hij haalt het er zelfs uit! Vervolgens als het totaal in het bestand groter is als het totaal van die match dan moet ie het getal van de match optellen bij het totaal in het bestand. Dit gaat allemaal goed. Echter we hebben , liever gezegd ik, 1 probleem. Als ik op f5 ram dan gaat hij rustig door met tellen en dus kom je op op een steeds hoger getal uit wat niet klopt met het echte totaal.. Dit is de code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$new_ar = $karray;

$total = array_sum ($new_ar);
if ($total != 0) {
$total2 = $total+total2;
}else{
$total2 = $total;
}
echo $total2;
echo "<br>";

$handle = fopen ("kills.txt", "r");
$buffer = fgets($handle, 4096);
$total3 = $buffer + $total2;

if( $total2 >= $buffer && $total2 == $total3 ){
    $out = fopen("kills.txt", "w");
    fwrite($out, $total2);
    echo($buffer);
    
}elseif( $total2 < $buffer ) {
    
    $out = fopen("kills.txt", "r+");
    fwrite($out, $total3);
    echo($buffer);
}
echo($buffer);

ik heb al geprobeert dit te omzeilen dor een extra voorwaarde in de elsif te zetten (i=0) en dan i te laten optellen in de elseif maar dat werkt ook niet omdat hij eht dan helemaal niet meer update..

Wie kan mij hierbij helpen? Het is very frustrating omdat het eigenlijkj vrij simpel zou moeten zijn :P

[ Voor 16% gewijzigd door Webgnome op 16-08-2003 14:34 . Reden: even de volledige code erbij geplant ]

Strava | AP | IP | AW


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
waar haal je $total2 vandaan?

Acties:
  • 0 Henk 'm!

  • redpen
  • Registratie: Maart 2003
  • Laatst online: 13-08 23:44
dit is maar een stukje van het script daarboven wordt alles in variabele gedaan en de kills staat dus in total

beter 10 servers in de lucht dan 1 op de grond


Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Er van uitgaande dat $total een integer is dus een getalletje, dan zit je denk ik fout in je $buffer aan gezien je de eerste 4096 bytes uit kills.txt haalt.

Ben verder geen expert op dit gebied, heb nog maar weinig gedaan met data uit bestanden halen.

[edit]

Het ziet er naar uit dat $total2 op de een of andere manier altijd kleiner is als $buffer.

Dus ik denk dat je fout daar ergens in zit

[ Voor 23% gewijzigd door Suepahfly op 16-08-2003 14:38 ]


Acties:
  • 0 Henk 'm!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

regel 7 is eigenlijk:
PHP:
7
$total2 = 0;


regel 16, eigenlijk:
PHP:
16
if($buffer == 0 && $total2 >= 0)
...merk op dat dit (afhankelijk van wat je in total2 gooit, maar ik neem aan dat negatieve getallen niet zullen voorkomen) voor $buffer=0 altijd tot true zal evalueren. De tweede if in regel 21 komt dan niet van pas.

edit:
...
Regel 14 is helemaal koeterwaals, valt me nu op. $buffer bevat een string, en die ga je met integers vergelijken :? Doe eens een overzichtje van hoe dat bestand is opgebouwd? Weet je zeker dat implicit conversion hier de way to go is?

Namen als total1, total2, total3 zijn ook niet echt behulpzaam ($oudefilesize, $nieuwefilesize, $weetikveelfilesize, $isdefilesizewelgrootgenoeg lijken me beter van toepassing).

Kortom: ik heb geen idee wat deze code zou moeten doen >:) Ik zou iig ff posten hoe je aan total2 komt en in je inleiding vertellen welke variabelen met welke waarden overeenkomen.

[ Voor 21% gewijzigd door Rataplan op 16-08-2003 16:15 ]


Journalism is printing what someone else does not want printed; everything else is public relations.