Recent posts

#1
Script Showroom / Re: BindKey Process System
Last post by Mohamed Boubekri - Mar 18, 2024, 10:22 AM
Setting the time during a key press is a very useful feature to prevent occasional hacking or delays in some scripts.
good job.
#2
Script Showroom / Re: Dipeos command
Last post by PSL - Mar 16, 2024, 08:45 AM
This script has no language formatting errors.
#3
Script Showroom / Re: BindKey Process System
Last post by PSL - Mar 16, 2024, 08:35 AM
I've optimized the script to make it easier to add methods, use only one timer, and be more efficient. Adapt the following code to your server.
function onScriptLoad()
{
    PlayerKeys<-{};
    ProcessKey<-{};
    ProcessKeyTime<-100; //This number sets the speed of the code
    ProcessKeyTimer<-null;
}
function onPlayerPart(player,reason)
{
    DeleteAllPlayerKeyToTable(player.ID);
}
function onKeyDown(player,key)
{
    AddPlayerKeyToTable(player.ID,key);
}
function onKeyUp(player,key)
{
    DeletePlayerKeyToTable(player.ID,key);
}

//Functions
function AddKeyToTable(key)
{
    ProcessKey.rawset(key,key);
}
function DeleteKeyToTable(key)
{
    if(ProcessKey.rawin(key)) ProcessKey.rawdelete(key);
}
function AddPlayerKeyToTable(i,key)
{
    local plr=FindPlayer(i);
    if(plr)
    {
        if(ProcessKey.rawin(key))
        {
            if(PlayerKeys.rawin(plr.ID))
            {
                local arr=PlayerKeys.rawget(plr.ID),find=false;
                for(i=0;i<arr.len();i++)
                {
                    if(arr[i]==key)
                    {
                        find=true;
                        break;
                    }
                }
                if(find==false) arr.append(key);
            }
            else
            {
                local arr=[];
                arr.append(key);
                PlayerKeys.rawset(plr.ID,arr);
            }
            CreateProcessKeyTimer();
        }
    }
}
function DeletePlayerKeyToTable(i,key)
{
    local plr=FindPlayer(i);
    if(plr)
    {
        if(ProcessKey.rawin(key))
        {
            if(PlayerKeys.rawin(plr.ID))
            {
                local arr=PlayerKeys.rawget(plr.ID);
                for(local i=0;i<arr.len();i++)
                {
                    if(arr[i]==key)
                    {
                        arr.remove(i);
                        break;
                    }
                }
                if(arr.len()==0) PlayerKeys.rawdelete(plr.ID);
            }
            if(PlayerKeys.len()==0) DeleteProcessKeyTimer();
        }
    }
}
function DeleteAllPlayerKeyToTable(i)
{
    local plr=FindPlayer(i);
    if(plr)
    {
        if(PlayerKeys.rawin(plr.ID)) PlayerKeys.rawdelete(plr.ID);
    }
}
function CreateProcessKeyTimer()
{
    if(ProcessKeyTimer==null) ProcessKeyTimer=NewTimer("onServerKeyProcess",ProcessKeyTime,0);
}
function DeleteProcessKeyTimer()
{
    if(ProcessKeyTimer!=null) ProcessKeyTimer.Delete();
    ProcessKeyTimer=null;
}
function onServerKeyProcess()
{
    for(local i=0;i<100;i++)
    {
        local plr=FindPlayer(i);
        if(plr)
        {
            if(PlayerKeys.rawin(plr.ID))
            {
                local arr=PlayerKeys.rawget(plr.ID);
                for(local i=0;i<arr.len();i++) onKeyDown(plr,arr[i]);
            }
        }
    }
}

test code: A simple fly code, I key up, K key down. The above code must be installed first.
function onScriptLoad()
{
    Key_J<-BindKey(true,0x4A,0,0);
    Key_L<-BindKey(true,0x4C,0,0);
    Key_I<-BindKey(true,0x49,0,0);
    Key_K<-BindKey(true,0x4B,0,0);
   
    AddKeyToTable(Key_I); //Adds the binding key to the table that is looped
    AddKeyToTable(Key_K);

    ProcessKeyTime=10;
}
function onKeyDown(player,key)
{
    if(key==Key_I) player.Pos.z+=1;
    if(key==Key_K) player.Pos.z-=1;
    if(key==Key_J) MessagePlayer("[#FFFF00]Key: J",player);
    if(key==Key_L) MessagePlayer("[#FFFF00]Key: L",player);
}
#4
Script Showroom / Re: Ban & echo,system
Last post by Abbas_905 - Mar 14, 2024, 12:28 AM
bro oh so thank you for you have discord?
#5
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.
#6
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.
#7
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
#8
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,
#9
Script Showroom / Re: Dipeos command
Last post by Abbas_905 - Mar 13, 2024, 03:50 AM
thanks for it,
#10
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);
}
}