Jump to content

MTAMA Scripting


Si|ent

Recommended Posts

  • Replies 1.3k
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Of coure Oli but admin that server saw me may if I sellte such script

which avoid clone kicker (only one IP) it he place this script on his serv and I can play for my friend together.

Ok.. in the script there has to be, under mta.join a line like:

if (mta.ip($1,$2) == %id)

if you change that to if (mta.ip($1,$2) == %ip && %ip != )

only your ip is allowed to play with mote ip's.. If you can't find this line, msn/mail me, i'll find it for you

Link to comment

OK Harry thx

but how remodel this script:

  var %a = 1 
 while (%a <= $mta.maxplayers($1)) { 
   if ($ini($scriptdir $+ $1.ini,ID $+ %a)) { 
     if (($mta.ip($1,%a) == $mta.ip($1,$2)) && (%a != $2)) { 
       mta.say $1 $mta.name($1,$2) possible only one connect from IP
       mta.kick $1 $2 
     } 
   } 
   inc %a 
 } 

order avoid clone kicker for my IP ??

Can you help me?? :)

Link to comment

By this:

 ; Clone kicker 
 var %a = 1 
 while (%a <= $mta.maxplayers($1)) { 
   if ($ini($scriptdir $+ $1.ini,ID $+ %a) && %a != $2) { 
     if (($mta.ip($1,%a) == $mta.ip($1,$2)) && ($mta.ip($1,$2) != 10.0.10.1)) { 
       mta.say $1 $mta.name($1,$2), multiple connections from 1 IP are not allowed 
       mta.kick $1 $2 
     } 
   } 
   inc %a 
 } 

That is for 1 ip.. you can change the single not in a not in textfile if you want to allow loads of ips, for just 1 this is faster (but certainly not elegant)

EDIT: Fixed a problem with every person kicked, because the old script allso checked you own ip..

Edited by Guest
Link to comment

Harry i have problem with this script :

var %a = 1 
 while (%a <= $mta.maxplayers($1)) { 
   if ($ini($scriptdir $+ $1.ini,ID $+ %a)) { 
     if (($mta.ip($1,%a) == $mta.ip($1,$2)) && $mta.ip($1,$2) != 213.186.75.98) { 
       mta.say $1 $mta.name($1,$2) possible only one connect from IP
       mta.kick $1 $2 
     } 
   } 
   inc %a 
 } 

If I connect with server and me friend this working, but when I am already on server, each player which connect when i am in server remain

kicked from server (reason: possible only..). WHY ??

Link to comment

ok, this was STUPID!

Try this, without the kick because your own IP equals... your own ip :P

 ; Clone kicker
 var %a = 1 
 while (%a <= $mta.maxplayers($1)) { 
   if ($ini($scriptdir $+ $1.ini,ID $+ %a) && %a != $2) { 
     if (($mta.ip($1,%a) == $mta.ip($1,$2)) && ($mta.ip($1,$2) != 10.0.10.1)) { 
       mta.say $1 $mta.name($1,$2), multiple connections from 1 IP are not allowed
       mta.kick $1 $2 
     } 
   } 
   inc %a 
 } 

Link to comment

LOL, ok m8, here..

Time

if ($3 == !time) {
   mta.say $1 The current time $time (GMT)
 }

Ping

