Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Pomoc w js/php


Rekomendowane odpowiedzi

Opublikowano

Witam. Jestem początkujący więc przepraszam z góry za głupie pytanie/a ;) 

 

1. Na pewno graliście w cookie clickera, po kliknięciu tam na ciastko dodawało nam +1 do niego i tu nasuwa się moje pytanie jak oni to zrobili ?

Próbowałem już różnymi metodami ale za każdym razem porażka. Macie jakiś pomysł ?

 

2. Chciałem przetestować czy jQuery zadziała na przykładowej stronie, skopiowałem dosłownie wszystko z szablonu i mimo ,że miałem identycznie to u mnie 

po kliknięciu na div nic się nie działo ;/ 

$(document).ready(function() {
   $('#przeciwnik').click(function() {
      $(this).fadeOut('fast'); 
   });
});

Proszę o pomoc i z góry dziękuję.

 

Kocham mpcforum.pl!!!

18706.png

Opublikowano

podaj kod HTML

 

Jak rozumiem masz jakiś element (dajmy na to <div>) z id?

 

NP:

<div id="przeciwnik"> ... </div>

Poza tym za pomocą Google Chrome możesz sprawdzać błędy kodu JavaScript (Prawy -> Zbadaj Element -> Console) (Pamiętaj że AdBlock generuje błędy jeżeli masz reklamy na stronie)

Pamiętaj aby dać w " ... " jakiś tekst, bo w coś musisz klikać

 

PS: "nie lubię" i nie polecam dawać "this" albo powtórz ten kod powyżej, albo "zapakuj to do zmiennej"

var div = $(".JakisDiv");
....div.fadeOut('fast');
Opublikowano

Ahh faktycznie zapomniałem : 

 

Czy po kliknięciu na div=walka dałoby rade dodać 1 do zmiennej powiedzmy $exp ?

<html>
<head>
	<title>ClickEmAll</title>
	<link rel="stylesheet" type="text/css" href="style.css" />
	<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js" > </script>
	<script type="text/javascript">
		$(document).ready(function() {
   $('#przeciwnik').click(function() {
      $(this).fadeOut('fast'); 
   });
});
	</script>
</head>
<body>
	<div id="contener">
		<div id="menu">
		<p class="version">ClickEmAll v.001</p>
			<div id="menuinside">
				<div id="avatar">
					<img src="avatar.jpg" class="avatar" />
				</div>

				<div id="info">
					Nick: Test </br>
					Lvl: 1 </br>
					Gold: 0 </br>
					XP:
				</div>
				</div>
				<div id="cutter">
					
				</div>
				<div id="lista">
					<ul>
					<img src="corona.png" class="corona" /><li>Kingdom</li>
					<li>Magic Forest</li>
					<li>Pirate Ship</li>
					<li>Orc Camp</li>
					<li>Troll's Cave</li>
					<li>Headhunter's City</li>
					</ul>
				</div>
				<div id="stopka">
					Created by Emerycik 
				</div>
		</div>
		<div id="walka">
		</div>
	</div>
</body>
</html>


Kocham mpcforum.pl!!!

18706.png

Opublikowano
$(document).ready(function() {
   $('#walka').click(function() {
      exp++:
   });
});

Poza tym wciśnij CTRL + F (w przeglądarce na tej stronie) i wpisz tam "Przeciwnik"

Zaskoczony? Nie? Zauważ że słowo przeciwnik pojawia się 3 razy: W moim poście, i dwa razy w kodzie JavaScript, ale ani razu w kodzie HTML

 

Co ty chcesz kliknąć skoro tego nie ma w HTML? (nie ma na stronie) 

 

@EDIT: Wróć, $exp? Nie pomyliło ci się JavaScript Z PHP ? (JS: exp++, PHP: $exp++)

Opublikowano

Tak faktycznie, to było powodem nie działania jquery. Ehh a tyle się męczyłem żeby znaleźć ten błąd a on był przed moim nosem ;P Tak chodzi o $exp, pytałem czy jest możliwość poprzez funkcję onclick w jquery dodanie +1 do wartości zmiennej w php. Jeśli nie to w jakim innym języku polecasz napisać ten skrypt, wszystko w js wraz ze zmiennymi i wyświetlaniem ich na ekranie też  ?

Kocham mpcforum.pl!!!

18706.png

Opublikowano

Musisz użyć AJAX aby nie przeładować strony. I zapisać zmienną exp do czegoś (np. mysql)

$.ajax({
  type: "POST",
  cache: false,
  url: "PLIK.php",
  data: { user: ZMIENNA_NAZWY_GRACZA, exp: ZMIENNA_EXP }
});

 a potem

<?php

if(isset($_POST)) {
    $exp = $_POST["exp"]; // zabezpiecz przed SQL Injection! umieść POST w funkcji htmlspecialchars
    $user = $_POST["user"]; // zabezpiecz przed SQL Injection! umieść POST w funkcji htmlspecialchars
}

