Darf ich fragen wieso es ein Windowsserver sein soll? Welche Leistung brauch der Server denn? Und was bietest du als Gegenleistung?
Beiträge von jdm_driven
-
-
Das habe ich nicht so ganz verstanden, um ehrlich zu sein. Also ich soll zu den bestehenden Dateien noch eine erstellen, die bestehende Datein einen Wert zuweisen und es durch die neu erstelle Datei aufrufen?
Nicht ganz, mach so weiter wie jetzt.erstelle eine Datei bspw. menu.php in der dein Menü drin ist:
und in den anderen Dateien z.B. index inkludierst du das menu:
-
Wenn man jetzt zum Beispiel im künftigen UCP ist und um sich einloggen zukönnen, benötigt man die DB ID(sieht i. d. R. jeder) und den Verifizierungscode(jeder bekommt ein unterschiedlich und das bleibt geheim). Somit hat man schonmal sein UCP mit seinem Ingamestatus verknüpft, aber was mache ich um es mit dem Forum zu verknüpfen und mit dem Teamspeak? Da muss man ja Plugins einfügen, die sowas abfragen oderso. Da bin ich bisschen verwirrt...
Du loggst dich doch im UCP mit den Userdaten ein, mit denen du dich auch infame einloggst ( zugriff auf selbe Datenbank bzw. Tabelle) somit sind UCP und IG schonmal verknüpft.
Für das Forum kannst du die Registration abschalten und entweder mit anmelden am Server oder durch bestätigen im UCP eine Funktion schreiben die dir einen Foren-Account mit den selben oder eben anderen Logindaten erstellt (Stichwort: Externe Registrierung / Externer Login).
und für Teamspeak kannst du mit der Eindeutigen ID (glaube 28 Stelligen Code), welcher jeder Teamspeak User hat, eine Abfrage erstellen und dann eben der ID Rechte zuweisen. Diese solltest du auch in der Datenbank speichern damit man sich z.B. auch die Rechte wieder nehmen kann oder zur Sicherheit auch eine Abfrage ob der Client gerade auf dem Server ist und die Selbe IP hat.
Für alles Teamspek mäßige braucht du die TS3 Admin Class oder das TS3 Framework.Weiß jemand, wie ich bei 3 verschiendenen Links nicht die ganze Seite neuschreiben muss?
Also sagen wir ich habe die Startseite, dann den Loginbereich und dann noch das Regelwerk. Allerdings haben die alle das selbe Design nur halt verschiedene Inhalte.
Momentan habe ich halt für jede Seite auch 3 verschiedene Dateien, kann man sowas umgehen?
Weil wenn ich z. B. irgendwas ändere an den Links oder sonstiges, dann muss ich das bei jedem machen...Du kann eine PHP Datei erstellen die je nach seiten Link bestimmte Werte bzw. Texte ausgibt oder aber Du behältst die, mMn. bessere, Struktur mehrerer Seiten und erstellst eine Weiter Datei in der die Links drin stehen und verknüpfst diese PHP Datei per include auf jeder Seite in der Navigation.
-
Also als erstes bräuchtest du ein Login System damit nicht jeder alles von jedem sehen kann. Dazu gibts sogar hier im Forum Anleitungen.
Dann musst du dir anschauen wie man Datensätze aus datenbanken zieht und per php anzeigt (mysqli oder pdo).
Was meinst du mit "ingame-ts-forum Synchronisation"?
CSS kann man später noch machen, solange sieht die Seite nunmal nicht sonderlich hübsch aus, aber das spielt ja erstmal keine große Rolle, du willst ja lernen und bist noch kein Profi.
-
Also wenn du interesse hast und dir das Angebot dort immernoch zu teuer ist, kann ich dir meine Verkaufen. Habe mir im Sommer letzten Jahres das gleiche Bumdle gekauft und seit dem kaum benutzt weil ich meinen Rechner verkauft habe.
-
Da ich momentan einwenig mehr im JS Bereich lernen möchte habe ich heute mithilfe eines Tutorials ein kleines Tetris Spiel "programmiert" an dem ich noch ein wenig lernen möchte.
Das Spiel hat momentan die Tetris Grundfunktionen und wird von mir noch erweitert ( Multiplayer).Das ganze ist als OpenSource auf Github falls es jemand haben möchte^^
Gespielt wird das ganze mit den Pfeiltasten und Q und W zum drehen.
Bildschirmfoto 2018-05-25 um 13.33.02.png
HTML: index.html
Alles anzeigen<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Teter</title> 00b; <style> body { background-color: #19181e; color: #fff; font-family: Verdana; font-size: 2em; text-align: center ; } #tetris { border: white 5px solid; height: 90vh; } </style> </head> <body> <div id="score"></div> <canvas id="tetris" width="240" height="400"></canvas> <script src="js/tetris.js"></script> </body> </html>
JavaScript: js/tetris.js
Alles anzeigenconst canvas = document.getElementById('tetris'); const context = canvas.getContext('2d'); context.scale(20,20); function arenaSweep() { let rowCounter = 1; outer: for (let y = arena.length - 1; y > 0; --y){ for (let x = 0; x < arena[y].length; ++x){ if(arena[y][x] === 0){ continue outer; } } const row = arena.splice(y, 1)[0].fill(0); arena.unshift(row); ++y; player.score += rowCounter * 10; rowCounter *= 2; } } function collides(player, arena) { const [m,o] = [player.matrix, player.pos]; for (let y = 0; y < m.length; ++y){ for (let x = 0; x < m[y].length; ++x){ if (m[y][x] !== 0 && (arena[y + o.y] && arena[y + o.y][x + o.x]) !== 0 ){ return true; } } } return false; } const colors = [ null, 'red', 'blue', 'green', 'purple', 'yellow', 'pink', 'orange' ]; function createMatrix(w,h) { const matrix = []; while (h--){ matrix.push(new Array(w).fill(0)) } return matrix; } function createPiece(type) { switch (type){ case 'O': return [ [2, 2], [2, 2], ]; case 'I': return [ [0, 3, 0 ,0], [0, 3, 0, 0], [0, 3, 0, 0], [0, 3, 0, 0], ]; case 'S': return [ [0, 4, 4], [4, 4, 0], [0, 0, 0], ]; case 'Z': return [ [5, 5, 0], [0, 5, 5], [0, 0, 0], ]; case 'L': return [ [0, 6, 0], [0, 6, 0], [0, 6, 6], ]; case 'J': return [ [0, 7, 0], [0, 7, 0], [7, 7, 0], ]; case 'T': return [ [0, 0, 0], [1 , 1, 1], [0, 1, 0], ]; } } function draw(){ context.fillStyle = '#000'; context.fillRect(0, 0, canvas.width, canvas.height); drawMatrix(arena, {x: 0, y: 0}); drawMatrix(player.matrix, player.pos); } function drawMatrix(matrix, offset) { matrix.forEach((row, y) => { row.forEach((value, x) => { if (value !== 0){ //let color = colors[Math.floor(Math.random()*colors.length)]; //epileptic color change context.fillStyle = colors[value]; context.fillRect(x + offset.x, y + offset.y, 1, 1,); } }); }); } function merge(player,arena) { player.matrix.forEach((row, y) => { row.forEach((value, x) => { if (value !== 0) { arena[y + player.pos.y][x + player.pos.x] = value; } }) }) } function playerDrop() { player.pos.y++; if(collides(player, arena)){ player.pos.y--; merge(player,arena); playerReset(); arenaSweep(); updateScore(); } dropCounter = 0; } function playerMove(dir) { player.pos.x += dir; if(collides(player,arena)){ player.pos.x -= dir; } } function playerReset() { const pieces = 'OISZLJT'; player.matrix = createPiece(pieces[pieces.length * Math.random() | 0]); player.pos.y = 0; player.pos.x = (arena[0].length / 2 | 0)- (player.matrix[0].length / 2 | 0); if (collides(player,arena)){ arena.forEach(row => row.fill(0)); player.score = 0; updateScore(); } } function playerRotate(dir) { const pos = player.pos.x; let offset = 1; rotate(player.matrix, dir); while (collides(player ,arena)){ player.pos.x += offset; offset = -(offset + (offset > 0 ? 1 : -1)); if(offset > player.matrix[0].length){ rotate(player.matrix, -dir); player.pos.x = pos; return; } } } function rotate(matrix, dir) { for (let y = 0; y < matrix.length; ++y){ for (let x = 0; x < y; ++x){ [ matrix[x][y], matrix[y][x], ] = [ matrix[y][x], matrix[x][y], ] } } if (dir > 0) { matrix.forEach(row => row.reverse()); } else { matrix.reverse(); } } function updateScore() { document.getElementById('score').innerText = player.score; } let dropCounter = 0; let dropInterval = 1000; let lastTime = 0; function update(time = 0) { const deltaTime = time - lastTime; lastTime = time; dropCounter += deltaTime; if(dropCounter > dropInterval){ playerDrop(); } draw(); requestAnimationFrame(update); } const arena = createMatrix(12,20); const player = { pos: {x: 0, y: 0}, matrix: createPiece(null), score: 0, }; document.addEventListener('keydown', event => { switch (event.keyCode){ case 37: playerMove(-1); break; case 39: playerMove(1); break; case 40: playerDrop(); break; case 81: playerRotate(-1); break; case 87: playerRotate( 1); break; } }); playerReset(); updateScore(); update();
-
existiert die Tabelle "Kostenvoranschlag" mit der Spalte "Email"? ist das auch richtig geschrieben?
-
Zeile?
-
- $statement = $pdo->prepare("SELECT * FROM kostenvorschlag WHERE Email = :absenderemail");
- $result = $statemant->execute(array('absenderemail' => $absenderemail));
vielleicht hilft das ja weiter.. -
Nein, aber ich würde auch Vorrübergehend ein Template akzeptieren.
akzeptieren? welches?
-
gibt es bereits ein design?
-
Ich mach die Arbeit.
Welche?
Völlig egal, er hat sich gerade Freiwillig zum Sklaven gemacht nun gebt ihm endlich Aufgaben
-
Chooper ganz wahrscheinlich nicht, den Quellcode siehst du nicht. Das GUI ist nicht typisch Autohotkey
wenn das der sBinder ist von SAPlayer aus Samp api Forum dann ist der mit AHK geschrieben, kann aber auch sein dass ich mich vertue.
-
Der sBinder ist mit AHK geschrieben
-
Dauert das umschreiben lange ?
Das kommt drauf an wieviel da geändert werden muss und wie gut der Programmierer ist bzw. damit zurecht kommt.
-
Weitere Fragen bitte per PN oder Mail.
man solle sich für mehr Informationen und “Interesse” bei ihm per PN melden
Tja Kush ich bitte dich nochmals den Beitrag zu lesen vor allem die letzten Zeilen „Bewerbung nur per Mail!“
@IamSnasty sowas hier trägt zu den Gründen bei weshalb das nochts werden kann. Wir wollen einfache Informationen und bekommen patzige antworten mit falschen antworten. Kannst du dich jetzt mal bitte für ne story entscheiden? Ich langsam das Gefühl du willst garkeine Leute suchen.. -
Die Administration handelt immer richtig.
Zumindest manche
-
sieht sehr n1 aus - Meld dich mit nem Preis will auch nen Unikat
was ich speziell für @FeniX. ( Streets of San Andreas ) entwickelt habe.
B2T:
Finde vor allem das Logo sehr gelungen
-
Wie wärs mit einem der zahlreichen MMORPGS? Da sind wirklich extrem gute dabei die auch kostenlos sind z.B. Guild Wars
-
Ihr könnt euch diesbezüglich gerne bei uns ( WebExpanded) melden.
WebExpanded - Webentwicklung & Print- Mediendesign
MfG. Kai