if ($3 == !ping &&  %isadmin. [ $+ [ $1 ] $+ . $+ [ $2 ] ] == true) {
   if ($4 == $null) {
     mta.say $1 $mta.name( $1 , $2 ), your ping is $mta.ping( $1 , $2 ) . Average  $round(%averageping. [ $+ [ $1 ] $+ . $+ [ $2 ] ],0)
   }

EDIT :: By the way these both go under mta.text. :lol:

Link to comment

Ping

if ($3 == !ping &&  %isadmin. [ $+ [ $1 ] $+ . $+ [ $2 ] ] == true) {
   if ($4 == $null) {
     mta.say $1 $mta.name( $1 , $2 ), your ping is $mta.ping( $1 , $2 ) . Average  $round(%averageping. [ $+ [ $1 ] $+ . $+ [ $2 ] ],0)
   }

EDIT :: By the way these both go under mta.text. :lol:

uhhh DaN, if the person who uses that ping script has not got admin login then they cant use it!

Link to comment

Even better dan, even a admin who uses that script will see an average of 0!

Where do you fill the variable:

 averageping. [ $+ [ $1 ] $+ . $+ [ $2 ] ]

Don't copy a script if you don't know how it works!

Now Harry all is very well, but on player with ID = 0 not working...

Player with ID 0 can connect two times... Why??

Oh, change the var %a = 1 to %a = 0, WHOOPS

Link to comment

LOL dan how could u not see that??

Anyways, im releasing a new script for u all :) hope u like.

This script is !genocide . Basically, u do that on a clan (2 or more ppl with a tag or 2 or more characters) and you have to kill 10 of them before getting killed yourself. There is an optional part so that if you actually pull this off the whole clan gets kicked (which is damn hard, cos anyone can kill u, but the messages very depending on whether they are from the clan u are committing genocide on). There are a few restrictions for it:

You cant commit genocide on your own clan;

You cant commit genocide on a clan with less than 2 characters in their tag or less than 2 members in the server;

You cant committ genocide on a clan thats not in the server;

People who join the server from a clan that has genocide being committed against them get a warning.

If you get killed by anyone then it terminates the attempt.

If you leave it cancels your attempt.

Thats about it. Ive tested it on 7 VCES players and it works very well, and is a lot of fun, plus a huge challenge for talented players.

And without further ado... here is the script:

;SCRIPT CREATED BY [FMJ]OLI
;SCRIPT CONCEPT BY [FMJ]GORDON
;FOR ASSISSTANCE, EMAIL: [email protected]
;THIS SCRIPT MAY BE COPIED, BUT THE CREDITS MUST REMAIN IN THE SCRIPT IS IT COPIED TO
;THIS SCRIPT MAY NOT BE PUBLISHED WITHOUT THE PERMISSION OF [FMJ]OLI

;This is the part to turn on and off the script. It can be anyone in the server.
alias genocide {
 if ( ($4 == off) && ($readini( "genocide.ini", main, running ) == 1 ) && $readini( "genocide.ini", main, genocide ) == $mta.name($1,$2) ) {
   mta.say $1 $mta.name($1,$2) gave up the genocide attempt.
   writeini "genocide.ini" main running 0
   writeini "genocide.ini" main current 0
   remini "genocide.ini" main genocide
   remini "genocide.ini" main clan
 } 
 elseif ($4 == off && ($readini( "genocide.ini", main, running ) != 1) ) {
   mta.say $1 No genocide attempts right now...
 } 
 elseif ( $len($4) >= 2 ) {
   if ( ( $readini("genocide.ini", main, running) == 1 ) ) {
     mta.say $1 $readini( "genocide.ini", main, genocide ) is commiting genocide right now.. wait till he's done
   }
   else {
     genocidepresent $1- 
     if ( $4 isin $mta.name($1,$2) ) {
       mta.say $1 $mta.name( $1 , $2 ) you cant commit genocide on your own clan!!
     }
     elseif ( %count >= 1 ) {
       mta.say $1 $mta.name( $1 , $2 ) is going to commit genocide on $4
       writeini "genocide.ini" main running 1
       writeini "genocide.ini" main clan $4
       writeini "genocide.ini" main genocide $mta.name( $1 , $2 )
     }
     elseif ( %count == 1 ) {
       mta.say $1 Sorry $mta.name( $1 , $2 ) there arn't enough members of $4 present to commit genocide on
     }
     else {
       mta.say $1 You can't commit genocide on a clan thats not here!
     }
   }
 }
 else {
   mta.say $1 $mta.name($1,$2) $+ : You gotta pick a clan to kill.. !genocide 
 }
}

;Deactivates the script if the person leaves, and presents messages if members of the clan being targeted leave.
alias genocide.part {
 if ( ($readini( "genocide.ini", main, genocide ) == $mta.name($1,$2)) ) {
   mta.say $1 $mta.name($1,$2) hasn't got what it takes to kill $readini( "genocide.ini", main, clan )
   writeini "genocide.ini" main running 0
   writeini "genocide.ini" main current 0
   remini "genocide.ini" main genocide
   remini "genocide.ini" main clan
 }
 elseif ( $readini( "genocide.ini", main, clan ) isin $mta.name($1,$2)) {
   genocidepresent $1- 
   if ( %count <= 1 ) {
     mta.say $1 All the members of $readini( "genocide.ini", main, clan ) have fled to claim asylum.. $readini( "genocide.ini", main, genocide ) wins!!
     writeini "genocide.ini" main running 0
     writeini "genocide.ini" main current 0
     remini "genocide.ini" main genocide
     remini "genocide.ini" main clan
   }
   else {
     mta.say $1 $mta.name($1,$2) has fled to claim asylum
   }
 }
}

;Kill system, i would change any of this if i were you.
alias genocide.kill {
 if ( ($mta.name($1,$2) != unknown) || ($mta.name($1,$3) != unknown) ) {
   if (( $mta.name($1,$2) == $readini( "genocide.ini", main, genocide ) ) && ( $mta.name($1,$2) == $mta.name($1,$3))) {
     mta.say $1 $mta.name($1,$3) commited suicide to avoid a visit to the Hague.
     writeini "genocide.ini" main running 0
     writeini "genocide.ini" main current 0
     remini "genocide.ini" main genocide
     remini "genocide.ini" main clan
   }
   elseif (($mta.name($1,$3) == $readini( "genocide.ini", main, genocide ) ) && ( $readini( "genocide.ini", main, clan ) isin $mta.name($1,$2))) {
     if ($readini( "genocide.ini", main, current ) == 9) {
       mta.say $1 $mta.name($1,$3) has successfully committed genocide on $readini( "genocide.ini", main, clan )
       writeini "genocide.ini" main running 0
       writeini "genocide.ini" main current 0
       ;this part initialtes a kick of the clan if the attempt is successful. Remove to ; infront of it to activate it. Admins do not get kicked by this.
       ;genocidekick $1-
       remini "genocide.ini" main genocide
       remini "genocide.ini" main clan
     }
     else {
       %currentgenocide = $calc( $readini( "genocide.ini", main, current ) + 1 )
       writeini "genocide.ini" main current %currentgenocide
       mta.say $1 $mta.name($1,$3) has killed %currentgenocide $readini( "genocide.ini", main, clan ) members...
       unset %currentgenocide
     }
   }
   elseif (( $mta.name($1,$2) == $readini( "genocide.ini", main, genocide ) ) && ( $readini( "genocide.ini", main, clan ) isin $mta.name($1,$3))) {
     mta.say $1 $mta.name($1,$3) stopped $mta.name($1,$2) from committing genocide against $readini( "genocide.ini", main, clan )
     writeini "genocide.ini" main running 0
     writeini "genocide.ini" main current 0
     remini "genocide.ini" main genocide
     remini "genocide.ini" main clan
   }
   elseif (( $mta.name($1,$2) == $readini( "genocide.ini", main, genocide ) ) ) {
     mta.say $1 $mta.name($1,$3) terminated $mta.name($1,$2) on behalf of the U.N.
     writeini "genocide.ini" main running 0
     writeini "genocide.ini" main current 0
     remini "genocide.ini" main genocide
     remini "genocide.ini" main clan
   }
 }
}

;counts the members of the clan targeted present
alias genocidepresent { 
 set %playerid 0 
 set %count 0 
 while ( $mta.maxplayers($1) > %playerid ) { 
   if ( $ini( $+ $1 $+ .ini, ID $+ %playerid ) ) { 
     if ( $4 isin $mta.name($1, %playerid)) { 
       %count = %count + 1 
     } 
   } 
   %playerid = %playerid + 1 
 } 
 unset %playerid 
 !return %count 
}

;this part kicks the whole clan if the attempt is successful
alias genocidekick { 
 set %listplayer 0
 while ($mta.maxplayers($1) > %listplayer ) {
  if ( $readini( "genocide.ini", main, clan ) isin $mta.name($1, %listplayer) && %isadmin. [ $+ [ $1 ] $+ . $+ [ %listplayer ] ] = false ) {
     mta.kick $1 %listplayer
     }
   %listplayer = %listplayer + 1
 }
 unset %listplayer 
}

alias mta.join {
 ;$1 = Server
 ;$2 = Player ID
 ;$3- = Reason
 if ( $readini( "genocide.ini", main, clan ) isin $mta.name($1,$2)) {
   mta.say $1 $mta.name($1,$2) $+ , $readini( "genocide.ini", main, genocide ) is committing genocide on your clan!!
 }
}

alias mta.part {
 ;$1 = Server
 ;$2 = Player ID
 ;$3- = Reason
 genocide.part $1-
}

alias mta.text {
 ;$1 = Server
 ;$2 = Player ID
 ;$3- = Text
 if ($3 == !genocide) {
   genocide $1-
 }
}

alias mta.kill {
 ;$1 = Server
 ;$2 = Player ID
 ;$3 = Killer ID
 if (( $readini( "genocide.ini", main, running ) == 1 )) {
   genocide.kill $1-
 }
}

This script was totally created by myself ([FMJ]Oli) and the idea was by [FMJ]Gordon.

If you have probs then ask me.

This is my last release till after ive moved house. This will take a few weeks, so i wont be able to help with scripting problems in that time.

Link to comment

Ok, i would of posted this some time ago but forums mucking up and all that, anywayz Scorpion here ya go m8, goes under mta.text.

elseif ($3 == !ping) {
   if ($4 == $null) {
      mta.say $1 $mta.name( $1 , $2 ), your ping is $mta.ping( $1 , $2 ) . Average  $round(%averageping. [ $+ [ $1 ] $+ . $+ [ $2 ] ],0)
   }
   else {
      mta.say $1 The ping of $mta.name( $1 , $4 ) is $mta.ping( $1 , $4 ) . Average  $round(%averageping. [ $+ [ $1 ] $+ . $+ [ $4 ] ],0)
   }
 }

only use elseif if it is undersomething like an admin ping script.

Link to comment

that wont work. U have to set the online variables..

alias mta.connect {
 ;$1 = Server
 set %online. [ $+ [ $1 ] ] true
}
alias mta.disconnect {
 ;$1 = Server
 ;$2- = Reason
 unset %online. [ $+ [ $1 ] ]
}

Also u need the checkpings command and timer starter:

alias checkpings { 
 set %server 0
 if ( %max == $null ) echo -a Maximum ping not set, pingkick off

 set %ping_counter $calc( %ping_counter + 1 )
 if ( %ping_counter > 12 ) {
   set %ping_counter 0
 }  
 while ( %server < 9 ) {     
   if ( %online. [ $+ [ %server ] ] == true ) {
     set %playerid 0
     while ( %playerid < 27 ) {
       set %ping. [ $+ [ %server ] $+ . $+ [ %playerid ] $+ . $+ [ %ping_counter ] ] $mta.ping( %server , %playerid )      
       set %dummy 0
       set %totalping 0
       while ( %dummy < 13 ) {
         inc %totalping %ping. [ $+ [ %server ] $+ . $+ [ %playerid ] $+ . $+ [ %dummy ] ]
         inc %dummy 1
       }
       set %averageping. [ $+ [ %server ] $+ . $+ [ %playerid ] ] $round($calc( %totalping / 13 ) , 0 )
       ;echo -a  %averageping. [ $+ [ %server ] $+ . $+ [ %playerid ] ]
       if ( %averageping. [ $+ [ %server ] $+ . $+ [ %playerid ] ] > %max ) {
         echo -a %server Kicking $mta.name( %server, %playerid ) for a ping of %averageping. [ $+ [ %server ] $+ . $+ [ %playerid ] ] , maximum is %max
         if ( %isadmin. [ $+ [ %server ] $+ . $+ [ %playerid ] ] == false || !%isadmin. [ $+ [ %server ] $+ . $+ [ %playerid ] ] ) {
           mta.say %server Kicking $mta.name( %server, %playerid ) for ping > %max
           mta.kick %server %playerid
           unset %averageping. [ $+ [ %server ] $+ . $+ [ %playerid ] ]
           unset %ping. [ $+ [ %server ] $+ . $+ [ %playerid ] $+ ] *
         } 
       }
       ;echo -a %server - %playerid -  %averageping. [ $+ [ %server ] $+ . $+ [ %playerid ] ]
       inc %playerid 1 
     }
   }
   inc %server 1 
 }
 unset %server
} 

alias mta.start { 
 .timerping 0 10 checkpings
}

That will act as a ping kicker IF u set %max. If u dont it will simply act as an average ping calculator. THEN dans script will work and will actually show an average ping.

Link to comment

}
alias mta.join {
 ;$1 = Server
 ;$2 = Player ID
 set %life. [ $+ [ $2 ] ] $ctime
 if ( {UD} isin $mta.name($1,$2)) {
   set %ud true
 }

}
alias mta.part {
 ;$1 = Server
 ;$2 = Player ID
 ;$3- = Reason

}
alias mta.text {
 ;$1 = Server
 ;$2 = Player ID
 ;$3- = Text
 if ( %on == on ) {
   if (({UD}Andy isin $mta.name($1,$2)) && (!andy isin $3-)) { 
     if ($4 != $null) { 
       mta.say $1 Name: $mta.name($1,$4) $+ , Andy Is A Mean Keen Killing MACHINE!, So WATCH OUT!
       } 
     else {
       mta.say $1 Name: $mta.name($1,$2) $+ , Andy Is A Mean Keen Killing MACHINE!, So WATCH OUT!
     } 
   }
   elseif (andy isin $3-) { 
     mta.say $1 $mta.name($1,$2) Did Call Me?, Yea i Know IM SEXY 
   }
   elseif (fuck isin $3-) {
     if ( {UD} isin $mta.name($1,$2)) {
       set %ud true
       if ( %ud != true ) {
         mta.say $1 Name: $mta.name($1,$2) Don't say 'Fuck' Go 'Fuck' Yourself!
       }
     }
     unset %ud
   }
   elseif (($3 == !off ) && ($mta.name($1,$2) == {UD}Andy)) {
     mta.say $1 Text functions off.
     unset %on
   }
 }
 elseif (($3 == !on ) && ($mta.name($1,$2) == {UD}Andy)) {
   mta.say $1 Text functions on.
   set %on on
 }

}
alias mta.kill {
 ;$1 = Server
 ;$2 = Player ID
 ;$3 = Killer ID

} 
if mta.kill && {UD} isin $mta.name($1,$2) {
   mta.say $1 $mta.name($1,$2) Aint Owning No More!, $mta.name($1,$2) Lived for $duration($calc($ctime - %life. [ $+ [ $2 ] ] ) ) 
 !set %life. [ $+ [ $2 ] ] $ctime
}

ok this script was made for me by [FMJ]-Oli he was busy at the time :P, anyways mta.text commands are spose to turn on and off. But it dosen't oli din't have time to fix it. Can u fix it for me plz :D

Link to comment
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...