A like to już nie dasz? Nie ma to jak żydzenie lajków :D

Opublikowano

Heh to jeszcze jedno pytanko mam. Zdecydowałem trzymać się dane w cookies nie wiem czy to dobrze ale w każdym bądź razie potrzebuję zapisać i odczytać z cookies liczbę np. doświadczenia.

function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;
}

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
};

function checkCookie() {
    var user=getCookie("username");
    if (user != "") {
        document.getElementById("user").innerHTML = user;
    } else {
       user = prompt("Please enter your name:","");
       if (user != "" && user != null) {
           setCookie("username", user, 30);
       }
    }
};

function checkExp() {
    var exp=getCookie("exp");
    if (exp != "") {
        document.getElementById("exp").innerHTML = exp;
    } else {
       exp = 0 
       }
    }


function getRandom(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
};

function expClick(){
        monsterhp = monsterhp - getRandom(1, 5);
    if (monsterhp <= 0) {
        exp = exp + getRandom(20, 60);
        setCookie("exp", exp, 30);
        czylvl();
        gold = gold + getRandom(5, 20);
        monsterhp = monstermaxhp;
    };
    document.getElementById("monsterhp").innerHTML = monsterhp;
    document.getElementById("gold").innerHTML = gold;
    document.getElementById("monstermaxhp").innerHTML = monstermaxhp;
};

function moreexp(){
    maxexp = maxexp + maxexp;
    document.getElementById("maxexp").innerHTML = maxexp;
};

function czylvl(){
if (exp >= maxexp){
    level++;
    moreexp();
    exp = 0;
    setCookie("exp", 0, 30)
    alert()
    document.getElementById("level").innerHTML = level;
};
};

Kocham mpcforum.pl!!!

18706.png

Opublikowano

@kikosmikos

Nawet tego nie czytam bo mogę Ci jedynie powiedzieć ,że to bardzo źle bo ciasteczka klient może edytować dwoma klikami myszki.

Wszystko czego użytkownik nie powinien edytować trzymamy albo na plikach (od biedy) albo w bazie danych.

 

@Edit

 

Oprócz tego ,że co drugi gracz będzie oszukiwać i psuć Ci grę to otwiera to pole dla podatności

Opublikowano

Tak ale to raczej taki projekt nie na większą skale więc z edytowaniem danych przez użytkownika nie ma problemu chyba ,że jeszcze jakiś minus mają ciasteczka ;P

 

A teraz troszkę inne pytanie. Potrzebuje zrobić troszkę nietypowe menu. Wyjaśnię to na obrazku : 

 

2d9a2a9.jpg

Kocham mpcforum.pl!!!

18706.png

Opublikowano

@kikosmikos

 

ACHTUNG ACHTUNG ODPALAM CZARODZIEJSKĄ KULE...

 

No dobra ale forum jest od pomocy nikt nie zrobi tego za Ciebie w całości.

Powiedz jaki masz problem. Do rozmieszczania elementów na stronie używamy css :)

 

Do tego co ty chcesz zrobić (chociaż w sumie nie wiem co oprócz tego ,że jakieś menu

bo pobazgrałeś na skrinie i napisałeś 'chce menu'), zakładając ,że nie potrafisz tego

zrobić czystym css'em to polecam zapoznać się z frameworkiem front-endowym bootstrap

lub jakimkolwiek innym obsługującym gridy. Następnie zaznajomić sobie tzw. scaffolding:

debiloodporna dokumentacja

No i z głowy. Jak już zrobisz coś samemu za pomocą tego właśnie grid systemu to nie

przychodź z płaczem na forum od razu, że nie działa tylko poszukaj na jutube jest od

groma poradników na ten temat, np. ta seria. Jak już będziemy mieli z czym pracować

to przyjdź tutaj i popytaj, postaram się obserwować wątek. Zarzuć plusik.

 

@Edit

 

chyba zrozumiałem ten screen Twój, chciałbyś aby po kliknięciu w odnośnik na tym panelu po lewej coś się wyświetlało.

No to nic prostszego tak na czysto robimy tak ,że dzielimy ten header i panel na dwa divy i odnośnik kierujemy w javascript /jquery,

który podmienia tego diva jakim jest panel na to co chcesz. Najprostszy sposób.

Opublikowano

No faktycznie może screen nie jest łatwy do zrozumienia ale rozszyfrowałeś go ;P Tak chodziło mi właśnie o to, dzięki za pomoc. A i nie chciałem żeby ktoś robił za mnie całość tylko raczej pokierował w dobrym kierunku ;) To jak jeszcze będę potrzebował jakiejś pomocy napiszę w temacie, dzięki jeszcze raz.

Kocham mpcforum.pl!!!

18706.png

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...