Aller au contenu

K3NSHI

Membre
  • Compteur de contenus

    11
  • Inscription

  • Dernière visite

1 abonné

À propos de K3NSHI

Visiteurs récents du profil

447 visualisations du profil

K3NSHI's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator
  • Week One Done
  • One Month Later
  • Conversation Starter

Recent Badges

1

Réputation sur la communauté

  1. Bonjour à tous, Je dispose d'un projet de moteur de recherche que j'ai réalisé entre 2017 et 2020 (soit 3 ans de développement) Aujourd'hui le projet est en stand by, et nécessite quelques modifications, suite à cela je recherche un DEV pour une collaboration sur ce projet. N'hésitez pas à me donner votre Skype pour en discuter,
  2. K3NSHI

    CMS Design Worea

    Merci du partage
  3. Je rejoins Galet et Riws, il y a toujours des défis qu'on peux réaliser. Personnellement j'ai administré le server Ancestral Online pendant 5 ans (entre 2010 et 2015) et j'ai toujours aimer ce jeu, ce qui m'avais poussé à monter un serveur à l'époque c'est qu'il y avait aucun serveur qui correspondait à celui que je voulais, tant aux niveaux PvP que Pve, du coup j'ai créer ce serveur qui faisait partie des top 5 en france. Aujourd'hui rejouer en tant que " joueur " sur Metin ça me paraitrait difficile car j'y ai déjà beaucoup jouer en tant que joueur : A moins qu'il y ait un serveur qui me redonne Goût à Metin, aujourd'hui je me suis dis que j'allais rejouer à metin juste pour voir si j'avais toujours de la nostalgie, du coup j'ai installé révolutionmt2, j'ai été décue. Je m'explique pourquoi. Au niveau du Gameplay ce n'est pas assez fluide, on sent que sur le serveur l'item shop est obligatoire, et c'est bien la le problème de la majorité des serveurs. La réalité c'est qu'il faut avoir un gameplay complet, avec des "compléments" en item-shop. Entre 2015 et 2020 j'ai travaillé sur des projets personnels (moteur de recherche, réseau social), et sans metin j'aurais jamais pu acquérir ces compétences, donc je rejoins Riws sur le fait que Metin c'est un tremplin. Pour ceux qui sont intéréssés, on peux se présenter des projets en communs;
  4. K3NSHI

    DJ - Comment mixer ?

    UP Le meilleur moyen d'apprendre à mixer c'est d'acheter une table de mixage et d'essayer toutes les fonctionnalités, LOW/FILTER/ROLL etc... Il existe plusieurs tables de mixage pour débuter à des prix raisonnables. Bonne continuation.
  5. Effectivement je suis d'accord avec toi et ça me rassure de savoir qu'il y a d'autres personne qui pensent la même chose que moi. Après dans le cas ou la diminution de la communauté continue a baissé j'ai peut-être une idée qui pourrait être utile. Cette idée serait d'utiliser la communauté encore présente pour continuer à travailler sur l'émulation mais pas seulement sur Metin2, mais sur la programmation et le développement de manière générale. Ca permettra de continuer d'avancer dans les domaines du code sans pour autant ressusciter un jeu qui se meurt à petit feux. Personnellement quand j'ai pris la décision d'arrêter mon serveur privé metin c'était pour une raison simple, ma communauté de joueurs avait baissé, et puis les frais d'entretien du serveur avec les mises à jour étaient trop conséquentes par rapport aux revenues que générait le serveur, et je pense que pas mal d'admins server se sont retrouvés dans cette situation et ont préférés arrêté, je pense que c'était la meilleure décision à prendre car quand on a arrêté c'était déjà le début de la fin de Metin2. Je ne dis pas que Metin2 est mort, loin de là, mais en tous cas la communauté de joueurs qui a porté le jeu à une époque n'est plus présente aujourd'hui et c'est un constat.
  6. Bonjour à tous, J'ai travaillé avec des amis sur un projet de moteur de recherche écrit en PHP/MYSQL ces dernières années. Je vous poste ce projet ici, je sais pas encore si les fichiers sources seront vendues ou exploités dans le futur. L'idée de base était de pouvoir proposer un moteur de recherche pour pouvoir accéder rapidement à des profils d'utilisateurs et permettre une mise en relation rapide et sécurisée à travers un système de profilage et messagerie embarquée. Exemple : Monsieur X veut contacter Madame Y pour un service Z, Monsieur X recherche Madame Y directement à travers l'App et peut entrer en contact avec elle à travers son profil et échanger de manière anonyme et sécurisée à travers le service. L'APP fait appel à plusieurs fonctions avec la DB pour proposer instantanément des résultats à travers un système de suggestion automatique en temps réel. VERSION ACTUELLE : V.6 STABLE ECRITURE : PHP CODEIGNITER INTERFACES : OK, REQUEST AND SEARCH RESULTS DATA INFORMATIONS : MONGODB, DB STABLE PS : La web APP contient également des codes de tracking pour permettre de comprendre et d'analyser le comportement des utilisateurs dès leurs arrivés, pour des raisons de sécurité je ne posterai donc pas ces codes. Aperçue des fichiers du projets à la racine : Fichier CONFIG <?php /** * Configuration */ ini_set("display_errors", "on"); /** * Site URL * No '/' at the end */ define("HOST", "//search.sim"); $host = getenv('OPENSHIFT_MYSQL_DB_HOST'); $port = getenv('OPENSHIFT_MYSQL_DB_PORT'); $user = getenv('OPENSHIFT_MYSQL_DB_USERNAME'); $pass = getenv('OPENSHIFT_MYSQL_DB_PASSWORD'); $db = getenv('OPENSHIFT_GEAR_NAME'); ?> Fichier GET RESULT : ***********************************************************************************/ /** * Constante prédéfinie `defined('EXEC') or die('Accès direct interdit !');` * qui est vérifié dans les fichiers inclus pour empêcher l'accès direct **/ define('EXEC',1) or die('No access'); // Enregistre l'heure de début et l'utilisation de la mémoire. $startTime = microtime(1); $startMem = memory_get_usage();//Indique la quantité de mémoire utilisée par PHP $separator = DIRECTORY_SEPARATOR; global $separator; /** Définir BASE_PATH comme réspertoire de ce fichier */ if ( ! defined( 'PATH_BASE' ) ) { define( 'PATH_BASE', dirname( __FILE__ ).$separator);//C:\serveur\...\www\cimmac\ } // Global definitions $parts = explode($separator, PATH_BASE); /** Définir PATH_ROOT comme réspertoire racine, il est défini pour le dossier admin */ if ( ! defined( 'PATH_ROOT' ) ) { define( 'PATH_ROOT', implode(DIRECTORY_SEPARATOR, $parts));//C:\serveur\...\www\cimmac\ } /** Définir ROOT comme réspertoire principal du serveur */ if ( ! defined( 'DIR_ROOT' ) ) { define( 'DIR_ROOT', dirname(PATH_ROOT).$separator);//C:\serveur\...\www\ } /** On définit le dossier includes\ : **/ if ( ! defined( 'INCLUDES' ) ) { define( 'INCLUDES', PATH_BASE.'includes'.$separator);//C:\serveur\...\www\cimmac\includes\ } /** On définit le dossier content\ : **/ if ( ! defined( 'CONTENT' ) ) { define( 'CONTENT', PATH_BASE.'content'.$separator);//C:\serveur\...\www\cimmac\includes\ } if(isset($_POST['q']) && isset($_POST['formIndex']) && $_POST['formIndex']=='search'){ include(INCLUDES.'api.defines.php'); include(INCLUDES.'api.functions.php'); include(INCLUDES.'api.connect.php'); $keyword = trim($_POST['q']); $Results = $Mysql->TabResSQL('SELECT * FROM categoriesarticles WHERE Cat_p LIKE "%'.$keyword .'%" ORDER BY Cat_p ASC LIMIT 0, 10'); $NbrResults = count($Results); $li =''; if($NbrResults!=0){ foreach($Results as $row){ $li .='<li><a id="result-item" href="'.base_url().'search?q='.$row['categorie_id'].'">'.$row['Cat_p'].'</a></li>'; } } echo $li; }elseif(empty($_POST['q']) && !empty($_POST['formIndex'])){ echo 'Aucun résultat'; }else{ header('HTTP/1.0 403 Forbidden'); die(); } Tour d'horizon sur le fichier HTTP Request. ***********************************************************************************/ /** * Constante prédéfinie `defined('EXEC') or die('Accès direct interdit !');` * qui est vérifié dans les fichiers inclus pour empêcher l'accès direct **/ defined('EXEC') or die('No access'); class HttpRequest { /** * default controller class */ const CONTROLLER_CLASSNAME = 'Index'; /** * position of controller */ protected $controllerkey = 0; /** * site base url */ protected $baseUrl; /** * current controller class name */ protected $controllerClassName; /** * list of all parameters $_GET and $_POST */ protected $parameters; public function __construct() { // set defaults $this->controllerClassName = self::CONTROLLER_CLASSNAME; } public function setBaseUrl($url) { $this->baseUrl = $url; return $this; } public function setParameters($params) { $this->parameters = $params; return $this; } public function getParameters() { if ($this->parameters == null) { $this->parameters = array(); } return $this->parameters; } public function getControllerClassName() { return $this->controllerClassName; } /** * get value of $_GET or $_POST. $_POST override the same parameter in $_GET * * @param type $name * @param type $default * @param type $filter * @return type */ public function getParam($name, $default = null) { if (isset($this->parameters[$name])) { return $this->parameters[$name]; } return $default; } public function getRequestUri() { if (!isset($_SERVER['REQUEST_URI'])) { return ''; } $uri = $_SERVER['REQUEST_URI']; $uri = trim(str_replace($this->baseUrl, '', $uri), '/'); return $uri; } public function createRequest() { $uri = $this->getRequestUri(); // Uri parts $uriParts = explode('/', $uri); // if we are in index page if (!isset($uriParts[$this->controllerkey])) { return $this; } // format the controller class name $this->controllerClassName = $this->formatControllerName($uriParts[$this->controllerkey]); // remove controller name from uri unset($uriParts[$this->controllerkey]); // if there are no parameters left if (empty($uriParts)) { return $this; } // find and setup parameters starting from $_GET to $_POST $i = 0; $keyName = ''; foreach ($uriParts as $key => $value) { if ($i == 0) { $this->parameters[$value] = ''; $keyName = $value; $i = 1; } else { $this->parameters[$keyName] = $value; $i = 0; } } // now add $_POST data if ($_POST) { foreach ($_POST as $postKey => $postData) { $this->parameters[$postKey] = $postData; } } return $this; } /** * word seperator is '-' * convert the string from dash seperator to camel case * * @param type $unformatted * @return type */ protected function formatControllerName($unformatted) { if (strpos($unformatted, '%20') !== false || strpos($unformatted, '?') !== false) { $formattedName = str_replace('/%20/','',$unformatted); $formattedName = explode('?', $formattedName); $CountformattedName = count($formattedName); $formattedName=ltrim($formattedName[0]); }elseif (strpos($unformatted, '?') !== false){ $formattedName = explode('?', $unformatted); $CountformattedName = count($formattedName); $formattedName=ltrim($formattedName[0]); }else { // string is one word $formattedName = $unformatted; } // if the string starts with number if (is_numeric(substr($formattedName, 0, 1))) { $part = $part == $this->controllerkey ? 'controller' : 'action'; throw new Exception('Incorrect ' . $part . ' name "' . $formattedName . '".'); } return ltrim($formattedName, '_-'); } } Pour le moment le projet est toujours en Stand By après 3 ans de développement. Les codes sources valent un certain prix, j'ai cherché des mois entiers des codes à peu près similaires je n'ai rien trouvé de comparable même sur les plus grands forums de développement open source (github, phpprojets etc...) Je posterai ici les updates mais pour ceux qui sont intéressés pour ce projet n'hésitez pas à me contacter. Salutations,
  7. Bonjours à toutes et à tous, Ayant été très actif entre 2010 et 2015 en ayant gérer un serveur Metin2 relativement connue à l'époque de l'Age d'or de Metin2 en France, je suis revenue m'inscrire sur ce forum et jeter un coup d'oeil sur l'évolution de Metin2. Je me rappelle autrefois, avant d'arrêter mes activités d'émulateur sur Metin2, la communauté de joueurs s'était massivement réduite, on pouvaient remettre ce phénomène sur le fait que la génération qui jouait sur les serveurs avait maintenant d'autres préoccupations (études, travail, etc...) L'époque ou j'ai démarré était très difficile par rapport à aujourd'hui, à l'époque pour faire tourner un serveur metin2 on utilisaient Hamachi, les serveurs dédiés n'étaient pas encore accessibles pour le grand public et hors de prix, le web n'étaient pas encore très évolué, on utilisaient le système MT2CMS (customisé) pour la plupart, quelques mois après après l'effort de plusieurs développeurs ayant travaillés ensemble et ayant partagés leurs travaux des solutions de gestion de contenues (CMS) ont vue le jour et ont permis une évolution remarquable, ce qui a profité a énormément d'administrateurs de serveurs. Il en va de même pour les question de sécurité, à l'époque en 2010 les hebergeurs n'étaient pas préparés pour les question de piratage et d'hacking, les failles de sécurité n'étaient pas encore connues du grand public, c'est bien après que les hebergeurs se sont rendues compte des failles majeurs que pouvaient contenir un serveur et ses bases de données, peu importe, pendant ce temps la il fallait se protéger sois-même avec des firewall fait maison et des solutions un peu moins standardisés, après cet épisode les hébergeurs ont enfin pris conscience du phénomène de piratage et ont commencé à suspendre tous les serveurs ayant des pings douteux, aujourd'hui avec l'évolution de linux et ses composants il me semble que cela a bien évolué, et c'est une bonne chose d'ailleurs. Aujourd'hui il est difficile de savoir ce que vaut la communauté d'émulation à l'échelle nationale, c'est une question que je me pose, et c'est pourquoi j'ai ouvert ce post pour savoir avec vous quel est aujourd'hui la situation de la communauté, les joueurs encore présents, les projets d'avenirs, mais surtout la situation de la communauté en 2020. Vos points de vues sont les bienvenue, Salutations, K3K3N.
  8. Hello tout le monde, Les anciens me reconnaitrons sûrement, je suis K3NSHI, ancien administrateur du serveur Ancestral Online, et membre actif de la communauté francophone metin dans les années 2012 à 2015, j'ai participé à plusieurs projets dans l'émulation metin francophone. (révisions des files 2014, débugage, traductions et d'autres projets moins officiels...) Je me suis inscris aujourd'hui sur ce forum tout simplement par envie et non à des fins lucratives, revenir jeter un coup d'oeil et pourquoi pas participer dès que mon temps me le permet à des débats ou des réflexions voir même apporter mon aide (si besoin) serait avec plaisir. Salutations, KEKEN
×
×
  • Créer...

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.