Avatar billede capion Nybegynder
15. oktober 2003 - 18:59 Der er 13 kommentarer og
1 løsning

Counter Strike player status SPECIAL !

OK, here we go..

jeg har clanmembers regged i en mysql-db.
fieldname: name

SÅ findes der derude et udmærket (og indtil flere af dem ) script, som henter server/player-status på et game, LIVE !..
Det henter navne på spillerne.. har I sikkert alle set..
NÅR een af mine members er PÅ serveren, inde og game..
SÅ vil jeg have at lige netop det member figurerer, på clansiten; i memberlisten, som værende AKTIV ! grøn lampe, blinke ting, grøn tekst, aktiv-tekst, hvad ved jeg.. man skal bare kunne se i listen at DEN spiller er aktiv.. ligeså resten; XX antal; af dem.
jeg tager et vildt kvalificeret gæt!.. Man henter navne fra serveren, i det aktive spil, man henter navne fra databasen (mysql), man sammenligner.. er der sammenfald, bliver der sat etellerandet aktivt.. grafik, tekst..noget..
Strik det sammen til mig i PHP.. lad mig se det virke, på min site og 200 nice points er dine !
kig evt. her:  http://www.csfav.dk/index.html
Avatar billede fangel Nybegynder
15. oktober 2003 - 19:08 #1
jaa - 200p kan jeg nemli' leve længe for!

--- citat fra www.e-bruger.dk/faq/ | den uofficielle EXP faq ---
# Jeg har hørt at man på Eksperten kan få arbejdsløse programmører til at lave gratis arbejde, er det rigtigt?
- Ja og nej. En del af dem der sidder herinde hjælper for sjov, en del hjælper for udfordringens skyld og der er en hel række andre argumenter for, hvorfor folk hjælper.

# Er det rigtig at man på Eksperten, kan få lavet komplette løsninger, for en brøkdel af hvad det ville koste i virkeligheden?
- Nej, så skal du ihvertfald være heldig!
Det er ikke Georgs Gavebod, så du skal nok være parat til at finde pengepungen frem ved større programmeringsarbejder, grafik etc.

# Hvorfor gider folk ikke arbejde for point?
Gider du?
- Point giver hverken mad på bordet eller varme i stuen. Eksperten er en fritidsinteresse for brugerne, ikke et arbejde.
---

Eksperten er hjælp til selvhjælp - lær at programmere selv, så hjælper vi gerne - men forventer du at folk helt friviligt skal

1) finde et af de omtalte scripts
2) sætte sig ind i hvordan det virker
3) lave et halv-komliceret script

helt gratis (nej - 200 point er ikke penge)... dem der har evnerne til at lave dette (mig inkl.) får oftes mange penge for ting der er nemmere end det du vil have gratis!

---

så lav det selv (med hjælp fra os) eller betal dig fra det (med penge, ikke point)

Morten
- Freelance PHP-Programør!
Avatar billede capion Nybegynder
15. oktober 2003 - 19:26 #2
dan en forening, bliv organiseret.

Jeg er en simpel, privat "webmaster-wannabe" som kan en lille smule web-programmering. Jeg har et job, med noget helt andet end dette; min fritidshobby.
jeg ruller linux; gratis; halflife dedicated server; gratis, al min tid til at stille en flok online spiller tilfreds, bare for sjov; gratis.

Jeg kan hente scripts, fra hele verden, strikke det sammen selv; gratis. Jeg kan søge hjælp, tips, tricks og "hele" scripts, som jeg så kan flette ind i det jeg har; gratis..hvor.. på eksperten.dk og et utal andre steder.
Fordi der findes en masse flinke, entusiastiske, velmenene folk, der gider give brøkdele af deres kæmpeviden videre, for sjov, for sportens skyld, fordi man kan.
Tak for det. og tak for dette forum !
Avatar billede capion Nybegynder
15. oktober 2003 - 19:41 #3
hvad skulle sådan et script så egentlig koste ?
Hold lige fast i at det "kun" er en "snip" der skal sættes ind i en meget større script (hvilket jeg selv kan)
Jeg kan da forresten "fortælle", at jeg via mit job, HAR engageret en freelance programmør før. Ganske godt og rimeligt billigt. Jeg købte et komplet tidsskrift-styrings og nyheds-system, i ASP. Men det var jo også til firmaet..ikke til mig, som privatmand.
Avatar billede fangel Nybegynder
15. oktober 2003 - 19:52 #4
som sagt - jeg hjælp så absolut gerne, men at udlevere en færdig løsning gratis, dette gør jeg dog ikke...!
som du selv siger 'giver en brøkdel af vores vide' - ikke en brøkdel af vores indtjening...

