Skip to content
chopo156Public

About

a library in C# for fivem.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

38 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xCore is simple FiveM library made for RolePLay servers. but... can be used anywhere i guess ?

####TO DO

  • Inventory system
  • Notifications
  • Property system
  • Sound system
  • Group system
  • Job system
  • Money system

SoundSystem functions

Class name: PlayerSound

1. Functions (client side)

  • PLayUrl(name, url, volume) Will play sound from url

  • PLayUrl(name, url, volume, Vector3 vec) Will play sound from url at x,y,z location

  • PLay(name, url, volume) Will play sound that is defined in html/scripts/config.js

  • PLay(name, url, volume, Vector3 vec) Will play sound that is defined in html/scripts/config.js at x,y,z location

  • Position(name, Vector3 vec) Will update location of sound

  • Stop(name) Will stop completly sound

  • Pause(name) Will pause sound

  • Resume(name) Will resume sound


Example client

int npc_seller = 0;
[Command("music")]
void playMusic()
{
     Vector3 pos = Game.Player.Character.Position;
     PlayerSound.Play("clap", 0.5f, pos.X, pos.Y, pos.Z);
     
     Vector3 seller = Game.Player.Character.Position;
     uint hash = (uint)API.GetHashKey("s_m_m_hairdress_01");
     while (!API.HasModelLoaded(hash))
     {
          API.RequestModel(hash);
          await Delay(200);
     }
     npc_seller = API.CreatePed(2, hash, seller.X, seller.Y, seller.Z, 0f, false, true);     
}

[Tick]
async Task followSound()
{
     await Delay(33);
     Vector3 pos = API.GetEntityCoords(npc_seller, true);
     PlayerSound.Position("clap", pos.X, pos.Y, pos.Z);
}

[Command("custommusic")]
void customMusic()
{
     Vector3 pos = Game.Player.Character.Position;
     PlayerSound.PLayUrl("custom", "http://relisoft.cz/assets/gta.mp3", 0.5f);
}

[Command("stopsound")]
void stopSound()
{
     PlayerSound.Stop("custom");
}

GroupSystem functions and events

Class name: PlayerGroup

1. Functions (client side)

Class name: PlayerGroup

  • isAtGroup(string group) return true/false

  • getPlayerGroups() return List()


2. Functions (server side)

Class name: PlayerGroup

  • add(string group) Will add a new group to player.

  • remove(string group) Will remove group from player.

  • isAtGroup(string group) Will return true/false

  • exists(string group) Will return true/false

  • PlayerGroupHolder.getPlayerGroup(int source OR Player player) Will return instance for player group class.


3. Events (server)

  • xCore:Server:addPlayerGroup: (Will add group to player) Parameters: int source,string group

  • xCore:Server:removePlayerGroup: (Will remove group from player) Parameters: int source,string group

4. Events (client)

  • xCore:Client:GroupAdded: (Will call whenever player receive new group) Parameters: string group

  • xCore:Client:GroupRemove: (Will call whenever group is removed from player) Parameters: string group

Example client

[Command("heal")]
void healCommand()
{
    PlayerGroup gp = new PlayerGroup();
    if(gp.isAtGroup("vip"))
    {
        API.SetEntityHealth(API.PlayerPedId(),250);
        Screen.ShowNotification("Yeeey... you healed your self... :D");
    }
}

Example server

public void giveMoney([FromSource] Player player,Player target,string type,int money)
{
   PlayerGroup pg = PlayerGroupHolder.getPlayerGroup(player);
   if(pg.isAtGroup("admin"))
   {
       PlayerMoney pMoney = PlayerMoneyHolder.getPlayerMoney(player);
       if(type == "dirtymoney") pMoney.addDirtyMoney(money);
       if(type == "bankmoney") pMoney.addBankMoney(money);
       if(type == "money") pMoney.addMoney(money);       
   }
}

Teleport functions and events

1. Functions (client side)

Class name: teleport

  • teleportPlayer(int entity,Vector3 vec,float head = -999)

2. Events (client side)

  • xCore:Client:teleport: (Will teleport player) Parameters: int entity,Vector3 vec,float head = -999

Example client

[Command("spawn")]
void healCommand(string[] args)
{
    PlayerGroup gp = new PlayerGroup();
    if(gp.isAtGroup("admin"))
    {
        teleport.teleportPlayer(API.PlayerPedId(),new Vector3(250,125,1024));
        Screen.ShowNotification("Welcome to spawn i guess ?");
    }
}

