Moord in mijn game

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Moord in mijn game

    Beste mensen,

    Even een vraagje ik heb een probleem met de een stukje script in mijn maffia game waar ik niet uitkom.
    wat is het probleem.
    Als je een speller wil vermoorden dan moet ik een Detectives inhuren tot hier werkt het goed.
    De Detectives vind de speller en je gaat hem vermoorden dan gebuurt er niet voor beeld de speller staat op 1% leven en je valt hem aan gaat die 1% leven niet naar nu toe.
    Zo dat hij dood gaat dat is het probleem.
    Wie weet hier een oplossing voor dit hoor ik heel graag van jullie.

    Ik zet hier de code neer.

    PHP Source Code: detectives

    1. <?php
    2. $user = $sql->fetch($sql->query("SELECT * FROM users WHERE id = '" . $_GET['step'] . "' AND health > '0'"), 'assoc');
    3. $lastattack = $sql->fetch($sql->query("SELECT datum FROM attacklog WHERE aanvaller = '" . $own['id'] . "'"), 'assoc');
    4. if($_GET['action'] == "attack") {
    5. if($user['admin'] == "Ja") {
    6. echo fout('Het heeft geen zin om een admin aan te vallen, omdat deze niet echt meespeelt in het spel. Zoek dus maar iemand anders op!');
    7. }
    8. elseif($user['id'] == $own['id']) {
    9. echo fout('Euhm, wil je nou zelfmoord plegen?');
    10. }
    11. elseif($user['username'] == 'Gast') {
    12. echo fout('Je kunt het gast account niet aanvallen!');
    13. }
    14. elseif($user['vakantie'] > '0') {
    15. echo fout('Gebruiker is op vakantie. Je kan hem dan niet aanvallen!');
    16. }
    17. else{
    18. if($own['killers'] >= 10) {
    19. if($own['stad'] == $user['stad']) {
    20. if($own['familie'] != $user['familie'] xor empty($own['familie'])) {
    21. if($user['veilig'] + $user['maffia'] <= 0) {
    22. if($user['rang'] <= $own['rang']) {
    23. if(strtotime($lastattack['datum']) + 15 <= time()) {
    24. $continue = 'true';
    25. $schade['own'] = $own['killers'] * 10 + $own['power'];
    26. $schade['user'] = $user['killers'] * 10 + $user['power'];
    27. if($schade['own'] > $schade['user']) {
    28. $uitslag = 'gewonnen';
    29. $winnaar = $own['username'];
    30. $verliezer = $user['username'];
    31. $winst['cash'] = round($user['cash']*rand(40,75)/100);
    32. $health['user'] = rand(1,3);
    33. if($user['health'] <= $health['user']) {
    34. $sql->query("UPDATE attlose = attlose + '-1', users SET cash = '0', bank = '0', power = '0', health = '0' WHERE id = '" . $user['id'] . "'");
    35. $sql->query("INSERT INTO moorden (moordenaar, slachtoffer, datum, buit) VALUES('" . $own['id'] . "', '" . $user['id'] . "', NOW(), '" . $user['power'] . "')");
    36. $winst['cash'] = $user['cash'] + $user['bank'];
    37. $winst['power'] = $user['power'];
    38. } else {
    39. $sql->query("UPDATE users SET attlose = attlose + '1', cash = cash - '" . $winst['cash'] . "', health = health - '" . $health['user'] . "' WHERE id = '" . $user['id'] . "'");
    40. }
    41. if($own['health'] + 2 < 300) {
    42. $health['optellen'] = 2;
    43. } else {
    44. $health['optellen'] = 300 - $own['health'];
    45. }
    46. $sql->query("UPDATE users SET attwin = attwin + '1', cash = cash + '" . $winst['cash'] . "', power = power + '" . $winst['power'] . "', health = health + '" . $health['optellen'] . "' WHERE id = '" . $own['id'] . "'");
    47. $bericht = 'Hij heeft gewonnen en € ' . $winst['cash'] . ' van je weten te stelen.';
    48. } else {
    49. $uitslag = 'verloren';
    50. $winnaar = $user['username'];
    51. $verliezer = $own['username'];
    52. $winst['cash'] = round($own['cash']*rand(40,75)/100);
    53. $health['user'] = rand(1, 3);
    54. if($own['health'] <= $health['user']) {
    55. $sql->query("UPDATE users SET attlose = attlose - '-1', cash = '0', bank = '0', power = '0', health = '0' WHERE id = '" . $own['id'] . "'");
    56. $sql->query("INSERT INTO moorden (moordenaar, slachtoffer, datum, buit) VALUES('" . $user['id'] . "', '" . $own['id'] . "', NOW(), '" . $own['power'] . "')");
    57. $winst['cash'] = $own['cash'] + $own['bank'];
    58. $winst['power'] = $own['power'];
    59. } else {
    60. $sql->query("UPDATE users SET attlose = attlose - '-1', cash = cash - '" . $winst['cash'] . "', health = health - '" . $health['user'] . "' WHERE id = '" . $own['id'] . "'");
    61. }
    62. if($user['health'] + 2 < 300) {
    63. $health['optellen'] = 2;
    64. } else {
    65. $health['optellen'] = 300 - $user['health'];
    66. }
    67. $sql->query("UPDATE users SET attwin = attwin + '1', cash = cash + '" . $winst['cash'] . "', power = power + '" . $winst['power'] . "', health = health + '" . $health['optellen'] . "' WHERE id = '" . $user['id'] . "'");
    68. $bericht = 'Je hebt gewonnen en € ' . $winst['cash'] . ' van hem weten te stelen.';
    69. }
    70. $sql->query("INSERT INTO berichten (afzender, geaddresseerde, titel, inhoud, datum) VALUES('Anoniem', '" . $user['id'] . "', 'Je bent aangevallen!', 'Hallo gangster!\n\r\n\rJe bent aangevallen door " . $user['username'] . ". " . $bericht . "\n\r\n\rGroeten,\n\rEen anonieme getuige', NOW())");
    71. $sql->query("INSERT INTO attacklog (aanvaller, verdediger, winst, uitslag, datum) VALUES('" . $own['id'] . "', '" . $user['id'] . "', '" . $winst['cash'] . "', '" . ucfirst($uitslag) . "', NOW())");
    72. } else {
    73. echo mislukt('Je bent nog te moe om aan te vallen... Wacht nog 15 seconden!');
    74. }
    75. } else {
    76. echo mislukt('De persoon die je probeert aan te vallen heeft een hogere rang dan dat jij zelf hebt. Een beetje kansloos dus?');
    77. }
    78. } else {
    79. echo fout('De persoon die je probeert aan te vallen staat onder maffiabescherming.');
    80. }
    81. } else {
    82. echo fout('Je zit in dezelfde familie als ' . $user['username'] . '!');
    83. }
    84. } else {
    85. echo fout('Je bent in de verkeerde stad om aan te vallen!');
    86. }
    87. } else {
    88. echo mislukt('Je hebt minimaal <b>10 killers</b> nodig om iemand aan te vallen. Killers kun je krijgen door mensen op je persoonlijke geheime link te laten klikken.');
    89. }
    90. }
    91. if($continue == 'true') {
    92. echo'
    93. <div align=\'center\'>' . usernaam($own['id']) . ' VERSUS ' . usernaam($user['id']) . '</div>
    94. <p align="center" id="go1" style="visibility:hidden"><b>' . $own['username'] . '</b> heeft <b>' . groot($own['killers']) . '</b> killers die zorgen voor <b>' . groot($schade['own']) . '</b> schade!</p>
    95. <p align="center" id="go2" style="visibility:hidden"><b>' . $user['username'] . '</b> heeft <b>' . groot($user['killers']) . '</b> killers die zorgen voor <b>' . groot($schade['user']) . '</b> schade!</p>
    96. <p align="center" id="go3" style="visibility:hidden"><b>Je hebt ' . $uitslag . '!</b><br><font color=\'#006600\'><b>' . $winnaar . '</b></font> heeft <font color=\'#990000\'><b>' . $verliezer . '</b></font> verslagen!<br></p>
    97. <p align="center" id="go4" style="visibility:hidden"><font color=\'#006600\'><b>' . $winnaar . '</b></font> heeft <b>&euro; ' . groot($winst['cash']) . '</b> gestolen</p>
    98. <script>
    99. var go1 = document.getElementById("go1");
    100. var go2 = document.getElementById("go2");
    101. var go3 = document.getElementById("go3");
    102. var go4 = document.getElementById("go4");
    103. window.setTimeout("go1.style.visibility=\'visible\'", 1000);
    104. window.setTimeout("go2.style.visibility=\'visible\'", 2000);
    105. window.setTimeout("go3.style.visibility=\'visible\'", 5000);
    106. window.setTimeout("go4.style.visibility=\'visible\'", 7000);
    107. </script>';
    108. }
    109. }
    110. ?>
    Display All
    Ik hoop dat er mensen zijn die mij hier mee kunnen helpen.
    Bij voorbaard super dank.
  • Dacht al dat ik dit eerder had gezien!
    Zou al enorm schelen moest je zelf het if statement kunnen vinden en delen waar je denkt dat het precies foutloopt. met evt. de nodige variabelen erbij.
    Nu weet ik bv. nog steeds niet bij welke blok code het zou foutlopen :P Welke fout() of mislukt() krijg je bv. te zien?

    Om eens en andere vraag te stellen dan in je oude topic? Staat je health veld in de database toevallig op unsigned? (Enkel positieve waarden)
    Want dan vermoed ik dat de volgende if 2/3 niet uitgevoerd word:

    Source Code

    1. $health['user'] = rand(1,3);
    2. if($user['health'] <= $health['user']) {
    Onder die if ga je health op 0 zetten van $user[id] wat de bedoeling is dacht ik? Ookal is user health 1?

    En volgens deze query beland je mogelijk 2/3 nooit in bovenstaande if indien $user health 1 is?

    Source Code

    1. } else {
    2. $sql->query("UPDATE users SET attlose = attlose + '1', cash = cash - '" . $winst['cash'] . "', health = health - '" . $health['user'] . "' WHERE id = '" . $user['id'] . "'");
    Misschien probeert deze query health: 1 = 1 - 2 met mogelijk sql fout?

    Absoluut niet zeker, leest niet zo eenvoudig sorry.
    Zou toch eens bekijken of dat veldje toevallig unsigned is of niet maar zou in principe weinig moeten schelen.. 1 - 2 word dan ook gewoon 0 denk ik (bij unsigned)?

    Tiger, als dat veld niet bepaald unsigned is zou 't bovenstaande niet van toepassing zijn hoor. Indien van wel misschien zelf ook niet indien die laatste opmerking 1 - 2 = 0 zou kloppen. ;)
    Aangezien ik ook niet 100% weet hoe unsigned zou werken zou het kunnen dat je een extra if moet voorzien om met 'health' waar mogelijk onder nul te gaan op te lossen. Zal dus waarschijnlijk zeer dicht tegen code blok 2 (db querie) leunen om in de query niet onder 0 te kunnen gaan. Dus alleen van toepassing zijn indien je met een sql error zou zitten i.v.m. niet onder 0 kunnen gaan unsigned health veld.

    The post was edited 5 times, last by MiCa- ().