Recent posts

#11
Quote from: gamingpro on Jan 28, 2024, 07:54 AMHi bro, Can you tell me how you port forward please ?, because i try it but not success please tell me, Are port forward show server in masterlist or not ?

Hey, just add announce plugin in server.cfg
And try to port forward the port number you have in server.cfg by your router.
#12
Script Showroom / Re: Ban & echo,system
Last post by Mohamed Boubekri - Mar 13, 2024, 01:40 PM
You need to create database, store player informations into it, for example: name, id, ip, uid, ban (true, false)... And simply you can select any row from database by one of the informations and change 'ban' with values true or false.
There are many examples in the forum, just search you will be fine.
#13
Script Showroom / Ban & echo,system
Last post by Abbas_905 - Mar 13, 2024, 08:59 AM
guys how i can do ban players if players in game or no exmaple: player did not playing server but how can i do ban to him


How to add private acmds into discord-server-echo
#14
Script Showroom / Re: Dipeos command
Last post by Abbas_905 - Mar 13, 2024, 03:56 AM
else if(cmd == "lastpos" || cmd == "diepos")
 {
 if(!text) MessagePlayer("Syntax: /"+cmd+" <on/off>.",player);
 else {
 if(text == "on")
 {
 if(status[player.ID].Lastpos == true) MessagePlayer("[#FF0000]Your lastpos is already on.",player);
 else {
 status[player.ID].Lastpos = true;
 MessagePlayer("[#00FF00]You have turned on your lastpos/diepos.",player);
 }
 }
 if(text == "off")
 {
  if(status[player.ID].Lastpos == false) MessagePlayer("[#FF0000]Your lastpos is already off.",player);
 else {
  status[player.ID].Lastpos = false;
   MessagePlayer("[#00FF00]You have turned off your lastpos/diepos.",player);
 }
 }

 }
 }




This is right or no? if have errors so fix it and repost it,
#15
Script Showroom / Re: Dipeos command
Last post by Abbas_905 - Mar 13, 2024, 03:50 AM
thanks for it,
#16
Script Showroom / Re: BindKey Process System
Last post by PSL - Mar 11, 2024, 01:02 PM
If you don't want I and J to trigger loop execution, you can do so.
function onKeyDown(player,key) //Now only KL can trigger the loop execution
{
    if(key==Key_I)
{
Message("Key: I");
}
    if(key==Key_J)
{
Message("Key: J");
}
    if(key==Key_K)
{
Message("Key: K");
AddKeyTable(player.ID,key);
}
    if(key==Key_L)
{
Message("Key: L");
AddKeyTable(player.ID,key);
}
}
#17
Script Showroom / BindKey Process System
Last post by PSL - Mar 11, 2024, 12:57 PM
When the player consistently presses a bound key, the script continues to execute the key's code. How is this done, see the code below.
The code has been tested and is accurate, although you can customize the code to suit your server.
class PlayerClass //Create two items here, one to store buttons pressed by the player and the other to keep repeating the timer
{
    keytimer=null;
    keytable=null;
}
function onScriptLoad()
{
    state<-array(100,null);
    //Here are the keys on the test keyboard
    Key_I<-BindKey(true,0x49,0,0);
    Key_J<-BindKey(true,0x4A,0,0);
    Key_K<-BindKey(true,0x4B,0,0);
    Key_L<-BindKey(true,0x4C,0,0);
}
function onPlayerJoin(player)
{
    state[player.ID]=PlayerClass(player.Name);
}
function onPlayerPart(player,reason)
{
if(state[player.ID].keytimer!=null) //When the player exits, delete these two things
{
state[player.ID].keytimer.Delete();
state[player.ID].keytimer=null;
state[player.ID].keytable.clear();
state[player.ID].keytable=null;
}
    state[player.ID]=null;
}
function onKeyDown(player,key)
{
    //When you press the key, the corresponding text will be displayed
    if(key==Key_I) Message("Key: I");
    if(key==Key_J) Message("Key: J");
    if(key==Key_K) Message("Key: K");
    if(key==Key_L) Message("Key: L");
    AddKeyTable(player.ID,key); //Saves the key that the player presses
}
function onKeyUp(player,key)
{
    RemoveKeyTable(player.ID,key); //Delete the key saved by the player
}
function AddKeyTable(i,key)
{
    local plr=FindPlayer(i);
    if(plr)
    {
        if(state[plr.ID].keytable==null) state[plr.ID].keytable={}; //The first time the key is pressed, the table is created

        if(state[plr.ID].keytable.rawin(key))
        {
        }
        else state[plr.ID].keytable.rawset(key,key); //If the key is not in the table, add it

        if(state[plr.ID].keytimer==null) //If the repetition timer is not created, create it
        {
            state[plr.ID].keytimer=NewTimer("onKeyProcess",10,0,plr.ID);
        }
    }
}

function RemoveKeyTable(i,key) //Here is the delete key function
{
    local plr=FindPlayer(i);
    if(plr)
    {
        if(state[plr.ID].keytable!=null)
        {
if(state[plr.ID].keytable.rawin(key)) //If the key exists in the player's table
{
state[plr.ID].keytable.rawdelete(key); //Delete it
if(state[plr.ID].keytable.len()==0)
{
state[plr.ID].keytable=null; //If there are no keys in the table, delete the table
if(state[plr.ID].keytimer!=null) //Also delete timer
{
state[plr.ID].keytimer.Delete();
state[plr.ID].keytimer=null;
}
                }
            }
        }
    }
}
function onKeyProcess(i)
{
    local plr=FindPlayer(i);
    if(plr)
    {
        if(state[plr.ID].keytable!=null)
        {
            if(state[plr.ID].keytable.len()>0)
            {
                local nokey=0;
                for(local i=0;i<state[plr.ID].keytable.len()+1000;i++) //Create a loop to get the keys in the player's store table
                {
                    if(state[plr.ID].keytable.rawin(i))
                    {
                        local key=state[plr.ID].keytable.rawget(i);
                        nokey=0;
                        onKeyDown(plr,key); //Execute this key
                    }
                    else nokey+=1;

                    if(nokey>=10) break; //The 10 here is the number you set when you create the number of binding keys
                }
      }
        }
    }
}
#18
Community Plugins / Re: NPC/Bots implementation in...
Last post by PSL - Mar 11, 2024, 11:20 AM
HI, Vitovc. I was working on controlling the vehicle in the passenger seat and stumbled upon this issue, which turns out not to be a bug.
#19
Community Plugins / Re: NPC/Bots implementation in...
Last post by vitovc - Mar 11, 2024, 11:14 AM
Quote from: PSL on Mar 11, 2024, 10:41 AMWhen the NPC is in the vehicle and is the driver, the vehicle cannot pass the Vehicle.AddSpeed to add speed.
its not a bug, same with idle (afk/away) player. addspeed works only when vehicle's syncer (player) is not away. you need to hande vehicle speed/pos by NPC's code, the driver of a car. its only correct method.
#20
Community Plugins / Re: NPC/Bots implementation in...
Last post by PSL - Mar 11, 2024, 10:41 AM
HI Habi, I understand your code and have successfully crafted the judgment NPCS. thank you very much.
When the NPC is in the vehicle and is the driver, the vehicle cannot pass the Vehicle.AddSpeed to add speed.