MoneySystem functions and events

Class name: PlayerMoney

1. Functions (client side)

Class name: PlayerMoney

  • getMoney() returns how much money player has in pocket
  • getBankMoney() returns how much money player has in bank
  • getDirtyMoney() returns how much dirty money player has in pocket

2. Functions (server side)

Class name: PlayerMoney

  • PlayerMoneyHolder.getPlayerMoney(int source) Will return player instance for class money.

  • setMoney(int money) will set money

  • setBankMoney(int money)
    will set money

  • setDirtyMoney(int money)
    will set money

  • addDirtyMoney(int money) will add money

  • addBankMoney(int money)
    will add money

  • addMoney(int money)
    will add money

  • getMoney()
    returns how much money player has in pocket

  • getBankMoney() returns how much money player has in bank

  • getDirtyMoney()
    returns how much dirty money player has in pocket


3. Events (server)

  • xCore:Server:getPlayerMoney: (Will return players money) Parameters: int id,string type, return type in int (if something is wrong it will return int.MinValue)

  • xCore:Server:setMoney: (Will set player money) Parameters: int id,string type,int money

  • xCore:Server:addMoney: (Will add balance to player account) Parameters: int id,string type,int money

4. Events (client side)

  • xCore:Client:MoneyUpdated: (Will call whenever player earn cash) Parameters: string(typeMoney) , int(MoneyCount)

Example client

[Command("buycar")]
void healCommand(string[] args)
{
    PlayerMoney pMoney = new PlayerMoney();
    if(pMoney.getMoney() >= 600)
    {
        string car = "car_name";
        TriggerServerEvent("Bazar:BuyVehicle",car);
        Screen.ShowNotification($"You bought: {car} cg, you had enough money...");
    }
    else  Screen.ShowNotification("Looool poor boy.. :D");
}

Example server

[EventHandler("Bazar:BuyVehicle")]
void playerCar([FromSource] Player player,string car)
{
    var licenseIdentifier = player.Identifiers["steam"];

    PlayerMoney pMoney = PlayerMoneyHolder.getPlayerMoney(player);
    pMoney.addMoney(-600);
    MYSQL.execute($"INSERT INTO `vehicles` (`steamid`, `car`) VALUES ('{licenseIdentifier}','{car}');");
}

PlayerJob functions and events

1. Functions (client side)

Class name: PlayerJob

  • getJobGrade() returns player Job Grade
  • getJobName() returns player Job Name

2. Functions (server side)

Class name: PlayerJob

  • PlayerJobHolder.getPlayerJob(int source) Will return player instance for class job.

  • setPlayerJob(int id,string job,string grade)

  • getJobGrade(int id) returns player Job Grade

  • getJobName(int id) returns player Job Name


3. Events (server)

  • xCore:Server:setJob: (Will set player job) Parameters: int id,string job,string grade

4. Events (client side)

  • xCore:client:setJob: (Will call whenever player jobs got updated) Parameters: string job,string grade

  • xCore:client:jobLoaded: (Will call when player spawn in game) Parameters: string job,string grade

Example client

[Command("repair")]
void healCommand(string[] args)
{
    PlayerJob pJob = new PlayerJob();
    if(pJob.getJobName("mechanic"))
    {
        API.SetPlayerVehicleDamageModifier(API.PlayerId(), 1000);        
    }
}

Example server

[EventHandler("BossMenu:setJob:Mechanic")]
void playerCar(Player target,string job,int grade)
{
    PlayerJob pJob = PlayerJobHolder.getPlayerJob(target);
    MYSQL.FetchAll($"SELECT * FROM jobgrades WHERE name = '{job}' AND grade ='{grade}'", null, (List<dynamic> list) =>
    {
        if(list != null)
        {
            pJob.setPlayerJob(list[0].name, list[0].grade);
        }
    });
}

Other events

KeyEvent

Simple event that will call whenever player push any key on keyboard.

  • xCore:client:keyEvent

Example

[EventHandler("xCore:client:keyEvent")]
void keyEvent(int KeyCode)
{
    Debug.WriteLine($"Dang, you pushed key: {KeyCode}");
}

About

a library in C# for fivem.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages