Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums



(Advanced Search)

Forum Statistics
» Members: 7,886
» Latest member: rcst3phan
» Forum threads: 2,394
» Forum posts: 12,301

Full Statistics

Online Users
There are currently 212 online users.
» 0 Member(s) | 210 Guest(s)
Bing, Google

Latest Threads
AntyCheat System [SA-MP/O...
Forum: Filterscripts
Last Post: Pevenaider
Yesterday, 08:48 PM
» Replies: 11
» Views: 18,916
problema afisare dialog c...
Forum: Romanian/Rom?na
Last Post: rcst3phan
Yesterday, 07:31 PM
» Replies: 0
» Views: 27
problem dialog clan membe...
Forum: Pawn Scripting
Last Post: rcst3phan
Yesterday, 07:30 PM
» Replies: 0
» Views: 19
problem dialog clan membe...
Forum: Support
Last Post: rcst3phan
Yesterday, 07:29 PM
» Replies: 0
» Views: 23
Verona Community opening
Forum: Advertisements
Last Post: pmemorex2016
Yesterday, 07:01 AM
» Replies: 0
» Views: 23
Verona Community otvaranj...
Forum: Ex-Yu
Last Post: pmemorex2016
Yesterday, 06:59 AM
» Replies: 0
» Views: 32
Animated Textdraws
Forum: Libraries
Last Post: Crazy_ArKzX
2026-01-26, 08:26 PM
» Replies: 0
» Views: 32
Textdraw Animada
Forum: Portuguese/Portugu?s
Last Post: Crazy_ArKzX
2026-01-26, 08:23 PM
» Replies: 0
» Views: 26
Textdraw Editor Mobile - ...
Forum: Portuguese/Portugu?s
Last Post: Crazy_ArKzX
2026-01-26, 08:21 PM
» Replies: 0
» Views: 16
Il reste des français sur...
Forum: French/Fran?ais
Last Post: Lionel62300
2026-01-26, 03:20 PM
» Replies: 3
» Views: 3,932

 
  deleted
Posted by: Atom - 2019-04-14, 07:20 AM - Forum: Discusi?n GTA SA Multijugador - Replies (13)

deleted


  matheval
Posted by: SyS - 2019-04-14, 07:19 AM - Forum: Libraries - Replies (1)

matheval



[Image: matheval.svg?branch=master] [Image: matheval.svg] [Image: matheval.svg] [Image: matheval.svg]



This is a simple library for evaluating mathematical expressions given as string literals.Currently supported operators are:
  • - addition?

  • - - subtraction?

  • ^ - exponential?

  • / - division?

  • * - product

If you have any issues or improvements to be made in this code just open an issue or pull request



Installation



If you are using sampctl just use



sampctl package install Sreyas-Sreelal/matheval



Otherwise just clone the repository



git clone https://www.github.com/sreyas-sreelal/matheval.git



and add matheval.inc to your pawno/includes folder



Usage



There is only one function



MathEval(expression[])



parameters


  • expression[] - mathmatical expression in string literal


returns


  • NaN if failed

  • if success,value in floating point



For example :




PHP Code:
#include<matheval>

main(){

? ?
printf("(1)^(32/3)-1 = %f",MathEval("(1)^(32/3)-1"));





Testing



To run the tests:



sampctl package run



Dependencies



Repository

https://github.com/Sreyas-Sreelal/matheval


  Logic_'s script releases
Posted by: Gravityfalls - 2019-04-14, 07:10 AM - Forum: Gamemodes - Replies (2)

Find all my script releases here:

  1. Zombieland TDM (https://github.com/AliLogic/Zombieland-SAMP)
  2. COD-AW (https://github.com/AliLogic/CoD-ApocalypticWarfare)
  3. COD-MW4 (https://github.com/AliLogic/COD-MW4)
  4. A useless help system (https://github.com/AliLogic/Basic-Help-System)
  5. Word scrambler [very inefficiently written] (https://github.com/AliLogic/word-scrambler)

I'll be releasing many other scripts that I've lying in my archive folder very soon.


  PawnScraper
Posted by: SyS - 2019-04-14, 06:46 AM - Forum: Plugins - No Replies

PawnScraper






[Image: pawn-scraper.svg?branch=master] [Image: 5rq55kukvy8xymly?svg=true] [Image: sampctl-PawnScraper-2f2f2f.svg] [Image: pawn-scraper.svg] [Image: pawn-scraper.svg] [Image: pawn-scraper.svg]



A powerful scraper plugin that provides interface for utlising html_parsers and css selectors in pawn.





Installing



Thanks to Southclaws,plugin installation is now much easier with sampctl



PHP Code:
sampctl p install Sreyas-Sreelal/pawn-scraper 



OR


  • Download suitable binary files from releases for your operating system

  • Add it your plugins folder

  • Add PawnScraper to server.cfg or? PawnScraper.so (for linux)

  • Add pawnscraper.inc in includes folder





Building


  • Clone the repo



    PHP Code:
    git clone https://github.com/Sreyas-Sreelal/pawn-scraper.git 



  • Compile the plugin using nightly compiler


    • Windows

      PHP Code:
      cargo 鸨↶i686-pc-windows-msvc build --release 

    • Linux

      PHP Code:
      cargo 鸨↶i686-unknown-linux-gnu build --release 






API


  • ParseHtmlDocument(document[])]


    • Params


      • document[] - string of html document


    • Returns


      • Html document instance id

      • if failed to parse document INVALID_HTML_DOC is returned


    • Example Usage



      PHP Code:
      new Html:doc ParseHtmlDocument("\

       <!DOCTYPE html>\

       <meta charset=\"utf-8\">\

       <title>Hello, world!</title>\

       <h1 class=\"foo\">Hello, <i>world!</i></h1>\

       "
      );

      ASSERT(doc != INVALID_HTML_DOC);

      DeleteHtml(doc); 




  • ResponseParseHtml(Response:id)


    • Params


      • id - Http response id returned from HttpGet


    • Returns


      • Html document instance id

      • if failed to parse document INVALID_HTML_DOC is returned


    • Example Usage



      PHP Code:
      new Response:response HttpGet("https://www.sa-mp.com");

      new 
      Html:doc ResponseParseHtml(response);

      ASSERT(doc != INVALID_HTML_DOC);

      DeleteHtml(doc); 




  • HttpGet(url[],Header:headerid=INVALID_HEADER)


    • Params


      • url[] - Url of a website

      • header - id of header object created using CreateHeader


    • Returns


      • Response id if successful

      • if failed to INVALID_HTTP_RESPONSE is returned


    • Example Usage



      PHP Code:
      new Response:response HttpGet("https://www.sa-mp.com");

      ASSERT(response != INVALID_HTTP_RESPONSE);

      DeleteResponse(response); 




  • HttpGetThreaded(playerid,callback[],url[],Header:headerid=INVALID_HEADER)


    • Params


      • playerid - id of the player

      • callback[] - name of the callback function to handle the response.

      • url[] - Url of a website

      • header - id of header object created using CreateHeader


    • Example Usage

      PHP Code:
      HttpGetThreaded(0,"MyHandler","https://sa-mp.com");

      //********

      forward MyHandler(playerid,Response:responseid);

      public 
      MyHandler(playerid,Response:responseid){

      ? ? 
      ASSERT(responseid != INVALID_HTTP_RESPONSE);

      ? ? 
      DeleteResponse(responseid);




  • ParseSelector(string[])


    • Params


      • string[] - CSS selector


    • Returns


      • Selector instance id if successful

      • if failed to INVALID_SELECTOR is returned


    • Example Usage



      PHP Code:
      new Selector:selector ParseSelector("h1 .foo");

      ASSERT(selector != INVALID_SELECTOR);

      DeleteSelector(selector); 




  • CreateHeader(?)


    • Params


      • key,value pairs of String type


    • Returns


      • Header instance id if successful

      • if failed to INVALID_HEADER is returned


    • Example Usage



      PHP Code:
      new Header:header CreateHeader(

      ? ? 
      "User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"

      );

      ASSERT(header != INVALID_HEADER);

      new 
      Response:response HttpGet("https://sa-mp.com/",header);

      ASSERT(response != INVALID_HTTP_RESPONSE);

      ASSERT(DeleteHeader(header) == 1); 




  • GetNthElementName(Html:docid,Selector:selectorid,idx,string[],size = sizeof(string))


    • Params


      • docid - Html instance id

      • selectorid - CSS selector instance id

      • idx - the n?th occurence of element in the document (starts from 0)

      • string[] - element name is stored

      • size - sizeof string


    • Returns


      • 1 if successful

      • 0 if failed


    • Example Usage



      PHP Code:
      new Html:doc ParseHtmlDocument("\

      ? ? <!DOCTYPE html>\

      ? ? <meta charset=\"utf-8\">\

      ? ? <title>Hello, world!</title>\

      ? ? <h1 class=\"foo\">Hello, <i>world!</i></h1>\

      "
      );

      ASSERT(doc != INVALID_HTML_DOC);



      new 
      Selector:selector ParseSelector("i");

      ASSERT(selector != INVALID_SELECTOR);



      new 
      i= -1,element_name[10];

      while(
      GetNthElementName(doc,selector,,element_name)!=0){

      ? ? 
      ASSERT(strcmp(element_name,"i") == 0);

      }



      DeleteSelector(selector);

      DeleteHtml(doc); 


  • GetNthElementText(Html:docid,Selector:selectorid,idx,string[],size = sizeof(string))


    • Params


      • docid - Html instance id

      • selectorid - CSS selector instance id

      • idx - the n?th occurence of element in the document (starts from 0)

      • string[] - element name

      • size - sizeof string


    • Returns


      • 1 if successful

      • 0 if failed


    • Example Usage



      PHP Code:
      new Html:doc ParseHtmlDocument("\

      ? ? <!DOCTYPE html>\

      ? ? <meta charset=\"utf-8\">\

      ? ? <title>Hello, world!</title>\

      ? ? <h1 class=\"foo\">Hello, <i>world!</i></h1>\

      "
      );

      ASSERT(doc != INVALID_HTML_DOC);



      new 
      Selector:selector ParseSelector("h1.foo");

      ASSERT(selector != INVALID_SELECTOR);



      new 
      element_text[20];

      ASSERT(GetNthElementText(doc,selector,0,element_text) == 1);



      new 
      check strcmp(element_text,("Hello, world!"));

      ASSERT(check == 0);



      DeleteSelector(selector);

      DeleteHtml(doc); 


  • GetNthElementAttrVal(Html:docid,Selector:selectorid,idx,attribute[],string[],size = sizeof(string))


    • Params


      • docid - Html instance id

      • selectorid - CSS selector instance id

      • idx - the n?th occurence of element in the document (starts from 0)

      • attribute[] - the attribute of element

      • string[] - element name

      • size - sizeof string


    • Returns


      • 1 if successful

      • 0 if failed


    • Example Usage



      PHP Code:
      new Html:doc ParseHtmlDocument("\

       <!DOCTYPE html>\

       <meta charset=\"utf-8\">\

       <title>Hello, world!</title>\

       <h1 class=\"foo\">Hello, <i>world!</i></h1>\

      "
      );

      ASSERT(doc != INVALID_HTML_DOC);



      new 
      Selector:selector ParseSelector("h1");

      ASSERT(selector != INVALID_SELECTOR);



      new 
      element_attribute[20];

      ASSERT(GetNthElementAttrVal(doc,selector,0,"class",element_attribute) == 1);



      new 
      check strcmp(element_attribute,("foo"));

      ASSERT(check == 0);



      DeleteSelector(selector);

      DeleteHtml(doc); 


  • DeleteHtml(Html:id)


    • Params


      • id - html instance to be deleted


    • Returns


      • 1 if successful

      • 0 if failed



  • DeleteSelector(Selector:id)


    • Params


      • id - selector instance to be deleted


    • Returns


      • 1 if successful

      • 0 if failed



  • DeleteResponse(Html:id)


    • Params


      • id - response instance to be deleted


    • Returns


      • 1 if successful

      • 0 if failed



  • DeleteHeader(Header:id)


    • Params


      • id - header instance to be deleted


    • Returns


      • 1 if successful

      • 0 if failed








Example Usage



A small example to fetch all links in wiki.sa-mp.com



PHP Code:
new Response:response HttpGet("https://wiki.sa-mp.com");

if(
response == INVALID_HTTP_RESPONSE){

 
printf("HTTP ERROR");

 return;

}



new 
Html:html ResponseParseHtml(response);

if(
html == INVALID_HTML_DOC){

 
DeleteResponse(response);

 return;

}



new 
Selector:selector ParseSelector("a");

if(
selector == INVALID_SELECTOR){

 
DeleteResponse(response);

 
DeleteHtml(html);

 return;

}



new 
str[500],i;

while(
GetNthElementAttrVal(html,selector,i,"href",str)){

 
printf("%s",str);

 ;

}

//delete created objects after the usage..

DeleteHtml(html);

DeleteResponse(response);

DeleteSelector(selector); 



The same above with threaded http call would be



PHP Code:
HttpGetThreaded(0,"MyHandler","https://wiki.sa-mp.com");

//...

forward MyHandler(playerid,Response:responseid);

public 
MyHandler(playerid,Response:responseid){

 if(
responseid == INVALID_HTTP_RESPONSE){

 
printf("HTTP ERROR");

 return 
0;

 }



 new 
Html:html ResponseParseHtml(responseid);

 if(
html == INVALID_HTML_DOC){

 
DeleteResponse(response);

 return 
0;

 }



 new 
Selector:selector ParseSelector("a");

 if(
selector == INVALID_SELECTOR){

 
DeleteResponse(response);

 
DeleteHtml(html);

 return 
0;

 }



 new 
str[500],i;

 while(
GetNthElementAttrVal(html,selector,i,"href",str)){

 
printf("%s",str);

 ;

 }



 
DeleteHtml(html);

 
Delete(response);

 
DeleteSelector(selector);

 return 
1;






More examples can be found in examples



Repository

https://github.com/Sreyas-Sreelal/pawn-scraper



Note



The plugin is in primary stage and more tests and features needed to be added.I?m open to any kind of contribution, just open a pull request if you have anything to improve or add new features.



Special thanks



  Telegram Connector
Posted by: SyS - 2019-04-14, 06:38 AM - Forum: Plugins - Replies (9)

TgConnector



[Image: tgconnector.svg?branch=master] [Image: snip8i9cd6xh2x1u?svg=true] [Image: sampctl-TGConnector-2f2f2f.svg] [Image: tgconnector.svg] [Image: tgconnector.svg] [Image: tgconnector.svg]



A telegram connector plugin that helps to interact with telgram bots through SA-MP.



Installing



If you are a sampctl user



PHP Code:
sampctl p install Sreyas-Sreelal/tgconnector 




OR


  • Download suitable binary files from releases for your operating system

  • Add it your plugins folder

  • Add tgconnector to server.cfg or? tgconnector.so (for linux)

  • Add tgconnector.inc in includes folder


Building


  • Clone the repo



    PHP Code:
    git clone https://github.com/sreyas-sreelal/tgconnector.git 




  • Use makefile to compile and test


    • Setup testing environment



      PHP Code:
      make setup 




    • To build release version



      PHP Code:
      make release 




    • Run tests



      PHP Code:
      make run 






Example



A basic bot



PHP Code:
#include<a_samp>

#include<tgconnector>

#include<zcmd>



#define CHAT_ID (TGChatId:"YOUR_CHAT_ID_HERE")



new TGBot:g_bot;



main() {

//Store bot token in SAMP_TG_BOT environment variable and connect from it

g_bot TGConnectFromEnv("SAMP_TG_BOT");

if(
g_bot != INVALID_BOT_ID) {

printf("bot connected successfully!");

} else {

printf("Error: bot couldn't connect");

}

}



public 
OnTGMessage(TGBot:bot,TGUser:fromid,TGMessage:messageid) {



if(
g_bot != bot){

return 
1;

}



new?

message[50],

username[24],

chatname[56],

server_msg[128];



TGCacheGetMessage(message);

TGCacheGetUserName(username);

TGCacheGetChatName(chatname);



format(server_msg,128,"[%s] %s(%d): %s",chatname,username,_:fromid,message);

SendClientMessageToAll(-1,server_msg);



return 
1;

}





public 
OnTGUserJoined(TGBot:bot,TGUser:userid) {

new?

TGChatId:chatid[15],

username[24],

chatname[56],

server_msg[128];



? ? 
//Retrive data stored in current context

TGCacheGetUserName(username);

TGCacheGetChatId(chatid);

TGCacheGetChatName(chatname);



format(server_msg,128,"User %s(%d) joined %s(%s)",username,_:userid,chatname,_:chatid);

SendClientMessageToAll(-1,server_msg);

return 
1;

}



public 
OnTGUserLeft(TGBot:bot,TGUser:userid) {

new?

TGChatId:chatid[15],

username[24],

chatname[56],

server_msg[128];



TGCacheGetUserName(username);

TGCacheGetChatId(chatid);

TGCacheGetChatName(chatname);



format(server_msg,128,"User %s(%d) left %s(%s)",username,_:userid,chatname,_:chatid);

SendClientMessageToAll(-1,server_msg);

return 
1;

}



CMD:sendtgmessage(playerid,params[]) {

TGSendMessage(g_bot,CHAT_ID,params);

return 
1;





Notes



This plugin is still in WIP and more tests need to be done.If you find any bugs or have anything to contribute feel free to open an issue or pull request on github.

Also be sure to not to share your bot token with anyone it's recommended to store it inside a environment variable.



Repository



Source: https://github.com/Sreyas-Sreelal/tgconnector

Releases: https://github.com/Sreyas-Sreelal/tgconnector/releases

Wiki: https://github.com/Sreyas-Sreelal/tgconnector/wiki (Not complete yet)


  Discord Ban Appeal
Posted by: Gravityfalls - 2019-04-14, 06:33 AM - Forum: Chat - Replies (6)

Hi everyone,

To introduce, I'm Logic_ here.?Roughly one year ago, I was banned from the SA-MP's "unofficial" discord and since then stayed away from it. I think I've deserve to be unbanned and be part of the community once again - since Kalcor has decided to go nuts and ban everyone from the SA-MP forums for the apparent reason of "mutinty" (retardation).

I do think I should have PM'ed this to one of the mods. and not created a thread just for the sake of not getting useless attention. Regardless, I've been banned before by Rehasher for being involved in a server responsible for attacking BA-RP's forum, which I had no part in and was unbanned later. I do not remember for what reasons I was banned now.

Regards.

PS: Here's a PewDiePie video: https://youtu.be/rNbNEcKpFz4?t=378


Heart Og?lny chat
Posted by: Riddick - 2019-04-14, 06:17 AM - Forum: Og?lne - Replies (36)

Czesc,



W tym og?lnym czacie mozemy porozmawiac o wszystkim co sie dzieje ostatnio na scenie Open.MP czy tez SA-MP.?

Po co tu jestesmy, co sie wydarzylo w minionych tygodniach i og?lnie porozmawiac.


  Filipino
Posted by: Dev86 - 2019-04-14, 06:11 AM - Forum: Other - Replies (7)

hello mga gagu


  ?????????
Posted by: hual - 2019-04-14, 06:07 AM - Forum: Other - Replies (10)

????? ?? ?????



[Image: photo_big_26729.jpg]


  The website doesn't work
Posted by: Verc - 2019-04-14, 05:48 AM - Forum: Support - Replies (8)

For some reason, burgershot.gg is not working without VPN(I'm using singapore based VPN). I lived in Indonesia currently. It only says connection timed out. Is this expected to happen?