Avatar billede nicocarlos Nybegynder
18. juli 2004 - 15:58 Der er 23 kommentarer og
1 løsning

skal lave lokale events

Hejsa.
Jeg har lavet et lille spil hvor man kan angribe modspillere. Men jeg vil meget gerne have lavet så man kan se hvis man er blevet angrebet, så f.eks. hvis derer en som angriber dig. Så kan man trykke på Local Events og se resultatet f.eks.

B'hmanden angreb dig, du tabte!
Angriberen tabte: 2 ben og 1 arm.
Du tabte: 2 ben og 2 arme.

I den retning og den skal selvfølgelig kunne vise mange local events. Jeg bruger en database mySQL hvor jeg gerne ville gemme det. men jeg ved ikke helt hvordan det skal laves. Nogen der vil hjælpe mig medat få det bikset sammen.

på forhånd tak
Avatar billede jammerlab Nybegynder
18. juli 2004 - 16:09 #1
så må du lave et felt "local" og i denne gemme oplysningerne når man angriver en anden spiller. I denne laver du så også et felt "read" som standard er 0. Så kan du lave et sted på siden hvor du tæller sammen noget som det her:

$query = mysql_query("SELECT COUNT(id) AS antal FROM local WHERE player_id = '$_SESSION[id]'")or die (mysql_error());
$row = mysql_fetch_array($query);

echo "Du er blevet angrevet $row[antal] gange!";

Noget i den stil... vel...
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 16:15 #2
ja, men hvordan vil du f.eks gemme de oplysninger som jeg beskrev med den angribende mistede så og så meget, du mistede så og så meget og du tabte? Og der skal kunne gemmes mange angreb. Skal local feltet være Varchar eller LongText, hvad vil du foreslå?

Mit problem er at jeg ikke ved hvordan jeg skal smide det ind og hvis det er muligt må der også meget gerne være et tidspunkt på angrbet med..
Avatar billede jammerlab Nybegynder
18. juli 2004 - 16:23 #3
Nu ved jeg ikke hvordan dit script generere de dater... så det er lidt svært at gætte sig til hvordan de kan gammes :)
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 16:26 #4
hehe. Det kan jeg odt se, men hvordan kan man indsætte en længere text i et felt i i en mySQL db er det første problem?? Det næste er hvordan man så kan indsætte n antal texter i feltet?? Jeg kan godt selv rette det til men jeg ved bare ikke hvor jeg skal begynde
Avatar billede jammerlab Nybegynder
18. juli 2004 - 16:29 #5
Der kan du bruge typen "text" i din mysql database... der kan gammes pænt meget data i sådan en :) Du kan sagtens gemme flere kampe du skal bate lave et felt der hedder "id" og her giver du det "autoincrement" "Unique" det betyder den selv giver den et id når der bliver smidt noget ind og hvert felt vil være unique så der vil ikke være 2 af slagsen.
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 16:32 #6
det vil sige at jeg skal lave en ny db som hedder kampe fordi jeg har allerede id med autoincrement i min nuværende database med alle de andre informationer i?
Avatar billede jammerlab Nybegynder
18. juli 2004 - 16:41 #7
nej nej :) du skal lave en ny tabel...
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 16:59 #8
okaj en ny tabel som hedder local som skal være et text felt, ikke?
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:02 #9
hehehe nej ok du har en database... i denne database kan du lave tables i dine tables kan du lave felter som text og varchr osv... med?

DATABASE
    TABLES
        FELTER

og det er en ny table du skal lave ikke et nyt felt :)
men inde i den nye table ja der skal være som jeg sagde

|ID| |player_id| |angriber_id| osv
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 17:08 #10
ja, sry :D, jeg har lavet en ny table som hedder v_attacks ..
I det har jeg puttet følgende felter:
ID Auto osv.
player_id
attacker_id

Så skal der også være:
read (int)
text (text)

eller hvad?
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:11 #11
ja det skal der :) read sætter du standard værdi til 0
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 17:16 #12
så er det fikset, kan du give et eksempel på hvordan jeg får smidt et angreb ind i mySQL så? :D
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:20 #13
Igen jeg ved ikke hvordan hele din kamp bliver genereret men når en eller anden gut angriber og kampen er over så laver du bare en insert

|ID| udfylder den selv
|player_id| er det id som bruger der blev angrebet har
|attacker_id| er angriberens id
|text| hvis det er muligt så kan du smide selve kampen herind... altså du gemmer hele kampen i en variabel som du så smider herind smo text...

