Kriax Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 (modifié) Salut, Avant toute chose, avouer que le titre du sujet est attirant haha :p Bon, partons dans le vif du sujet ! J'en ai marre de voir les personnes vendre les RolePlay (SpheX, Delachambre, ...). Donc j'ai décidé de créé un RolePlay durant mon temps libre petit à petit. Ce RolePlay seras diffusé en libre partage sur VeryGames ainsi que sur Sourcemod. Vous le vendez, vous changer l'auteur, ... j'en ai rien à taper. Seulement je n'ai pas d’expérience dans le RolePlay, j’entends par la : - Je connais pas les métiers. - Je connais pas les maps. - Je connais pas la gestion du mod. - Je connais rien. Mais j'ai déjà réfléchis à peu près au truc que je voudrais faire. D'abord faire la partie serveur, la mettre en Alpha test - Tout ce que comporte un RolePlay .Puis me pencher vers une partie web complète. - Compte administrateur. - Éditions des joueurs. --> Argent, métier, ... - Liste des métiers ainsi que le capital de ceux-ci. - Rank en fonction de l'argent. Je vais voir si je peux mélanger la partie serveur à la partie web afin de faire une sauvegarde de la base de donnée après X connexions effectuer. Bien-surs j'ai déjà penser au code, à comment l'organiser. Pour le moment je suis fixer sur plusieurs source de plugins ne demandant qu'un seul .smx ainsi que quelques includes avec des natives utiles ! Donc mon post explicatif au dessus en reviens à demander des explications de ce mod, tout ce que comporte ce mod, ... Je tien aussi à dire que à côté j'ai une vie, je suis à l'école et mon options est la plus dur ..., les stages en labo au mois d'Avril, j'ai les amis, les filles (Oui je ne suis pas gay :p), ... -> Je vais pas étaler ma vie xD Donc si jamais j'abandonne le projet, je donnerais le dépars du plugin sur Sourcemod et ici. Mais logiquement ça devrais aller :) Je m'arrangerais aussi pour avoir un peu d'argent de mon côté pour un serveur de test et un site web pour la base de donnée qui devras être propre. -> Ou un petit dons généreux de VeryGames :$ Je serais forcer de refuser la propositions (Si il y en à) des prétages (Ça se dit pas mais on s'en fou) de serveur ou site web. Je tiens aussi à précisé que je travail seul au niveau de la partie serveur, si la partie web est en route, je pense pouvoir avoir besoin d'un coup de main, malgré que ce n'est pas chinois, ma seul frayeur sont la sécurisations des requêtes SQL pour ne pas risquer une injection. Encore une chose, je vous demanderais de pas me flooder par MP pour savoir la date de sortie, j'ai même pas encore taper une ligne de code. Cordialement, Kriax 'Le non codeur' :) Edit : Adril, Phobie et Marechoux, supprimer pas l'edit : - Ce qui est dommage c'est que des personnes non méritante tel que Kenny qui à changer l'auteur du RolePlay de Delachambre, partager la partie web de mon AutoVIP en version test, ... auras accès à ces sources, mais bon, pourquoi priver un nombre incalculable de personne pour une dizaines qui le méritent pas :p Modifié le 7 septembre 2013 par Kriax Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kenny Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Bravo , beau discourt :) Bonne chance Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azik Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Bonjour, Bonne idée, mais le script sera fournis avec son .sp Loin de modifier l'auteur, mais par exemple changer le nom des métiers, voir le code pour une modification simple. Pour le web, je pense que pour le début une partie : Les plus richesLes métiersFaire un don VS 10.000$ Modification des joueurs sur le site, je préfère que ce soit fait plus loin, au pire on n'a le SQL :P Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 @Kenny, O.S.E.F de se que tu diras, j'en prendrais pas compte. @Azik, O.S.E.F de ton troll, tu feras se qu'il te plairas car oui, tu sais que quand je partage quelque chose, c'est jamais sans la source ;) Pourquoi le mot O.S.E.F est censurer >< Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azik Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 j'ai édité. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 La partie dons reste à voir. J'ai deux possibilités pour les requêtes sql, la possibilité numéro1 est d'optimisé les requêtes par leur limitations, à leur connexion et déconnexion par exemple. La deuxième est passer par ce que on appelle des requête threadées. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azik Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Je pense que pour la partie SQL, car on va dire que c'est un projet sur "VG" est de demandé à phobie un coup de main :P Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Invité Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Bonjour, si tu ne veux pas que le topic du projet soit fermé évite toi-même déjà les débordements, je te l'ai dis nous ne sommes pas là pour régler nos comptes. Ensuite pour un serveur de test et un web je peux te fournir ça sans souci (à la condition de ne pas avoir de débordement sur le forum). Sinon très bon projet, chapeau de vouloir créer en libre ces codes qui sont hors de prix et totalement injustifiés. Pour sécuriser tes requêtes rien de bien compliqué, tu as plein de sujet sur le net (requête en prepare etc etc...). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alex30555 Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Simple question sur quelle map ? Sur Riverside_B4 ?, Tu craches sur Sphex et Delachambre mais si c'est pour prendre la map de Kossolax c'est pas mieux ... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 Voici un exemple de la propreté qu'il y auras : Variables dégueulassent : // NEW BOOL new bool:g_bIsMapLoaded = false; new bool:connection = false; new bool:connect = false; new bool:g_booljail[MAXPLAYERS+1] = false; new bool:g_boolreturn[MAXPLAYERS+1] = false; new bool:g_IsTazed[MAXPLAYERS+1] = false; new bool:drogue[MAXPLAYERS+1] = false; new bool:g_boolexta[MAXPLAYERS+1] = false; new bool:g_boollsd[MAXPLAYERS+1] = false; new bool:g_boolcoke[MAXPLAYERS+1] = false; new bool:g_boolhero[MAXPLAYERS+1] = false; new bool:g_crochetageon[MAXPLAYERS+1] = false; new bool:g_booldead[MAXPLAYERS+1] = false; new bool:reboot = false; new bool:g_chirurgie[MAXPLAYERS+1] = false; new bool:grab[MAXPLAYERS+1] = false; new bool:OnKit[MAXPLAYERS+1] = false; new bool:g_InUse[MAXPLAYERS+1]; new bool:HasKillCible[MAXPLAYERS+1] = false; new bool:oncontrat[MAXPLAYERS+1] = false; new bool:g_appart[MAXPLAYERS+1] = false; // NEW FLOAT new Float:g_Count[MAXPLAYERS+1] = 0.0; // NEW STRING new String:g_gamedesc[64]; new String:RealZone[999]; new String:jobname[999]; new String:rankname[999]; // NEW HANDLE new Handle:db_rp; new Handle:db_dela; new Handle:Timers; new Handle:gTimer; new Handle:GiveKit; new Handle:g_jailreturn[MAXPLAYERS+1] = { INVALID_HANDLE, ... }; new Handle:g_jailtimer[MAXPLAYERS+1] = { INVALID_HANDLE, ... }; new Handle:TimerHud[MAXPLAYERS+1] = INVALID_HANDLE; new Handle:TimerAppart[MAXPLAYERS+1] = INVALID_HANDLE; new Handle:g_TazerTimer[MAXPLAYERS+1] = INVALID_HANDLE; new Handle:g_croche[MAXPLAYERS+1] = { INVALID_HANDLE, ... }; new Handle:g_deadtimer[MAXPLAYERS+1] = { INVALID_HANDLE, ... }; new Handle:Select; new Handle:Insert; new Handle:heroo[MAXPLAYERS+1]; new Handle:extasiie[MAXPLAYERS+1]; new Handle:lssd[MAXPLAYERS+1]; new Handle:cokk[MAXPLAYERS+1]; new Handle:countm4time; new Handle:countdeagletime; new Handle:countm3time; new Handle:countusptime; new Handle:Contrat[MAXPLAYERS+1] = INVALID_HANDLE; new Handle:pub; // NEW INDEX new g_modelLaser, g_modelHalo, g_LightingSprite, g_BeamSprite; new g_countheure1 = 0; new g_countheure2 = 0; new g_countminute1 = 0; new g_countminute2 = 0; new M4FBI; new DEAGLEFBI; new M3COMICO; new USPCOMICO; new countm4 = 0; new countdeagle = 0; new countm3 = 0; new countusp = 0; new redColor[4] = {255, 75, 75, 255 }; new greenColor[4] = {75, 255, 75, 255 }; new RebootTimer; new LICENCE; // new PrecipIndex; // NEW VARIABLES new jobid[MAXPLAYERS+1] = 0; new rankid[MAXPLAYERS+1] = 0; new bank[MAXPLAYERS+1] = 0; new kitcrochetage[MAXPLAYERS+1] = 0; new capital[MAXPLAYERS+1] = 0; new g_IsInJail[MAXPLAYERS+1] = 0; new money[MAXPLAYERS+1] = 0; new g_jailtime[MAXPLAYERS+1] = 0; new salaire[MAXPLAYERS+1] = 0; new rib[MAXPLAYERS+1] = 0; new ak47[MAXPLAYERS+1] = 0; new awp[MAXPLAYERS+1] = 0; new m249[MAXPLAYERS+1] = 0; new scout[MAXPLAYERS+1] = 0; new sg550[MAXPLAYERS+1] = 0; new sg552[MAXPLAYERS+1] = 0; new ump[MAXPLAYERS+1] = 0; new tmp[MAXPLAYERS+1] = 0; new mp5[MAXPLAYERS+1] = 0; new deagle[MAXPLAYERS+1] = 0; new usp[MAXPLAYERS+1] = 0; new glock[MAXPLAYERS+1] = 0; new xm1014[MAXPLAYERS+1] = 0; new m3[MAXPLAYERS+1] = 0; new m4a1[MAXPLAYERS+1] = 0; new aug[MAXPLAYERS+1] = 0; new galil[MAXPLAYERS+1] = 0; new mac10[MAXPLAYERS+1] = 0; new famas[MAXPLAYERS+1] = 0; new p90[MAXPLAYERS+1] = 0; new elite[MAXPLAYERS+1] = 0; new ticket10[MAXPLAYERS+1] = 0; new ticket100[MAXPLAYERS+1] = 0; new ticket1000[MAXPLAYERS+1] = 0; new levelcut[MAXPLAYERS+1] = 0; new cartouche[MAXPLAYERS+1] = 0; new permislourd[MAXPLAYERS+1] = 0; new permisleger[MAXPLAYERS+1] = 0; new cb[MAXPLAYERS+1] = 0; new props1[MAXPLAYERS+1] = 0; new props2[MAXPLAYERS+1] = 0; new heroine[MAXPLAYERS+1] = 0; new exta[MAXPLAYERS+1] = 0; new lsd[MAXPLAYERS+1] = 0; new coke[MAXPLAYERS+1] = 0; new pack[MAXPLAYERS+1] = 0; new kevlar[MAXPLAYERS+1] = 0; new g_succesheadshot[MAXPLAYERS+1] = 0; new g_headshot[MAXPLAYERS+1] = 0; new g_succesporte20[MAXPLAYERS+1] = 0; new g_succesporte50[MAXPLAYERS+1] = 0; new g_succesporte100[MAXPLAYERS+1] = 0; new g_porte[MAXPLAYERS+1] = 0; new price[MAXPLAYERS+1] = 0; new responsable[MAXPLAYERS+1] = 0; new jail[MAXPLAYERS+1] = 0; new g_invisible[MAXPLAYERS+1] = 0; new p[MAXPLAYERS+1] = 0; new g_tazer[MAXPLAYERS+1] = 0; new Entiter[MAXPLAYERS+1] = 0; new g_crochetage[MAXPLAYERS+1] = 0; new g_CountDead[MAXPLAYERS+1] = 0; new l[MAXPLAYERS+1] = 0; new z[MAXPLAYERS+1] = 0; new banned[MAXPLAYERS+1] = 0; new banni[MAXPLAYERS+1] = 0; new TransactionWith[MAXPLAYERS+1] = 0; new gObj[MAXPLAYERS+1] = 0; new m[MAXPLAYERS+1] = 0; new g_vol[MAXPLAYERS+1] = 0; new cible[MAXPLAYERS+1] = 0; new acheteur[MAXPLAYERS+1] = 0; new salarychoose[MAXPLAYERS+1] = 0; new maison[MAXPLAYERS+1] = 0; new maisontime[MAXPLAYERS+1] = 0; SQL qui fait mal au yeux : public GetItem(client) { if (IsClientInGame(client)) { new String:SteamId[32]; GetClientAuthString(client, SteamId, sizeof(SteamId)); new bool:ok = false; if (connection) { new String:select[999]; Format(select, sizeof(select),"SELECT kitcrochetage, ak47, awp, m249, scout, sg550, sg552, ump, tmp, mp5, deagle, usp, glock, xm1014, m3, m4a1, aug, galil, mac10, famas, p90, elite, ticket10, ticket100, ticket1000, levelcut, cartouche, props1, props2, heroine, exta, lsd, coke, pack, kevlar FROM `Roleplay_item` WHERE steam_id = '%s'", SteamId); Select = SQL_Query(db_rp, select); if (Select == INVALID_HANDLE) { new String:error[255]; SQL_GetError(db_rp, error, sizeof(error)); PrintToServer("Failed to query (error: %s)", error); ok = false; } else { if (SQL_FetchRow(Select)) { kitcrochetage[client] = SQL_FetchInt(Select, 0); ak47[client] = SQL_FetchInt(Select, 1); awp[client] = SQL_FetchInt(Select, 2); m249[client] = SQL_FetchInt(Select, 3); scout[client] = SQL_FetchInt(Select, 4); sg550[client] = SQL_FetchInt(Select, 5); sg552[client] = SQL_FetchInt(Select, 6); ump[client] = SQL_FetchInt(Select, 7); tmp[client] = SQL_FetchInt(Select, 8); mp5[client] = SQL_FetchInt(Select, 9); deagle[client] = SQL_FetchInt(Select, 10); usp[client] = SQL_FetchInt(Select, 11); glock[client] = SQL_FetchInt(Select, 12); xm1014[client] = SQL_FetchInt(Select, 13); m3[client] = SQL_FetchInt(Select, 14); m4a1[client] = SQL_FetchInt(Select, 15); aug[client] = SQL_FetchInt(Select, 16); galil[client] = SQL_FetchInt(Select, 17); mac10[client] = SQL_FetchInt(Select, 18); famas[client] = SQL_FetchInt(Select, 19); p90[client] = SQL_FetchInt(Select, 20); elite[client] = SQL_FetchInt(Select, 21); ticket10[client] = SQL_FetchInt(Select, 22); ticket100[client] = SQL_FetchInt(Select, 23); ticket1000[client] = SQL_FetchInt(Select, 24); levelcut[client] = SQL_FetchInt(Select, 25); cartouche[client] = SQL_FetchInt(Select, 26); props1[client] = SQL_FetchInt(Select, 27); props2[client] = SQL_FetchInt(Select, 28); heroine[client] = SQL_FetchInt(Select, 29); exta[client] = SQL_FetchInt(Select, 30); lsd[client] = SQL_FetchInt(Select, 31); coke[client] = SQL_FetchInt(Select, 32); pack[client] = SQL_FetchInt(Select, 33); kevlar[client] = SQL_FetchInt(Select, 34); ok = true; CloseHandle(Select); } } if (!ok) { new String:insert[999]; Format(insert, sizeof(insert),"INSERT INTO Roleplay_item VALUES ('%s', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)", SteamId); Insert = SQL_Query(db_rp, insert); CloseHandle(Insert); } } } } Variables demandées : new Handle:g_hDatabase; new Handle:g_hTimerGive[MAXPLAYERS+1] = { INVALID_HANDLE, ... }; new Float:g_fTimer; new g_iPoints[MAXPLAYERS+1] = 0; new g_iGivePoints; Requète SQL prévues : public Native_GetClientRank(Handle:plugin, numParams) { new client = GetNativeCell(1); if(IsClientInGame(client) && IsClientConnected(client)) { decl String:sBuffer[255]; decl String:sSteamID[64]; decl String:sFetchSteamID[64]; new iCount; GetClientAuthString(client, sSteamID, sizeof(sSteamID)); Format(sBuffer, sizeof(sBuffer),"SELECT steamid FROM `rank` ORDER BY kill DESC;"); new Handle:hQuery = SQL_Query(g_hDatabase, sBuffer); if(hQuery) { SQL_Rewind(hQuery); while(SQL_FetchRow(hQuery)) { iCount++; SQL_FetchString(hQuery, 0, sFetchSteamID, sizeof(sFetchSteamID)); if(StrEqual(sSteamID, sFetchSteamID)) { return iCount; } } } } return 0; } -> Les deux premiers code son d'un autre RolePlay rendu public :) -> Les deux derniers code sont issus de deux plugins à moi. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mac Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Hello, Boone initiative Kriax. Par contre, attention, pas de trolls, d'insultes... Sinon seul Kriax pourra poster (essayer svp de donner une bonne image des joueurs CSS...). Merci ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 @Adril Oui désolé, je me suis emporter, mais venir me chercher directement faut pas abuser. Merci pour le compliment et ta propositions. Pour le web, j'ai créé un AutoVIP et un auto achat de crédits store, mais sans inscriptions. La zone membres seras nouveau pour moi ^^ @Alex, tu aurais vue je ne connais rien du RolePlay, je savais même pas que Kossolax avais créé une map. Tout ce que je sais sur le RolePlay c'est que le serveur de Kossolax est dans le Top10 des serveurs mondiaux. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Invité Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Kriax plutôt que de partir from scratch et dev entièrement tout au risque de laisser des failles, tu peux passer par un framework php type Atomik (super lite,MVC). C'est assez simple et tu gagnes énormément de temps au final. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 (modifié) Merci Mac :p J'attends du feedback niveau idées :) @Adril, merci du conseil et au passage, j'adore le motif de modification xD Modifié le 5 septembre 2013 par Kriax On a dit non ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Phobie Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Bonsoir, Très bonne initiative de vouloir casser la routine. :) Pour ce qui est de décrire le mod, malgrés que je ne le connaisse pas plus que ça. D'après moi un RP n'a pas de règles. C'est à toi de créer les métiers qui te sembles jouables, réalisables et amusants. :p Ensuite, le seul but est de devenir le plus riche. Pour ce qui est du site, je ne vois pas pourquoi tu souhaiterais créer un espace membre ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 Je me suis mal exprimer. Pas un espace membre, mais un espace de connexion pour un compte administrateur qui pourrais géré un maximum le RolePlay par un petit site :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azik Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 je suis disponible, si besoin d'un graphiste :P Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Phobie Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Je suis disponible pour la partie HTML, PHP et les requêtes SQL. :) Par contre, ma formation ne me donne pas les qualités nécessaire pour fournir un travail convenable en CSS. Sauf si le chef de projet décide d'utiliser un CSS existant (BootStrap, 99Lime, etc...). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 Bah au pire on part sur un Kit Graphique ? Comme l'auto vip de Marechoux :) Je m'occupe de la partie serveur ce week-end, je vais commencer le sql :) @Azik, merci :p Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Invité Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Mais non pas de kit ! Un petit coup de BootStrap est c'est niquel, tu en choisis un qui est en demo technique avec et tu as une bonne base déjà. ;-) Bootstrap Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 Je me renseigne Bootstrap dans ce cas :) Edit : Pas mal :o :o :o Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Phobie Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 (modifié) Voici ceux que j'ai utilisés récemment dans mes projets d'études : Bootstrap Flat UI KickStart Kube Personnellement je les trouve tous très esthétique et pratique à travailler. Rien qu'un tour rapide sur le site et on a déjà un aperçu du rendu possible. Modifié le 5 septembre 2013 par Phobie Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 Le mieux reste KickStart ;) @neocriph Je sais qu'il y auras 5000 RP mais bon, le RolePlay est un mod comme un autre, tout le monde à le droit d'y avoir accès gratuitement, je voie pas pourquoi des personnes devrais gagner de l'argent en vendant de tel chose ... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
neocriph Posté(e) le 5 septembre 2013 Share Posté(e) le 5 septembre 2013 Ah mais tkt kriax , je disais sa comme sa y'a pas de soucis mais bravo a toi pour ton projet je respect t'inquiete :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 5 septembre 2013 Auteur Share Posté(e) le 5 septembre 2013 Je sais, je disais ça à titre informatif :p Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.