Sveiki atvyke į Counter Strike Godlike.lt - CS, CSS, GTA ir visa kita!. Spausk čia registruotis

[Pamoka] Žaidėjai gauna GP už balsavimą

RuneScape žaidėjų skiltis, pamokos, patarimai apie RuneScape tik čia.

Moderatorius: Kitų žaidimų Komanda.

[Pamoka] Žaidėjai gauna GP už balsavimą

Standartine Tomax » 08 Vas 2011, 19:38

Taigi dauguma esate matę jog serveryje prabalsavus tam tikroje vietoje automatiškai gaunate GP į savo inventorių.
Su šia pamoka sužinosite kaip tai padaryti.

Ko mums prireiks?

● Hostingo su galimais MySQL prisijungimais
● COM SQL draiverių ( Nuorodas mato tik NARIAI. Prisiregistruokite arba Prisijunkite. )
● Paruoštos svetainės kurioje talpinsite balsavimo duomenis

Pirmiausia susikuriame naują .php failą su pavadinimu vote.php ir įkopijuojame viską į jį iš čia:
Kodas: Pasirinkti visus
<?php

$host="localhost";
$username="YOUR MYSQL USERNAME";
$password="YOUR MYSQL PASSWORD";
$db_name="DATABASE NAME";

$link = mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

$username=$_POST['username'];
$voteid = ($_POST['votenum']);

$username = stripslashes($username);
$username = mysql_real_escape_string($username);

$time = time();
$ip = $_SERVER['REMOTE_ADDR'];

        if(clean_requests($time))
        {
                if(vote_entries($ip) == 0)
                {
                        mysql_query("INSERT INTO Votes (username, ip, time, recieved) VALUES ('$username', '$ip', '$time', '0')", $link) or die("An internal error has occured please try again later.<br/>To go back click <a href='index.php'><b>HERE</b></a>");
                        header("Location: ".votenow($voteid)."");
                }
                else
                {
                        die("You have already voted once today<br/>To go back click <a href='index.php'><b>HERE</b></a>");
                }
        }
        else
        {
                die("An internal error has occured please try again later.<br/>To go back click <a href='index.php'><b>HERE</b></a>");
        }

function clean_requests($time)
{       
        $query = mysql_query ( "SELECT * FROM Votes");
        $i = 0;
        while($row = mysql_fetch_array($query))
        {
                $i++;
                $timerequested = $row['time'];
                if($time-$timerequested > 12*3600)
                {
                        if (!mysql_query( "DELETE FROM Votes WHERE time='$timerequested'"))
                        {
                                return false;
                        }
                }               
        }
        return true;       
}

function vote_entries($ip)
{        $entries = mysql_query ( "SELECT * FROM Votes WHERE ip = '$ip'" );
        if ( !$entries ) {
                die ( "Unable to get number of entries: " . mysql_error () );
        }
        return mysql_num_rows ( $entries );
}

function votenow($votenum)
{
        $url = "";
        if($votenum)
        {
                switch($votenum)
                {
                        case 1:
                                $url = "VOTE LINK 1;
                        break;

                        case 2:
                                $url = "VOTE LINK 2";
                        break;

                        case 3:
                                $url = "VOTE LINK 3";
                        break;

                default: die("Error!"); break;
                }
        }
        return $url;
}

?>

Jeigu kas nesugebate tai štai paruoštas Nuorodas mato tik NARIAI. Prisiregistruokite arba Prisijunkite.

Taigi pagal šį kodą galėsite įdėti tik 3 balsavimo svetaines. Jeigu norėsite daugiau rašykite čia, nors nemanau, kad yra sunku tai pasidaryti :)

Toliau susikuriame naują duombazę. Manau neaiškinsiu kaip tai daryti.
Susikūrus naują duombazę einame į phpMyadmin ir įeiname į naujai sukurtą duombazę kuri turėtų atrodyti taip:
Kodas: Pasirinkti visus
CREATE TABLE IF NOT EXISTS `votes` (
  `username` char(50) DEFAULT NULL,
  `ip` char(50) DEFAULT NULL,
  `time` int(50) DEFAULT NULL,
  `recieved` int(1) DEFAULT NULL
)

Toliau susikuriame vote.html failą ir patalpiname į jį šį kodą:
Kodas: Pasirinkti visus
<form name="form" method="post" action="vote.php">
Username:  <input name="username" type="text" id="username">
Vote #  <select name="votenum">
<option value="1">VOTE WEBSITE 1</option>
<option value="2">VOTE WEBSITE 2</option>
<option value="3">VOTE WEBSITE 3</option>
</select><br/><br/>
<input type="submit" value="Vote!"/>
</form>