når kampen så er done så kan du lave noget kode som tidligere:

$query = mysql_query("SELECT COUNT(id) AS antal FROM local WHERE player_id = '$_SESSION[id]'")or die (mysql_error());
$row = mysql_fetch_array($query);

echo "Du er blevet angrevet $row[antal] gange! Se kampen klik <a href$PHP_SELF?battle=$row[id]>her</a>";

if($battle) {
$query = mysql_query("SELECT * FROM local WHERE id = '$battle'")or die (mysql_error());
mysql_query("update local set read='1' WHERE id = '$battle'")or die (mysql_error());

echo "$row[text]";

}
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:21 #14
hov vent hehe :) du kan selvf. ikke klikke videre på kampen da den ikke har noget id der... 2.sek
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 17:22 #15
jep, så er jeg med :D Jeg venter lige en anelse med at give dig point. Fordi det kunne være at jeg ikke helt har styr på:

$query = mysql_query("SELECT COUNT(id) AS antal FROM local WHERE player_id = '$_SESSION[id]'")or die (mysql_error());
$row = mysql_fetch_array($query);

echo "Du er blevet angrevet $row[antal] gange! Se kampen klik <a href$PHP_SELF?battle=$row[id]>her</a>";

if($battle) {
$query = mysql_query("SELECT * FROM local WHERE id = '$battle'")or die (mysql_error());
mysql_query("update local set read='1' WHERE id = '$battle'")or die (mysql_error());

echo "$row[text]";

}


men du skal nok få point, self, tusind tak for hjælpen :D
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:24 #16
Noget i den her stil vel og mærke jeg går ud fra at du har en tabel som hedder profil hvor de har en profil, og at du også gemmer tiden på kampen ;) men noget i den her stil ihvertfald:

---------


$query = mysql_query("SELECT COUNT(id) AS antal FROM local WHERE player_id = '$_SESSION[id]'")or die (mysql_error());
$row = mysql_fetch_array($query);

echo "Du er blevet angrevet $row[antal] gange! Se kampene klik <a href$PHP_SELF?list=true>her</a>";

if($list) {
$query = mysql_query("SELECT * FROM local WHERE id = '$battle'")or die (mysql_error());
while($row = mysql_fetch_array($query)) {

$mod = mysql_query("SELECT * FROM profiler WHERE id = '$row[angriber_id]'")or die (mysql_error());
$mods = mysql_fetch_array($mod);
$a++;
echo "<a href=$PHP_SELF?battle=$row[id]>#$a $mods[navn] $row[tid]</a>";
}
}

if($battle) {
$query = mysql_query("SELECT * FROM local WHERE id = '$battle'")or die (mysql_error());
$row = mysql_fetch_array($query);
mysql_query("update local set read='1' WHERE id = '$battle'")or die (mysql_error());

echo "$row[text]";

}
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 17:34 #17
forresten, kan man lave sådan, så den automatisk sletter de lokale events når der er mere end 50 per bruger??
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 17:35 #18
altså, så 1 bruger aldrig får mere end 50 events gamle/nye, så jeg ikke bruger hele min database :D
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:41 #19
jooow... det kan man vel godt... jeg er bare ikke lige den største haj til det der med at slette ting som er for gamle osv :P
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 17:46 #20
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'read, time) VALUES ('1343','11','Dead','1','NOW()')' at line 1

min linje ser sådan her ud:
$sqlattack = "INSERT into v_attacks(player_id, attacker_id, text, read, time) VALUES ('$oppstats3[ID]','$yourstats3[ID]','Dead','1','NOW()')";
        mysql_query($sqlattack) or die(mysql_error());


kan du finde fejlen?
Avatar billede jammerlab Nybegynder
18. juli 2004 - 17:51 #21
$sqlattack = "INSERT into v_attacks (player_id, attacker_id, text, read, time) VALUES ('$oppstats3[ID]','$yourstats3[ID]','Dead','1','NOW()')";

sådan måske?
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 23:23 #22
problemet var at jeg ikke kan use et felt i mySQL som hedder read... :D men jeg har løst problemet ;D Så lig bare et svar og så får du nogle points :D
Avatar billede jammerlab Nybegynder
18. juli 2004 - 23:32 #23
yes sir :) og gerne et link til dit projekt når det kører så man kan se hvad det er du laver :D
Avatar billede nicocarlos Nybegynder
18. juli 2004 - 23:35 #24
det skal jeg nok, ligeså snart det er oppe og køre :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester