Aller au contenu

Leaderboard

Popular Content

Showing content with the highest reputation on 08/05/2015 in all areas

  1. OnlineQueQuoi ? OnlineCodeProject (en français, projet de code en ligne). Il permet de créer des projets et d'y acceder de partout, un peu comme github, mais pas trop. OnlineCodeProject est né d'un besoin que j'avais eu il y a quelques années (2013), en effet j'avais besoin de coder avec un ami, on a cherché tout les 2 comment faires et j'en suis arrivé à cette idée. Vous allez me dire "oui mais avec github et un plugin on peut coder à plusieurs sans problèmes !". Très bien pas de soucis. Mais le truc c'est que j'ai déjà commencé le développement. Le projet est donc devenu un but personel pour moi, voir jusqu'où mes compétences peuvent aller. L'avancement : Le logiciel en est à ça 3ème release, qui est en développement depuis quelques mois (presque 1 an). Les autres releases ne fonctionnent plus, faute d'hébergement. Niveau dev' de la 3ème release, j'en suis à un point intérréssant : le logiciel est utilisable, alors on parle d'une Alpha ! Seulement je n'aime pas faire les choses à moitier. J'ai donc décidé de ne pas sortir d'Alpha. J'ai préféré me pencher sur une partie que je n'avais pas vue sur les 2 autres versions, la sécurité. Le logiciel est dépendant d'une base de donnée. Mais hors de question de passer par l'application pour se connecter ! Alors j'ai décidé de passer par PHP, normal. Donc pour le moment le logiciel en lui même n'avance pas. Je suis plutôt partit sur la partie web, et j'aime ça! C'est pourquoi j'ai décidé de faire un panel web permettant de gérer les projets à distance. Les fonctions : - Colorisation synthaxique de 40 langages. - Ajout de participants au projet. - Visibilité du projet (privé, public). Fonctions à venir: - Edition du code en live. - Compilation du code sur un serveur dédié. - Création de sa propre colorisation. - Système de droit pour les participants. - Système d'exploration des projets publics. - Système d'abonnement au logiciel. - Système de vue/like des projets publics. - Panel Web de gestion des projets. - Système d'API. Liste des langages: http://pastebin.com/Jnupm8Qg Les screens : Le site web : http://onlinecodeproject.besaba.com Voilà, merci d'avoir lus mon sujet. J'espère que mon projet vous plait !
    1 point
  2. Bonsoir à tous, comme je n'ai pas vu de tuto encore sur ca sur le forum, je me propose pour en faire un. Aller on commence. Je vous conseil de faire une sauvegarde avant de suivre ce tuto, on ne sait jamais, mieux vaut être prudent : Fichier qu'on va modifier : Mission.sqm, Functions.h Fichier qu'on va créer : fn_robShops.sqf dans MISSION\core\actions Tout d'abord allez dans la racine de votre mission MPMissions\racine ouvrez votre fichier Function.h, cherchez class Actions et rajoutez a la suite : class Actions { file = "core\actions"; class buyLicense {}; class healHospital {}; class pushVehicle {}; class repairTruck {}; class serviceChopper {}; ... class sellLicense {}; class robShops {}; //Rob Gas Station & Shops Script class takeOrgans {}; class robShops {}; //Voler station service Une fois cela modifié allez dans core\actions et créez un fichier fn_robShops.sqf et ajoutez ceci dedans : /* file: fn_robShops.sqf Author: MrKraken Made from MrKrakens bare-bones shop robbing tutorial on www.altisliferpg.com forums Description: Executes the rob shob action! Idea developed by PEpwnzya v1.0 */ private["_robber","_shop","_kassa","_ui","_progress","_pgText","_cP","_rip","_pos"]; _shop = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param; //The object that has the action attached to it is _this. ,0, is the index of object, ObjNull is the default should there be nothing in the parameter or it's broken _robber = [_this,1,ObjNull,[ObjNull]] call BIS_fnc_param; //Can you guess? Alright, it's the player, or the "caller". The object is 0, the person activating the object is 1 //_kassa = 1000; //The amount the shop has to rob, you could make this a parameter of the call (https://community.bistudio.com/wiki/addAction). Give it a try and post below _action = [_this,2] call BIS_fnc_param;//Action name if(side _robber != civilian) exitWith { hint "Tu ne peux pas dérober cette station" }; if(_robber distance _shop > 5) exitWith { hint "Tu dois etre a 5 mètres" }; if !(_kassa) then { _kassa = 1000; }; if (_rip) exitWith { hint "Avancement du braquage!" }; if (vehicle player != _robber) exitWith { hint "Sors de ton véhicule!" }; if !(alive _robber) exitWith {}; if (currentWeapon _robber == "") exitWith { hint "HaHa, ne me menace pas connard! Casses-toi !" }; if (_kassa == 0) exitWith { hint "La caisse est vide!" };// si il n'y a rien dans la caisse alors elle est vide (suite a un braquage) _rip = true; _kassa = 20000 + round(random 10000);//20000= le nombre minimal de la recette + suivant d'un "tirage au hasard" _shop removeAction _action; _shop switchMove "AmovPercMstpSsurWnonDnon"; _chance = random(100); if(_chance < 50) then { hint "Le caissier avait une alarme secrete, la police arrive!"; [[1,format["ALERTE la Station service: %1 est dérobé!", _shop]],"life_fnc_broadcast",west,false] spawn life_fnc_MP; }; //une chance sur 2 que la police sois contacter pendant le braquage _cops = (west countSide playableUnits); if(_cops < 2) exitWith{[[_vault,-1],"disableSerialization;",false,false] spawn life_fnc_MP; hint "Il n'y a pas assez de policiers!";}; //2 est le nombre de policiers necessaire disableSerialization; 5 cutRsc ["life_progress","PLAIN"]; _ui = uiNameSpace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format["Progression du braquage (tu dois être à 10m) (1%1)...","%"]; _progress progressSetPosition 0.01; _cP = 0.01; if(_rip) then { while{true} do { sleep 0.8; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format["Progression du braquage (tu dois être à 10m) (%1%2)...",round(_cP * 100),"%"]; _Pos = position player; // by ehno: get player pos _marker = createMarker ["Marker200", _Pos]; //by ehno: Place a Maker on the map "Marker200" setMarkerColor "ColorRed"; "Marker200" setMarkerText "Attention un braquage a lieu !"; "Marker200" setMarkerType "mil_warning"; if(_cP >= 1) exitWith {}; if(_robber distance _shop > 10.5) exitWith { }; if!(alive _robber) exitWith {}; }; if!(alive _robber) exitWith { _rip = false; }; if(_robber distance _shop > 10.5) exitWith { deleteMarker "Marker200"; _shop switchMove ""; hint "Tu as besoin de resté à 10m pour que le braquage continue !"; 5 cutText ["","PLAIN"]; _rip = false; }; 5 cutText ["","PLAIN"]; titleText[format["Vous avez volé $%1, maintenant partez, les flics arrivent !",[_kassa] call life_fnc_numberText],"PLAIN"]; deleteMarker "Marker200"; // by ehno delete maker life_cash = life_cash + _kassa; _rip = false; life_use_atm = false; sleep (60 + random(180)); life_use_atm = true; if!(alive _robber) exitWith {}; [[getPlayerUID _robber,name _robber,"211"],"life_fnc_wantedAdd",false,false] spawn life_fnc_MP; }; sleep 300; _action = _shop addAction["Braquer la station service",life_fnc_robShops]; _shop switchMove ""; Pour finir, allez sur votre editeur de map, rajoutez un PNJ civil non jouable et mettez ceci dans son initialisation this addAction["Rob Cash Register",life_fnc_robShops];
    1 point
  3. Salut à tous , Préambule : Après relecture de cet article, la densité d'information est plutôt élevé, par conséquent, n'hésitez pas à relire les phrases deux fois avant de passer à la suivante et à poser vos questions ^^. Par ailleurs, si vous remarquez une coquille, une bêtise ou que vous trouvez ce post carrément à coté de la plaque, n'hésitez pas à le signaler en réponse. Enfin, sachez que c'est plutôt un post informatif plutôt qu'un tutoriel ou un cours et que les tournures de phrase sont parfois... originales. Derrière le titre barbare du post se cache un sujet assez peu complexe mais qui peut être relativement difficile à comprendre sans une explication. L'IPv6, vous en avez sûrement entendu parler, c'est la nouvelle (depuis 20 ans) norme qui devrait permettre le routage des paquets sur le réseau à la place d'IPv4 (au cas où vous ne sauriez pas encore au courant, on risque de manquer d'IPv4 en 2005 ). Le premier intérêt d'IPv6 par rapport à la version 4 est de coder les IPs en hexa sur 128 bits (au lieu de 32 bits en décimal) ce qui permet d'envisager 3,4×1038. Notez qu'actuellement, on tourne sur 4 milliards d'ip. On peut citer d'autres intérêts comme notamment le multicast qui permet d'envoyer un même paquet à plusieurs clients (pour le moment, quand deux personnes sur le réseau regarde une même émission au même moment, on doit envoyer deux fois les mêmes paquets, avec IPv6 ça sera le même paquet adressé à deux IP) ou encore la mise en place d'attribution d'IPs simplifiées, etc. Au passage, on notera que le nombre d'IP nous parrait tellement invraisemblable que les distributeurs de bloc d'IP les distribuent très facilement et que cela est l'objet de critique de la part de certains. Ce post n'a pas pour but de vous faire l'étalage des fonctions d'IPv6, ni même de vraiment vous l'expliquer (j'en serai de toute façon bien incapable) mais plutôt de vous expliquer comment une IP nouvelle version est écrite/codée. La forme d'une IPv6 Sans plus attendre, voici notre futur : 2001:bc8:3264:101:f053:2abf:ef7d:6c89 Quoique un peu indigeste, ces adresses ont le mérite d'être organisé d'une manière beaucoup plus "compréhensible". La première chose à faire pour comprendre ces IPs est de les couper en deux (c'est à dire 2* 64bits) 2001:bc8:3264:101:f053:2abf:ef7d:6c89 La partie bleu correspond à l'adresse réseau, assez comparable à l'IPv4 publique que vous utilisez actuellement : elle est généralement attribuée à un routeur. La partie rouge correspond au sous-réseau. En IPv4, sur 32 bits, on ne disposait pas de place pour l'intégrer directement à l'IP, la solution qui a été trouvé, c'est de créer en plus de l'IP "normale" (appelée IP publique) des IP locales (souvent commençant par 192.160.xxx.xxx ou 10.0.xxx.xxx), le NAT devait alors router les paquets adressés à l'IP du NAT vers l'IP local (précisé dans le paquet comme étant le sous-réseau). Mais ça... c'était avant. Aujourd'hui en IPv6, on a tellement d'IP qu'on a décidé d'attribuer une super IP publique à tous les appareils, fini les réseaux locaux (sauf si vous le parametrez vous même d'une façon relativement hardcore), chaque machine se connecte directement à internet et les paquets lui sont directement envoyés (en passant par le routeur certe, mais celui-ci ne fait plus la redirection du paquet en lisant le sous-réseau). Pour attribuer le sous-réseau/la partie rouge, divers moyens sont possibles : une configuration manuelle définissant l'IP de chaque ordinateur (pas très intéressant dans la majorité des cas au vu des innovations de cette version 6) une attribution via un DHCPv6 : votre ordinateur se connecte à un serveur DHCP qui lui attribue le sous-réseau en fonction de ce qui n'est pas encore attribué de manière automatique via l'adresse MAC de votre ordinateur . Et oui, c'est bien ce dernier point qui est un des éléments majeurs de l'IPv6 : l'attribution des IPs peut se faire de manière automatique sans jamais aucun conflit ! Information : Pour ceux qui ne le sauraient pas encore, chaque carte réseau dispose d'une adresse unique qui lui est attribué dès sa sortie d'usine : l'adresse MAC (sans aucun rapport avec les pommes) L'IPv6 propose de généré automatiquement votre sous réseau (la partie rouge) grâce à l'adresse MAC, par exemple, si votre MAC est 00-50-56-C0-00-08, la carte réseau pourra "naturellement" mettre en sous-réseau quelque chose qui finirait par 0050:56C0:0008. Concernant la première partie Détaillons un peu la partie bleu, qui est pour rappel : 2001:bc8:3264:101:: Le premier octet (2001) est le préfixe de l'IP, il indique le type de paquet à rooté sur le réseau, 2000 et 2001 correspondent aux IPv6 dirigées vers une seule IP (unicast) sur le réseau public (non local) et fe80 est le préfixe du réseau local en unicast (comme 192.168 en IPv4). Ensuite, les autres octets indiquent le routage que suivra le paquet : pour que le paquet arrive à bon port, il doit emprunter une route particulière, sous IPv4, on utilisait de très grosses tables de routage expliquant où chaque IP allait. Maintenant, ces tables sont réduites au minimum puisqu'une grosse partie est contenue dans l'IP : Premier octet : bc8, c'est le réseau attribué à un LIR (une entreprise qui distribue des blocs IPs comme un FAI ou un hébergeur de serveur, en l'occurence Online) par le RIPE (le centre européen qui gère la distribution des IPs) qui l'a lui même reçu de l'IANA (l'organisme qui gère les IPs à l'échelle mondiale). 3264, ce second octet correspond au bloc /48. A ce niveau là, il n'y a pas de règles clairement prédéfini. Chaque LIR y va à sa sauce : certains attribuent un /48 au client, c'est ensuite le client qui doit découper le reste du réseau en /56 puis en /64 pour son usage personnel (ce qui donne un total de 65000*18 milliards d'IP) d'autres gardent le /48 pour eux et attribuent un /56 au client qui doit alors le découper /64 (ça laisse encore 256*18 milliards d'ip pour le client ) enfin les LIR très grand public distribuent directement les /64 aux utilisateurs lambda, c'est généralement le cas des FAI qui proposent l'IPv6 En l'occurence, 2001:bc8:3264:101:: ceci est un /64 (qui avec le sous-réseau sera découpé en 18 milliards d'IPs), le /56 correspondant est 2001:bc8:3264:100:: et le /48 parent est 2001:0bc8:3264::. Le mot de la fin Vous avez pu voir de quoi sont composés les adresses IPv6, j'espère vous avoir permis d'entrevoir un peu mieux l'étendu des capacités de ce futur réseau et je vous souhaite de bien vous amuser avec . Freegos.
    1 point
  4. Bien le bonjour à toutes et à tous ! On se retrouve aujourd'hui pour un petit bout de cours sur le fonctionnement même d'internet et plus principalement le modèle OSI. Comme d'habitude, n'hésitez pas à poster des remarques sur le sujet. Vous êtes prêt ? Allons-y ! Vous le savez peut être mais nous sommes 1,8 milliards d'internautes aujourd'hui. Internet est donc une gigantesque toile d'araignée La question la plus pertinente que l'on pourrait se poser c'est comment se fait-il que l'on puisse communiquer avec autant de machines, ou encore comment les informations que j'envoie arrivent toujours à bon port ? J'espère que ce cours vous aidera a y voir plus clair dans le fonctionnement des réseaux et donc d'Internet Comment communiquer ? Lorsque l'on est deux, communiquer est assez aisé, il suffit de ne pas parler en même temps que l'autre pour arriver à se faire comprendre sans trop de problèmes. Mais lorsque l'on est 10, c'est déjà plus délicat. Je ne vous parle pas d'une conversation à 100 ou 1000... Pourtant Internet a relevé le défi et on peut dire qu'il s'en sort plutôt pas mal ! Pour communiquer, il nous faut à minima un émetteur, un récepteur et un support de transmission (l'air lors d'une conversation orale). Des chercheurs ont donc réfléchi à comment faire pour que les ordinateurs puissent communiquer entre eux sans problème. Ils ont trouvé un modèle que chaque ordinateur se doit de respecter lorsqu'il essaie de communiquer, il s'agit du fameux modèle OSI (prononcer "auzi") I - Le modèle OSI Le modèle OSI est donc né en 1984 et est encore utilisé aujourd'hui, c'est pour dire sa puissance et son efficacité. Si vous avez des connaissances, vous aurez pu remarquer que ce modèle est né après Internet et donc que ça devait être bien galère avant ! Plus sérieusement, la raison est simple : le modèle OSI est né quand nous avons commencé à avoir une certaine expérience des communications entre ordinateurs. Il tient donc compte des communications existantes, mais aussi des communications futures et de leurs évolutions potentielles. Son objectif est donc de normaliser les communications pour leur garantir un fonctionnement sans failles et une capacité d'évolution Vous l'aurez compris, le modèle OSi est une norme qui préconise comment les ordinateurs doivent communiquer entre eux et il s'appuie sur une architecture par couches ! Elles sont au nombre de 7 et chacune a un nom différent, regardons un peu l'image qui suit : Les chercheurs ont donc jugé bon que ces 7 couches doivent être présentes pour le bon fonctionnement d'une communication entre deux ordinateurs. Chaque couche a donc un rôle précis à accomplir que l'on verra en détail dans d'autres cours présentant chacun une couche. En attendant, voici d'un peu plus près la description de chaque couche : II - Les 7 couches du modèle OSI Couche 1 : Couche physique Rôle : Offrir un support de transmission pour la communication Matériel associé : Le hub (ou concentrateur si on est anglophobe) Couche 2 : Couche liaison Rôle : Connecter les machines entre elles sur un réseau local Rôle secondaire : Détecter les erreurs de transmission Matériel associé : Le switch (ou commutateur si on est anglophobe) Couche 3 : Couche réseau Rôle : Interconnecter les réseaux entre eux Rôle secondaire : Fragmenter les paquets Matériel associé : Le routeur Couche 4 : Couche transport Rôle : Gérer les connexions applicatives Rôle secondaire : Garantir la connexion Matériel associé : Aucun Couche 5 : Couche session Couche 6 : Couche Présentation Couche 7 : Couche application Rôle : Non défini clairement, son but est d'acheminer les informations jusqu'à la couche 4 et inversement. Matériel associé : Le Proxy Les couches 5 et 6 sont moins importantes et peu utilisées, on ne s'attardera pas trop dessus ! En fait pour faire simple, Internet repose aujourd'hui sur un modèle qui s'appelle TCP/IP qui utilise le modèle OSI jusqu'à la couche 4 et un peu de la couche 7 les couches 5 et 6 ne sont donc pas utilisées ou pour des utilisations très précises Une fois que les couches ont été définies clairement, il faut retenir quelque chose : Une couche utilise un certain protocole, il en existe des très connus (exemple : Le protocole ethernet) mais d'autres moins connus font plus ou moins la même chose L'image suivante montre un aperçu des protocoles associés aux couches (merci Wikipedia) : Revenons à nos moutons, il y a deux règles d'or du modèle OSI : Chaque couche est indépendante. C'est-à-dire qu’on peut changer le protocole associé à une couche sans avoir besoin de modifier toutes les couches du modèle OSI. Chaque couche ne peut communiquer qu’avec une couche adjacente Voilà, vous connaissez les rudiments du modèle OSI ! Nous allons nous attaquer directement à la couche 1 ici : "En cours de rédac plz" Merci d'avoir lu, Bonne soirée, Pirkoa
    1 point
×
×
  • Créer...