Vietoje skaičių įrašykite balsavimo nuorodas. Kaip pavyzdžiui turėtų atrodyti:
Kodas: Pasirinkti visus
<form name="form" method="post" action="vote.php">
Username:  <input name="username" type="text" id="username">
Vote #  <select name="votenum">
<option value="runescape.lt/vote/nicklickmick12">VOTE WEBSITE 1</option>
<option value="balsuok.lt/runescape/tomax079">VOTE WEBSITE 2</option>
<option value="voters.org/vote/userx">VOTE WEBSITE 3</option>
</select><br/><br/>
<input type="submit" value="Vote!"/>
</form>

Jeigu nereikia visų trijų nuorodų naudokite vietoje svetainės adreso ženklą "#"

Toliau 6ioje vietoje daug žmonių susikerta. Pridėkite atsisiūstus COM draiverius į savo serverio failus ir sukurkite naują Java failą pavadintą MYSQL.java. Į jį įdėkite:
Kodas: Pasirinkti visus
import java.sql.*;
import java.security.MessageDigest;

public class MYSQL {

        public static Connection con = null;
        public static Statement stm;

        public static void createConnection() {
                try {
                        Class.forName("com.mysql.jdbc.Driver").newInstance();
                        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/database", "username", "password");
                        stm = con.createStatement();
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
        public static ResultSet query(String s) throws SQLException {
                try {
                        if (s.toLowerCase().startsWith("select")) {
                                ResultSet rs = stm.executeQuery(s);
                                return rs;
                        } else {
                                stm.executeUpdate(s);
                        }
                        return null;
                } catch (Exception e) {
                        misc.println("MySQL Error:"+s);
                        e.printStackTrace();
                }
                return null;
        }

        public static void destroyCon() {
                try {
                        stm.close();
                        con.close();
                } catch (Exception e) {
                        e.printStackTrace();
                }
        }
       
        public static boolean checkVotes(String playerName)
        {
                try {
                        Statement statement = con.createStatement();
                        String query = "SELECT * FROM Votes WHERE username = '" + playerName + "'";
                        ResultSet results = statement.executeQuery(query);
                        while(results.next()) {
                                int recieved = results.getInt("recieved");
                                if(recieved == 0)
                                {
                                return true;
                                }
                               
                        }
                } catch(SQLException e) {
                        e.printStackTrace();
                }
                return false;
        }
        public static boolean voteGiven(String playerName)
        {
                try
                {
                        query("UPDATE Votes SET recieved = 1 WHERE username = '" + playerName + "'");
                } catch (Exception e) {
                        e.printStackTrace();
                        return false;
                }
                return true;
        }
}

Susirandame (ctrl+F)
Kodas: Pasirinkti visus
 "jdbc:mysql://127.0.0.1/database", "username", "password"

Pasikeičiame į savo duomenis.

Toliau einame į savo prisijungimo metodą, susirandame tą vietą kur žmogus prisijungęs gauna pasveikinimą ir apačioje patalpiname:
Kodas: Pasirinkti visus
if(MYSQL.checkVotes(playerName)){
if(freeSlots() > 2)
{
if(MYSQL.voteGiven(playerName))
{
giveItem(995,5000000);
sendMessage("Thank you for voting!");
}
}else{
sendMessage("You do not have enough free space to receive items");
}
}

Štai ir viskas. Eikite į savo svetainę, pvž runescape.lt/vote.html , pasirenkame kur balsuosime ir gauname pinigus dar kartą prisijungę į serverį :)
P.S. Jeigu norite keisti pinigų kiekį keiskite skaičius:
Kodas: Pasirinkti visus
giveItem(995,5000000);
Vartotojo avataras
Tomax
Vyr. Moderatorius
Vyr. Moderatorius
Statusas: Atsijungęs
Pranešimai: 3484
Užsiregistravo:
29 Bal 2009, 15:42
Miestas: Utena
Vardas: Tomas
Skype: tomax079
Steam ID: tomax079
Pinigai: 956.00
Reputacija: 171
Medaliai: 13
Vyr. Moderatorius (1) Medalių Moderatorius (1) už 100 pranešimų (1) už 300 pranešimų (1) už 500 pranešimų (1)
už 700 pranešimų (1) už 1000 pranešimų (1) už 1500 pranešimų (1) už 2000 pranešimų (1) už 3000 pranešimų (1)
Reputacija (1) Parama (1) Admino Numylėtinis (1)

Re: [Pamoka] Žaidėjai gauna GP už balsavimą

Standartine average » 04 Vas 2012, 20:20

pats kurei ?
Vartotojo avataras
average
Dalyvis (-ė)
Dalyvis (-ė)
Statusas: Atsijungęs
Pranešimai: 146
Užsiregistravo:
02 Sau 2012, 13:28
Miestas: Alytus
Skype: average_lt
Pinigai: 228.00
Reputacija: 0
Medaliai: 1
už 100 pranešimų (1)

Pakomentuoti per Facebook


Grižti i RuneScape

Dabar prisijunge

Vartotojai naršantys ši foruma: Registruotu vartotoju nera ir 0 sveciu

cron