ja, du skal bare, som du har gættet selv

1) bruge et af disse scripts til at hente dinne brugere... læg disse i et array
2) løb databasen igennem - læg brugere i et array
3) løb bruger-arrayet igennem, hvis person også findes i online-array, så skriv/gør noget...

dette er et ret simpel procedure - problemet er at man skal sætte sig ind i hvordan dette CS script er opbygget...

først skal du finde et der er skrevet i samme sprog, derefter skal du sætte dig ind i kodningen, for at finde hale i den (hver sin programør, hver sin stil - desvæære)

---

så hvis du går igang med systemet, er der de første mange eksperter der gerne vil hjælp dig videre...

---

undskyld hvis min 'tale' var lidt får - men der er bare så mange 'cs-idioter' der 'forventer' at de kan oprette en gratis bruger og få udleveret nøglerne til jeg ved ikke hvad - dette bliver ma lidt træt af - sorry

Morten
Avatar billede capion Nybegynder
15. oktober 2003 - 20:00 #5
k'  godt ord igen *S*
Jeg tænker lige.. f.eks. om at omformulere spørgsmålet, finde nogle relevante infos o.a.
Jeg lader det lige stå åbent, lidt endnu..ku' jo være at der var en der havde lavet det før..
Avatar billede capion Nybegynder
16. oktober 2003 - 11:18 #6
Hvordan får jeg lige lavet den sortering/udskillelse ?
Specielt efter "// Find players equal to members (on our own now + leaning to the supercoders scripting)"
Som I kan se har jeg ZERO forstand på PHP, men jeg prøver..



// Get Class CounterStrike Author : Henrik Schack Jensen (henrik@schack.dk)
// Demosource is available at http://www.gameserver.dk/
// The function I believe to be the one I need for this to work..??? but not sure
// Its from the file counterstrike.php
// **********************************************************************
// Get Playerinfo
// Read information about the players into m_playerinfo
// Name,frags,playtime
// Return true if successful
// **********************************************************************
//function getServerPlayers($serveraddress,$portnumber,$waittime) {
// Servercommand
//  $cmd="\xFF\xFF\xFF\xFFplayers\x00";
//    $serverdata=$this->getServerData($cmd,$serveraddress,$portnumber,$waittime);

// Check length of returned data, if < 5 something went wrong
//    if (strlen($serverdata)<5) return false;

// Check number of players to read data for
//    $players=ord($serverdata[5]);

// Strip OOB data and other stuff
//    $serverdata=substr($serverdata,7);
//    for ($i=1;$i<=$players;$i++) {
//        $playername                            =htmlspecialchars($this->getnextstring($serverdata));
//        $frags                                    =$this->getnextfragvalue($serverdata);
//        $playtime                                =$this->getnextplaytime($serverdata);
//        $this->m_playerinfo[$i] =array("name"=>$playername,"frags"=>$frags,"time"=>$playtime);
//    }
// Sort players in fragorder
//    if ($players>1) usort($this->m_playerinfo,"fragsort");
//    return true;
// }

// So here we get it.. thank You Henrik Schack Jensen

<? require("../phpclanwebsite/counterstrike.php") ?>

<?
// get mysql login details (now working with phpclanwebsite snippets!)

include "../phpclanwebsite/config.php";

//create connection
$connection = mysql_connect("$mysql_host", "$mysql_login", "$mysql_pass") or die ("Couldnt connect to the server.");

//select database
$db = mysql_select_db("$mysql_database",$connection) or die ("Couldnt select the database.");

// Get members from database
$sql = "SELECT TAG FROM cws_members";
$sql_result = mysql_query($sql,$connection) or die ("Couldnt execute query");
while ($row = mysql_fetch_array($sql_result)) {
$memberson = array();
}

// set vars (back to Schacks code)
<?
$serveradr ="129.142.199.185";
$serverport="27015";
$csinfo=new CounterStrike;
$status=$csinfo->getServerPlayers($HTTP_GET_VARS["serveradr"],$HTTP_GET_VARS["serverport"],1000);
  if ($status) {
?>
<TABLE>
<TR>
    <TD ALIGN="CENTER" VALIGN="TOP">
    <TABLE>
    // Find players equal to members (on our own now + leaning to the supercoders scripting)
      <? if (is_array($csinfo->m_playerinfo)) { ?>
      <?while $result_array = array_intersect((list(,$player) = each ($csinfo->m_playerinfo)), $memberson);?>
    <? { ?>
    <TR>
        <TD><?=$player["name"]?>&nbsp;</TD><TD>IN-GAME</TD>?></TD>
    </TR>
    <? } ?>
    <? } else { ?>
    <TR>
    <TD><?=$player["name"]?>&nbsp;</TD><TD>OFFLINE</TD>?></TD>
    </TR>
    <? } ?>
    </TABLE>
    </TD>
</TR>
</TABLE>
<? } else { ?>
<DIV ALIGN="CENTER">Error</DIV>
<? } ?>
Avatar billede fangel Nybegynder
16. oktober 2003 - 11:39 #7
denne skal i hvert fald laves om

