Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
News ticker
  • Bienvenue sur le nouveau forum VeryGames
  • Welcome to the new VeryGames forum
  • VeryNews

    [Projet] RolePlay en libre partage - En dev


    Recommended Posts

    Phobie, tu pourrais faire pareil dans l'installation du panel pour le salaire ?

     

    -=-=-=-=-=-=-=-=-=-=-=-=-
    Liste des JobID et RankID
    -=-=-=-=-=-=-=-=-=-=-=-=-
    Sans Emplois : ID 0
    Gouvernement : ID 1
       1 : Gardien
       2 : Policier
       3 : FBI
       4 : CIA
       5 : GTI
       6 : Chef Police
    
    Hopital : ID 2
       1: Apprenti infirmier
       2: Infirmier
       3: Docteur
       4: Chirurgien
       5: Sous Chef Hopital
       6: Chef hôpital
    
    Armurie : ID 3
       1:Apprenti armurier
       2:armurier
       3:sous chef armurier
       4:chef armurie
    
    Tueur à gage : ID 4
       1: Apprenti tueur
       2: Tueur
       3: Tueur expérimenté
       4: Tueur élite
       5: Patron tueur
    
    Mafia : ID 5
       1: Apprenti Mafieux
       2: Mafieux
       3: Parrain
       4 : Sous Chef Cosa
       5: Don
    
    Justice : ID 6
       1: avocat
       2: apprenti juge
       3: juge
       4: président de la justice
    
    Dealer : ID 7
       1: Apprenti dealer
       2: Dealer
       3: Sous Chef Dealer
       4: Chef dealer
    
    Banque : ID 8
       1: Banquier
       2: Chef banque
    
    Triade : ID 9
       1: Apprenti gangster
       2: Gangster
       3: Bras droit triade
       4: Co-Chef triade
       5: Chef triade
    
    Loto : ID 10
       1: Apprenti vendeur ticket
       2: Vendeur ticket
       3: Sous Chef loto
       4: Chef loto
    
    Bulletclub : ID 11
       1: Apprenti Moniteur
       2: Moniteur de tir
       3: Chef moniteur 
    
    Epicerie : ID 12
       1: Apprenti Epicier
       2: Epicier
       4: Sous Chef Epicier
       3: Chef Epicier
    
    Coach : ID 13
       1: Apprenti entraineur
       2: Entraineur
       3: Sous Chef entraineur
       4: Chef entraineur
    
    Detective privé : ID 14
       1: Apprenti detective
       2: Detective
       3: Chef detective
    
    Mcdo : ID 15
       1: Apprenti V.mcdo
       2: V.mcdo
       3: Chef mcdo
    
    Techniciens : ID 16
       1: Apprenti technicien
       2: Technicien
       3: Chef technicien
    

     

    SQL :

    Table : roleplay_salaires
    Colonne #1 : jobid
    Colonne #2 : rankid
    Colonne #3 : salaire
    

     

    Merci :)

    Link to post
    Share on other sites
    • Replies 415
    • Created
    • Last Reply

    Top Posters In This Topic

    Top Posters In This Topic

    Posted Images

    Donc seul les co-chef et chef peuvent les changer.

    Sa m'arrange fortement, la restriction de la commande se feras par simple :

    if(RP_IsClientChef(client))
    

     

    Bah j'ai pas encore codé la commande, je prépare le terrains d'abord :p

    Link to post
    Share on other sites

    Le give du salaire est fait.

    J'en ai galéré, j'ai pas arrêter d'inverser des trucs xD

     

    Merci Marechoux de m'avoir même si s'à avais l'air confu pour toi aussi xDD.

     

    Vous vouliez un code, le voilà :

     

    GiveSalary()
    {
       for (new i = 1; i <= MaxClients; i++)
       {
           RP_SetJobCapital(RP_GetJobCapital(RP_GetClientJobID(i)) - RP_GetSalary(RP_GetClientJobID(i), RP_GetClientRankID(i)));
           RP_SetClientCash(i, RP_GetSalary(RP_GetClientJobID(i), RP_GetClientRankID(i)));
       }
    }
    

     

    Travailler comme ça parais sympa mais on s'y perd facilement :p

     

    EDIT : Voici la correction, je vous l'avais dit on s'y perd ^^

     

    GiveSalary()
    {
       for (new i = 1; i <= MaxClients; i++)
       {
           RP_SetJobCapital(RP_GetClientJobID(i), RP_GetJobCapital(RP_GetClientJobID(i)) - RP_GetSalary(RP_GetClientJobID(i), RP_GetClientRankID(i)));
           RP_SetClientCash(i, RP_GetSalary(RP_GetClientJobID(i), RP_GetClientRankID(i)));
       }
    }
    

    Link to post
    Share on other sites

    Pour le /paye je vais procédé de la manière suivante :

    - Un menu vas s'ouvrir avec les jobs en fonction de votre entreprise.

    - Une fois le jobs demandée, le menu vas se couper et vous devrez entrer le montant du nouveau salaire dans le chat.

    - Si vous changer d'avis pour le salaire, il vous suffiras de taper une commande du genre /denis ou /annule ou /sequevousavezenvie pour annuler le changement du salaire.

     

    KriKri.

    Link to post
    Share on other sites
    Phobie, tu pourrais faire pareil dans l'installation du panel pour le salaire ?

    Bonsoir,

     

    Je suis désolé en ce moment je suis légèrement chargé (entretiens, projet tuteuré, etc...), ce qui fait que je n'ai pas avancé sur le site. Donc il me reste toujours la page des métiers et celle d'installation.

    Pour la page d'installation du coup, la personne installant le RP devra préciser un salaire pour chaque rankid, ainsi qu'un capital pour chaque jobid, est-ce exact ?

    Link to post
    Share on other sites

    Soucis de propreté dans le menu des salaires :

     

    public Menu_Salaire(client, jobid)
    {
       new Handle:hMenu = CreateMenu(HandlerMenu_Salaire);
       SetMenuTitle(hMenu, ".:: Changement de salaire ::.");
    
       if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "1-1", "Gardien");
           AddMenuItem(hMenu, "1-2", "Policier");
           AddMenuItem(hMenu, "1-3", "Agent du FBI");
           AddMenuItem(hMenu, "1-4", "Agent de la CIA");
           AddMenuItem(hMenu, "1-5", "Agent du GTI");
           AddMenuItem(hMenu, "1-6", "Chef de la Police");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "2-1", "Apprenti Infirmier");
           AddMenuItem(hMenu, "2-2", "Infirmier");
           AddMenuItem(hMenu, "2-3", "Docteur");
           AddMenuItem(hMenu, "2-4", "Chirurgien");
           AddMenuItem(hMenu, "2-5", "Sous chef de l'hôpital");
           AddMenuItem(hMenu, "2-6", "Chef de l'hôpital");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "3-1", "Apprenti armurier");
           AddMenuItem(hMenu, "3-2", "Armurier");
           AddMenuItem(hMenu, "3-3", "Sous chef de l'armurie");
           AddMenuItem(hMenu, "3-4", "Chef de l'armurie");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "4-1", "Apprenti tueur");
           AddMenuItem(hMenu, "4-2", "Tueur");
           AddMenuItem(hMenu, "4-3", "Tueur expérimenté");
           AddMenuItem(hMenu, "4-4", "Tueur d'élite");
           AddMenuItem(hMenu, "4-5", "Patron des tueurs");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "5-1", "Apprenti mafieux");
           AddMenuItem(hMenu, "5-2", "Mafieux");
           AddMenuItem(hMenu, "5-3", "Parrain");
           AddMenuItem(hMenu, "5-4", "Sous chef Cosa");
           AddMenuItem(hMenu, "5-5", "Don");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "6-1", "Apprenti avocat");
           AddMenuItem(hMenu, "6-2", "Avocat");
           AddMenuItem(hMenu, "6-3", "Apprenti juge");
           AddMenuItem(hMenu, "6-4", "Juge");
           AddMenuItem(hMenu, "6-5", "Président de la justice");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "7-1", "Apprenti dealer");
           AddMenuItem(hMenu, "7-2", "Dealer");
           AddMenuItem(hMenu, "7-3", "Sous-Chef des dealer");
           AddMenuItem(hMenu, "7-4", "Chef des dealer");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "8-1", "Banquier");
           AddMenuItem(hMenu, "8-2", "Chef de la banque");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "9-1", "Apprenti gangster");
           AddMenuItem(hMenu, "9-2", "Gangster");
           AddMenuItem(hMenu, "9-4", "Bras droit de la triade");
           AddMenuItem(hMenu, "9-5", "Co-chef de la triade");
           AddMenuItem(hMenu, "9-6", "Chef de la triade");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "10-1", "Apprenti vendeur de tickets");
           AddMenuItem(hMenu, "10-2", "Vendeur de tickets");
           AddMenuItem(hMenu, "10-3", "Sous chef du loto");
           AddMenuItem(hMenu, "10-4", "Chef du loto");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "11-1", "Apprenti moniteur");
           AddMenuItem(hMenu, "11-2", "Moniteur");
           AddMenuItem(hMenu, "11-3", "Chef des moniteurs");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "12-1", "Apprenti épicier");
           AddMenuItem(hMenu, "12-2", "Épicier");
           AddMenuItem(hMenu, "12-3", "Sous Chef des épiciers");
           AddMenuItem(hMenu, "12-4", "Chef des épiciers");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "13-1", "Apprenti entraineur");
           AddMenuItem(hMenu, "13-2", "Entraineur");
           AddMenuItem(hMenu, "13-3", "Sous Chef des entraineurs");
           AddMenuItem(hMenu, "13-4", "Chef des entraineurs");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "14-1", "Apprenti détective");
           AddMenuItem(hMenu, "14-2", "Détective");
           AddMenuItem(hMenu, "14-3", "Chef des détectives");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "15-1", "Apprenti Vendeur McDo");
           AddMenuItem(hMenu, "15-2", "Vendeur McDo");
           AddMenuItem(hMenu, "15-3", "Chef du McDo");
       }
       else if(RP_GetClientJobID(client) == jobid)
       {
           AddMenuItem(hMenu, "16-1", "Apprenti technicien");
           AddMenuItem(hMenu, "16-2", "Technicien");
           AddMenuItem(hMenu, "16-3", "Chef des techniciens");
       }
    
       SetMenuExitButton(hMenu, true);
       DisplayMenu(hMenu, client, MENU_TIME_FOREVER);
    }
    

     

    Je cherche après une solution, si vous en voyez une dites le moi x)

     

    Le salaire arrive bien à 00h00 :)

    -> Encore une fois merci Marechoux pour l'horloge x)

     

    KriKri.

    Link to post
    Share on other sites

    Solution trouvé.

    Même idée que Marechoux mais plus efficace la sienne :)

     

    EDIT : Le /paye est opérationnelle, j'ai oublie de prendre en compte le faite que on reçois pas de salaire si le capital le permet pas T_T

    Edited by Kriax
    Link to post
    Share on other sites

    Bonjour à tous.

    Si tu as besoin d'aide mon cher Kriax, j'ai déjà coder mon propre roleplay, réparer celle a delachambre et refait en entier la version décompiler de SpheX 1.2.8 et est fonctionnel maintenant.

     

    Si tu veut des ajouts, comme les voitures ou autre contact moi en MP et je t'aiderai, sa fera plaisir.

    À la prochaine!

    Link to post
    Share on other sites

    Je sais pas où trouver la source de ton RP, donc je sais pas où tu est rendu mais je vais te donner certain code qui pourrait t'être utile.

    FlashBall (Tazer avec silencieux) fait par SpheX corriger par moi:

    #include <sourcemod>
    #include <smlib>
    
    public OnClientPutInServer(client)
    {
       SDKHook(client, SDKHookType:2, OnTakeDamage);
    }
    
    public Action:OnTakeDamage(victim, &attacker, &inflictor, &Float:damage, &damagetype)
    {
       decl String:sWeapon[32];
       decl String:sInflictor[32];
       if (JobID[attacker] == 1)
       {
           if (GetEntProp(Client_GetActiveWeapon(attacker), Prop_Send, "m_bSilencerOn", 4, 0) == 1)
           {
               if (JobID[victim] != 1)
               {
                   decl Float:Pos[3];
                   GetClientEyeAngles(victim, Pos);
                   Pos[1] = 30 + Pos[1];
                   Pos[2] = 10 + Pos[2];
                   SetEntPropVector(victim, Prop_Send, "m_vecPunchAngle", Pos, 0);
                   Client_ScreenFade(victim, 500, 1, 500, 250, 250, 250, 200, true);
                   SetSpeed(victim, 0, 5.0);
                   damage = 0.0;
                   return Plugin_Changed;
               }
               PrintToChat(attacker, "[RP] Vous ne pouvez pas utiliser le FlashBall sur une police.");
           }
       }
    }
    
    stock SetSpeed(client, Float:speed, Float:duration)
    {
       if (IsClientInGame(client))
       {
           SetEntPropFloat(client, Prop_Data, "m_flLaggedMovementValue", speed, 0);
           if (duration > 0)
           {
               CreateTimer(duration, ResetSpeed, client, 0);
           }
       }
       return 0;
    }
    
    public Action:ResetSpeed(Handle:timer, any:param1)
    {
       if (IsClientInGame(param1))
       {
           SetEntPropFloat(param1, Prop_Data, "m_flLaggedMovementValue", 1.0, 0);
       }
       return Plugin_Continue;
    }

     

    AFK fait par moi:

    #include <sourcemod>
    #include <sdkhooks>
    
    new bool:afk[MAXPLAYERS+1] = false;
    new Handle:timerAfk[MAXPLAYERS+1] = INVALID_HANDLE;
    new Handle:timerCheckAFK[MAXPLAYERS+1] = INVALID_HANDLE;
    new Float:oldPosition[3];
    new Float:newPosition[3];
    
    public OnPluginStart()
    {
       RegConsoleCmd("sm_afk", Command_afk);
    }
    
    public Action:Command_afk(client, args)
    {
       if(afk[client])
       {
           afk[client] = false;
       }
       else
       {
           afk[client] = true;
       }
    }
    
    public OnClientPutInServer(client)
    {
       GetEntPropVector(client, Prop_Send, "m_vecOrigin", oldPosition);
       timerAfk[client] = CreateTimer(60.0, CheckAFK, client, TIMER_REPEAT);
       timerCheckAFK[client] = CreateTimer(0.1, CheckIfAfk, client, TIMER_REPEAT);
    }
    
    public Action:CheckAFK(Handle:timer, any:client)
    {
       if(IsAFK(client))
       {
           afk[client] = true;
       }
       else
       {
           afk[client] = false;
       }
    }
    
    public bool:IsAFK(client)
    {
       GetEntPropVector(client, Prop_Send, "m_vecOrigin", newPosition);
       if(newPosition[0] == oldPosition[0])
       {
           if(newPosition[1] == oldPosition[1])
           {
               if(newPosition[2] == oldPosition[2])
               {
                   return true;
               }
               else
               {
                   return false;
               }
           }
           else
           {
               return false
           }
       }
       else
       {
           return false;
       }
       oldPosition[0] = newPosition[0];
       oldPosition[1] = newPosition[1];
       oldPosition[2] = newPosition[2];
    }

     

    Pour le AFK, utilise le afk[client] pour ton CS_SetClientClanTag ou ton SetClientName (ou autre fonction :P)

     

    Je rajouterai d'autres commandes si je pense à d'autre chose ou si j'obtiens des suggestions

    A plus!

    Link to post
    Share on other sites

    Salut le petit nouveau.

    La source du RP est trouver simplement dans ma petite tête et celle de Marechoux ;)

     

    Des petits bous de code de ce genre j'accepre, ça me fait du taff en moins.

     

    La partie voiture est pas dans le projer du rp pour le moment mais j'apprécie ta proposition ;)

     

    KriKri.

    Link to post
    Share on other sites

    J'ai une propositions à faire pour ta source Kriax mais je ne sais pas si sa pourrais être bien.

     

    Exemple :

     

    Tous les jours ou toutes les semaines la map change automatiquement par le serveur.

     

    Exemple :

     

    Si le serveur tourne sur la map : oviscity_r_03 et que le jour suivant ou la semaine suivante le serveur tourne sur la map : rp_riverside_b4

    Ceci est un exemple.

     

    J'espère que tu m'auras compris :)

     

    Résumé :

     

    Nous installons plusieurs cartes(maps) sur notre serveur cs:s et toutes les semaines la carte(map) change automatiquement par le serveur ou par la config Roleplay.

    Je pense que sa pourrais être bien pour son serveur et si on ne veut pas cette option nous sommes pas obligé de la mettre sur son serveur.

     

    PS : Sphex à dit que vous allez jamais arriver à terminer le Roleplay parce que y a des scripts (plugins) vraiment galère à faire.

     

    Amicalement,

    Link to post
    Share on other sites

    On vas faire simple :

    j'ai hâte de voir sa tête à la sortie de mon RP :)

     

    Pour ton idée je la trouve comme qui dirais, totalement étrange car un RP se joue sur une map et tu switch pas de map chaque semaine ...

     

    Désolé pour le message que j'ai donner à khaox mais j'ai des gros doigts et un petit clavier sur mon téléphone ^^

     

    Pour le AFK, utilise le afk[client] pour ton CS_SetClientClanTag ou ton SetClientName (ou autre fonction :P)

     

    Mmh on dirais que tu me prends pour un personne qui a du mal à réfléchir xD

     

    KriKri.

    Edited by Adril
    ...
    Link to post
    Share on other sites

    =>

     

    [color=#0000BB][font=monospace]timerCheckAFK[/font][/color][color=#007700][font=monospace][[/font][/color][color=#0000BB][font=monospace]client[/font][/color][color=#007700][font=monospace]] = [/font][/color][color=#0000BB][font=monospace]CreateTimer[/font][/color][color=#007700][font=monospace]([/font][/color][color=#0000BB][font=monospace]0.1[/font][/color][color=#007700][font=monospace], [/font][/color][color=#0000BB][font=monospace]CheckIfAfk[/font][/color][color=#007700][font=monospace], [/font][/color][color=#0000BB][font=monospace]client[/font][/color][color=#007700][font=monospace], [/font][/color][color=#0000BB][font=monospace]TIMER_REPEAT[/font][/color][color=#007700][font=monospace]);[/font][/color]
    

     

    Salut khaox

     

    Pourquoi tu laisse un timer qui se refresh toutes les 0.1 sec, Alors qu'il ne sert à rien :)

     

    => Plus ton code est pas du tout opti, Je doute qu'il marche

     

    Fais attention :D

    Edited by alex30555
    Link to post
    Share on other sites

    Tien krikri

     

    Comme le code AFK de khaox marche pas ^^

     

    Donc jte file le mien

     

    #include <sourcemod> 
    #include <sdktools>
    
    
    #define AFK_TIME 15.0
    
    
    new bool:AFK[MAXPLAYERS + 1];
    new Float:AFK_TIMER[MAXPLAYERS + 1];
    
    
    public Action:OnPlayerRunCmd(x, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
    {
       if (!IsClientInGame(x))
           return;
    
    if (!IsPlayerAlive(x))
           return;
    
    if (vel[0] || vel[1] || vel[2])
    {
    	if (AFK[x])
    	{
    		AFK[x] = false;
    		PrintToChatAll("%N est plus AFK !", x);		
    	}
    	AFK_TIMER[x] = GetGameTime();
    }
    else if (!AFK[x] && GetGameTime() - AFK_TIMER[x] >= AFK_TIME)
    {
    	PrintToChatAll("%N est AFK !", x);
    	AFK[x] = true;
    }
    }
    

     

    + Pas de timers donc code opti

     

    Bsx.

    Link to post
    Share on other sites

    Le afk à été mis dans le code, le /demission à été créé ainsi que le /engager.

     

    Je vais tout tester de-suite :D

     

    EDIT : Fonctionne sauf que maintenant la BDD crack et n'enregistre plus la personne a la déconnexion oO

     

    L 09/26/2013 - 23:27:49: [roleplay.smx] Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `steam_id` = 'STEAM_0:0:29334838'' at line 1
    

     

    EDIT 2 : Soucis règler, ayant supprimer le champ "chef" j'avais oublier d'enlever le virgule dans la requête xDD seulement le capital s'ajoute tout seul je sais pas pourquoi je voie ça demain xD

    Edited by Kriax
    Link to post
    Share on other sites

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Reply to this topic...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


    ×
    ×
    • Create New...