Code Monkey home page Code Monkey logo

dd's Introduction

Comment utiliser ce programme ?

installer go 1.18+

récupérer le code :

git clone github.com/tgirod/dd

pour lancer le serveur et initialiser la base de données :

make init

pour ouvrir un client :

ssh localhost -p 1337

pour ouvrir, en même temps, un "monitor" avec des droits admin et des commandes supplémentaires :

ssh localhost -p 7331

dirtydistricy_afterGN.db contient la base de donnée sauvée en fin de GN.

Dans le répertoire 'contenu', il a des utilitaires (faits à la va vite) pour produire des fichiers .yaml qui ont servi à peupler le "net" en début de GN.

dd's People

Contributors

snowgoon88 avatar tgirod avatar

Stargazers

 avatar

Watchers

 avatar  avatar

dd's Issues

fonction "back"

Retour de playtest : c'est galère de ne pas pouvoir retourner au serveur précédent quand on explore. Ou alors il faudrait vraiment qu'il y ait des liens bidirectionnels partout.

serveur lebondistrict

Coucou,
j'imagine que c'est l'équivalent du "boncoin" ?
Il servira à quoi en jeu ? Il faut le peupler avec quoi ?

Communication entre les clients

Salut @snowgoon88 !

Pour info, je me suis un peu repenché sur l'infra qui fait tourner le jeu, et je pense avoir la recette qui va bien pour gérer la communication directe entre les clients - c'est à dire pouvoir broadcaster des tea.Msg vers tous les clients connectés sur le jeu.

Ca pourrait s'avérer utile pour la suite, si on veut ajouter des fonctions de chat, ou autres interactions en direct ...

Pas essentiel, mais pour savoir...

Coucou Tomtom,
l'état du "net", il est dans une structure de type Game.

  1. Ce Game, il est accessible depuis chaque client, par référence. C'est ça. Donc chaque client/console modifie bien le même objet ?
    Ou chacun obtient une copie quand il "crée" sa console/client ??

  2. Tu crois qu'on peut utiliser "gob" https://pkg.go.dev/encoding/gob ou https://riptutorial.com/go/example/27479/how-to-encode-data-and-write-to-file-with-gob- pour stocker, périodiquement, une copie de Game ?

Pb connexion distante

J'ai essayé de me connecter sur le serveur dd depuis une autre machine sur le même réseau local, et ça marche pas.

Server: ip = 192.168.1.32
$> go run .
2022/07/23 17:24:40 Starting SSH server on localhost:1337

Sur la machine distante ip = 192.168.1.28
$> ssh -vvv 192.168.1.32 -p 1337
OpenSSH_7.9p1 Debian-10+deb10u2, OpenSSL 1.1.1n 15 Mar 2022
debug1: Reading configuration data /home/alain/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolve_canonicalize: hostname 192.168.1.32 is address
debug2: ssh_connect_direct
debug1: Connecting to 192.168.1.32 [192.168.1.32] port 1337.
debug1: connect to address 192.168.1.32 port 1337: Connection refused
ssh: connect to host 192.168.1.32 port 1337: Connection refused

Il faut faire qq chose de spécial ? Genre se loguer avant en sur la mahcine serveur, puis refaire un ssh sur le port 1337 en local ? Ca ça marche, mais c'est un peu lourd :o)

Grand Braquage

Pour commencer à gérer le grand braquage, j'ai fait un script python qui génère des Registry du type
{"DT_PA-5_DZ_10", False, "", 1},

  • DT signifie qu'on parle de l'emploi du temps des prisonniers
  • PA-5 est l'ID d'un prisonnier
  • DZ est un lieu (DeadZone)
  • 10 est un créneau horaire (10h)

Ce qui permet d'aller ensuite modifier l'EdT des Prisonniers (et des Agents) en modifiant des registres, si on a compris comment ça marche...

Affichage : encore un bug

La commande help affiche des trucs bizarres pour toutes les commandes avec sous-commandes. Par exemple 'data' dans ce qui suit

> help                                                                                                   

  COMMANDES DISPONIBLES                                                                                    

  NOM       DESCRIPTION                                                                                    
  back      quitte le serveur actuel et se reconnecte au serveur précédent                                 
  connect   établit la connexion avec un serveur                                                           
  data      data                                                            effectuer une recherche sur    
  le serveur                                                                                               
  help      affiche l'aide                                                                                 
  identify  validation d'identité avec le login/password                                                   
  index     liste les services du serveur courant                                                          
  link      affiche les liens disponibles ou suit un lien                                                  
  load      charge une nouvelle commande                                                                   
  plug      active l'interface neuronale hors connexion                                                    
  quit      ferme la connexion au serveur courant                                                          
  registry  registry                                                        manipuler les périphériques    
  connectés au serveur                                     

formattage du code

yop ! petite astuce : go définit un style de formattage unique, et fournit un outil pour formatter automatiquement le code : gofmt.

Si tu peux passer le code dedans avant le commit (ou configurer emacs pour qu'il le fasse automatiquement à la sauvegarde de fichier), ça pourrait nous éviter des cafouillages inutiles dans les commits - pour l'instant je crois pas que ça ait posé de souci, mais ça pourrait ...

branche "timer"

Yop !

J'ai modifié le code pour remplacer les têtes de mort par un "final countdown". evade permet de remettre le countdown au max, et le max est défini par le niveau de sécurité du serveur courant. Je trouve ça plus lisible que ce qu'on avait jusqu'ici.

Si c'est bon pour toi je fait le merge.

modif de jack ?

Situation actuelle :

  1. la commande link affiche les adresses des serveurs distants
  2. la commande jack permet d'établir une connexion à un serveur pour peu qu'on ait son adresse

Conséquence : une stratégie pour avancer consiste à se connecter à un serveur, lister les liens, utiliser jack pour suivre un lien innaccessible, et recommencer. Quand ça devient trop chaud on se déconnecte, et on recommence là ou on s'est arrêté.

Du coup c'est un peu trop facile, il faut compliquer un peu je pense. Par exemple jack permet de suivre un lien sans avoir le niveau de privilège nécessaire. Si on déco on est obligé de refaire tout le chemin.

T'en penses quoi @snowgoon88 ?

bug d'affichage bis

quand on tape une commande qui ne correspond à rien, l'affichage est tout cassé, c'est chiant.

timer

une alternative aux têtes de mort en haut de la fenêtre, c'est de remplacer ça par un compte à rebours.

  1. il se lance quand on fait une manip illégale
  2. sa valeur de départ dépend du niveau de sécurité du serveur
  3. quand il arrive à 0 on se fait kicker.

bug d'affichage

Quand on utilise la commande help XXXX, la dernière ligne de cette commande reste visible sur toutes les commandes suivantes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.