$status=$csinfo->getServerPlayers($HTTP_GET_VARS["serveradr"],$HTTP_GET_VARS["serverport"],1000);

til

$status=$csinfo->getServerPlayers($serveradr,$serverport,1000);

---

<?while $result_array = array_intersect((list(,$player) = each ($csinfo->m_playerinfo)), $memberson);?>

skal måske laves om... koden er ikke stillet _så_ pænt op - så skal lige finde rundt i det..

Morten
Avatar billede capion Nybegynder
16. oktober 2003 - 16:08 #8
oprindeligt ser det sådan ud:

    <? if (is_array($csinfo->m_playerinfo)) { ?>
    <? while (list(,$player) = each ($csinfo->m_playerinfo)) { ?>
    <TR>
        <TD><?=$player["name"]?> osv...TD>
    </TR>

hvor jeg så forsøger at putte et "fundent resultat som er spillere in-game" ind i arrayet $result_array, ved at finde "intersects" mellem $memberson (fra databasen) og det sorterings-arrat Henrik Schack Jensen har lavet til at liste players der er aktive på serveren (altså i spillet).
Avatar billede fangel Nybegynder
16. oktober 2003 - 16:20 #9
hvordan virker det - virker det overhovedet ikke, eller viser det alle spillere eller hva?

Morten
Avatar billede capion Nybegynder
16. oktober 2003 - 17:55 #10
http://www.csfav.dk/phpclanwebsite/members_on_gameserver.php

men jeg får slet ingen ting frem.. den er bare hvid
Avatar billede fangel Nybegynder
16. oktober 2003 - 20:07 #11
hmmm... interesant... har desværre ikke lige tid til at teste det for dig - men jeg har aldrig leget med array_intersect, så det kunne være en god øvelse...

istedet for at online-spillere i klassen, så prøv at løs klassen igennem, ned i et andet array - så du ændre med 2 normale arrays...

Morten
Avatar billede capion Nybegynder
17. oktober 2003 - 00:32 #12
Dette script er lidt special-strikket. Det er tiltænkt/tilpasset til PHPClanWebSite.com scriptet. Den kan meget nemt tilpasset andet også.
Man gør sådan:
Counterstrike.php kan hentes på gameserver.dk, venligst givet af Henrik Schack Jensen (henrik@schack.dk)
Blinketingen kan grabbes her: http://www.csfav.dk/home/online.gif
opret en ny php-side med dette:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<? require("counterstrike.php");?>
<HTML>
<HEAD>
<?
$serveradr="dinServerIP";
$serverport="DinServerPort";
?>
<TITLE>Players on <?=$serveradr?></TITLE>
</HEAD>
<BODY BGCOLOR="#C0C0C0">
<?


  $csinfo=new CounterStrike;
  $status=$csinfo->getServerPlayers($serveradr,$serverport,1000);
// Fill an array with the connected nicks
    $i==0;
    while (list(,$player) = each ($csinfo->m_playerinfo)) {
    $players[$i]= $player["name"];
    $i++;
    }


// END

// Connect to the database
$connection = mysql_connect("DinMysqlHost", "DinMysqlBruger", "DitMysqlPass") or die ("Couldnt connect to the server.");

// select database
$db = mysql_select_db("clan",$connection) or die ("Couldnt select the database.");

// Get members from database, and compare eac h of them with the array, if it's ok, put in green, print an image.. etc
$sql = "SELECT TAG FROM cws_members";
$sql_result = mysql_query($sql,$connection) or die ("Couldnt execute query");
while ($row = mysql_fetch_array($sql_result)) {
if (IN_ARRAY($row["TAG"],$players)) { echo "<img src=online.gif> <font color=green>"; }
echo $row["TAG"];
echo "</font>";
echo "<br>";
}


?>
</BODY>
</HTML>
Avatar billede capion Nybegynder
17. oktober 2003 - 00:33 #13
Kan ses i funktion her (NÅR der altså er et ClanMedlem i spil på CSFAV-serveren) :
http://www.csfav.dk/home/index.php
Avatar billede fangel Nybegynder
17. oktober 2003 - 09:52 #14
godt at du fik det til at virke - du kunne jo godt ;)

Morten
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