Jump to content

MTA:SA Public Release Script - PRS:1.3 Out Now!


Scooby

Recommended Posts

  • Replies 644
  • Created
  • Last Reply

Top Posters In This Topic

  • 2 weeks later...

Yo Scooby,

First of all, congrats with this #1 script. All the servers are using it :o Sick! Your script is also the only thing that keeps me playing MTA.

Second: I have a new challange for you... I tried myself but it didnt go that well ;) Im not that good @ prs commands and hashes. So heres my question. Is it possible to let players delete maps by voting? So a map will be removed like !remmap after it had 20 votes and when the rating is below 2,5 ? That would be great and saves me alot of time. Would be great if its possible! :!:

Gr Keslertje

Link to comment

its already added, but not exactly like that, also its blanked out.. it looks like this:

      ; used to auto remove maps after 10 votes if map rating is less than 2. (the 10 votes and 2 rating can be changed to suit) 
      ; if ($hget(prsmaprate,%race $+ total) == 10) && ($prs.rating($1) < 2) { 
      ;   !hadd prsstats removed $+ %race removed 
      ;   !hdel prstimes 1stnick $+ %race 
      ;   !hdel prstimes 1st $+ %race 
      ;   mta.text $1 $prs.mode($1) $+ : $mta.race($1) Has Been Auto-Removed 
      ; } 
  

is this any good to u? if so, just remove the semicolons to make it work.

its in 'alias prs.ratemap {'

and works off the player ratings. its set to 10 votes but can be changed to whatever u like, also, set to once the map reaches below a rating of 2, which can also be changed.

Link to comment
its already added, but not exactly like that, also its blanked out.. it looks like this:

      ; used to auto remove maps after 10 votes if map rating is less than 2. (the 10 votes and 2 rating can be changed to suit) 
      ; if ($hget(prsmaprate,%race $+ total) == 10) && ($prs.rating($1) < 2) { 
      ;   !hadd prsstats removed $+ %race removed 
      ;   !hdel prstimes 1stnick $+ %race 
      ;   !hdel prstimes 1st $+ %race 
      ;   mta.text $1 $prs.mode($1) $+ : $mta.race($1) Has Been Auto-Removed 
      ; } 
  

is this any good to u? if so, just remove the semicolons to make it work.

its in 'alias prs.ratemap {'

and works off the player ratings. its set to 10 votes but can be changed to whatever u like, also, set to once the map reaches below a rating of 2, which can also be changed.

Aaaah man! Im trying so hard to think of better things for your script.. After a month I think of this, and u already have it :P Sick man, seems like this script is 100% complete! :o Thank you very much for you fast reply!

Link to comment

hehe no probs, i do have a few ideas for minor updates, but nothing worth worrying about just yet.

i know some people use only DM and ive shown lines to convert, but it could be handy to have a button on the dialog. hardly worth a release just for that tho. also, maybe just a few extra's on the dialog.

maybe i'll look into it if i get some more ideas and/or more time :)

Link to comment
:( sorry, i changed it so that it writes in to ini the mode and then if no map modes are set it reads the ini and what ever it is it sets the map mode to it :) and making a secondry dialog that comes up when you click on the button kinda like the save button asking you to confirm your selection :P
Link to comment

alias prs.ratemap { 
  var %race = $replace($mta.race($1),$chr(32),$chr(45)) 
  if (%race == Unknown || %race == $null) { 
    mta.text $1 Error: Unknown Mapname - Unable To Rate. 
  } 
  else { 
    var %nick = $mta.nick($1,$2) 
    if (!$4) { 
      mta.text $1 $mta.race($1) $+ : Map Rating: $prs.rating($1) $+ /10 
      mta.pm $1 $2 Your Rating For This Map: $prs.playerrating($1,$2) $+ /10 
    } 
    elseif (($4 < 1) || ($4 > 10) || ($4 !isnum)) {  
      mta.pm $1 $2 Error: Invalid Amount (1-10) 
    } 
    else { 
      if ($prs.playerrating($1,$2) != Unrated) { 
        !hadd prsmaprate %race $+ total $calc($iif($hget(prsmaprate,%race $+ total) == $null,0,$v1) - 1) 
        !hadd prsmaprate %race $+ maxvotes $calc($iif($hget(prsmaprate,%race $+ maxvotes) == $null,0,$v1) - $prs.playerrating($1,$2)) 
      } 
      !hadd prsmaprate %nick $+ %race $4 
      !hadd prsmaprate %race $+ total $calc($iif($hget(prsmaprate,%race $+ total) == $null,0,$v1) + 1) 
      !hadd prsmaprate %race $+ maxvotes $calc($iif($hget(prsmaprate,%race $+ maxvotes) == $null,0,$v1) + $4) 
      mta.text $1 %nick Rated $mta.race($1) $+ : $prs.playerrating($1,$2) $+ /10 
      .timer 1 1 mta.text $1 Current Map Rating: $prs.rating($1) $+ /10 - Total Votes: $iif($hget(prsmaprate,%race $+ total) == $null,0,$v1) 
[color=#FF0000]      if ($prs.playerrating($1,$2) != Unrated) .timer 1 3 mta.pm $1 $2 Thank you for voting, you get $calc(75 * $pgs.bidlevel($1,$2)) for your time![/color] 
  
      ; used to auto remove maps after 10 votes if map rating is less than 2. (the 10 votes and 2 rating can be changed to suit) 
      if ($hget(prsmaprate,%race $+ total) == 10) && ($prs.rating($1) < 4) { 
        !hadd prsstats removed $+ %race removed 
        !hdel prstimes 1stnick $+ %race 
        !hdel prstimes 1st $+ %race 
        mta.text $1 $prs.mode($1) $+ : $mta.race($1) Had less then 4 rating so has been Auto-Removed 
      } 
    } 
  } 
} 

Ive got 2 things scooby. The one above, Ive got that auto rating remove script on. But people dont spent time to rate the maps :( So, what is the best way to get people doing something, just give them something in return.. Like cash. I tryed myself, but like I said before, im terrible with hashes, prs etc. Maybe you could have a look at it? They have to get cash only for their first vote, because at my script they get cash for everytime they type !rate :P

Second thing, people are asking 24/7 if it's possible to reset the stats, did you add that too to your script? Like the auto remove? So I only have to take away those ;; to make it work? Hope to hear from ya soon :)

Link to comment

ok try this.

alias prs.ratemap { 
  var %race = $replace($mta.race($1),$chr(32),$chr(45)) 
  if (%race == Unknown || %race == $null) { 
    mta.text $1 Error: Unknown Mapname - Unable To Rate. 
  } 
  else { 
    var %nick = $mta.nick($1,$2) 
    if (!$4) { 
      mta.text $1 $mta.race($1) $+ : Map Rating: $prs.rating($1) $+ /10 
      mta.pm $1 $2 Your Rating For This Map: $prs.playerrating($1,$2) $+ /10 
    } 
    elseif (($4 < 1) || ($4 > 10) || ($4 !isnum)) {  
      mta.pm $1 $2 Error: Invalid Amount (1-10) 
    } 
    else { 
      if (($prs.playerrating($1,$2) == Unrated) && (%pgs == on)) { 
       var %cash = $calc(75 * $pgs.bidlevel($1,$2)) 
       ;change this calc ^ to what u want, i think its a bit high at this... maybe $250? 
        mta.pm $1 $2 Thank you for voting, Bonus $ $+ %cash  For Your Time! 
        pgs.add $mta.nick($1,$2) %cash 
      } 
      elseif ($prs.playerrating($1,$2) != Unrated) { 
        !hadd prsmaprate %race $+ total $calc($iif($hget(prsmaprate,%race $+ total) == $null,0,$v1) - 1) 
        !hadd prsmaprate %race $+ maxvotes $calc($iif($hget(prsmaprate,%race $+ maxvotes) == $null,0,$v1) - $prs.playerrating($1,$2)) 
      } 
      !hadd prsmaprate %nick $+ %race $4 
      !hadd prsmaprate %race $+ total $calc($iif($hget(prsmaprate,%race $+ total) == $null,0,$v1) + 1) 
      !hadd prsmaprate %race $+ maxvotes $calc($iif($hget(prsmaprate,%race $+ maxvotes) == $null,0,$v1) + $4) 
      mta.text $1 %nick Rated $mta.race($1) $+ : $prs.playerrating($1,$2) $+ /10 
      .timer 1 1 mta.text $1 Current Map Rating: $prs.rating($1) $+ /10 - Total Votes: $iif($hget(prsmaprate,%race $+ total) == $null,0,$v1) 
  
      ; used to auto remove maps after 10 votes if map rating is less than 2. (the 10 votes and 2 rating can be changed to suit) 
      if ($hget(prsmaprate,%race $+ total) == 10) && ($prs.rating($1) < 4) { 
        !hadd prsstats removed $+ %race removed 
        !hdel prstimes 1stnick $+ %race 
        !hdel prstimes 1st $+ %race 
        mta.text $1 $prs.mode($1) $+ : $mta.race($1) Had less then 4 rating so has been Auto-Removed 
      } 
    } 
  } 
} 

Secondly, removing stats, i take it u mean totally wiping a players stats?

if so, no, its not added and would take ages to do. theres probably around 2000 individual stats recorded per regular player, so as u can imagine, deleting these fully wouldnt be easy.

why would people want new stats anyway? stats are stats, restarting them hardly makes them real stats,

the only option they have is to modify their name.

adding a full stop or something minor would do it.

Hope this helps. :)

Link to comment
It is working, it only doesnt tell how much cash they get for rating. Its just saying: Bonus for your time... But it adds the money. So the var is working.. You know why it doesnt show it in the pm? I tryed to put int he command too, but thats doesnt work neither

if u use a timer, the $ $+ messes it up, remove the $+ and it'll work with a space.

however: mta.pm $1 $2 Thank you for voting, Bonus $ $+ %cash For Your Time!

should have worked since theres no timer.. if u cant fix it, just remove the $+

Btw, I know its a hard to get those stats resetted, it was just that people keep changing names.. But that means more stats in the stats file, so doesnt that make the mirc very slow?

another reason why the stats are in hash. if they were in an INI, then yes, this script wouldnt even run after a few weeks, but in hash its not a problem. the size of the hashes are still so very small compared to how much they can handle.

for me its usually the other way round, people want to change their names and keep thier stats. (clanhoppers :mrgreen: )

Link to comment
  • 1 month later...

Nice script. In the server of One.cl i have this script hosted 8)

I have a question

I am organizing a competition of MTA, and the winner will be the person who have the biggest score. I need to restart the script, score, the records, the top 3, everything on the server (in the official server of One.cl there will be make the competition), but, i need to not delete the maps register, for example, a map who that is Race, and other who that is Deathmatch. So, what shall I do to restart the script, but not the register of the map?

Thanks =)

Link to comment

the Mode's are stored in Prsstats.txt along with a few other minor things. (located in ur main mIRC dir.)

if u remove/move/delete all the .txt files apart from this one, then restart mirc, all new empty files will be created,

except the map modes.

to be safe, make a backup of all ur .txt files then if u do encounter any problems u still have ur files.

all files are located in ur main mirc dir.

Link to comment
  • 1 month later...

Hi,

I installed this script on my server only for the system banwords when it banned a word and pronounces that there is just 2 MP "Admin" which says "Watch your language ", "% is a banned word. "

I want to change the script so that when a player writes a forbidden word, he's auto muted during 60 seconds with the following message "nick Auto-Muted: 60 secs - Reason: Vulgarity".

Thx very much !

Have a nice xmas

Link to comment
Hi,

I installed this script on my server only for the system banwords when it banned a word and pronounces that there is just 2 MP "Admin" which says "Watch your language ", "% is a banned word. "

I want to change the script so that when a player writes a forbidden word, he's auto muted during 60 seconds with the following message "nick Auto-Muted: 60 secs - Reason: Vulgarity".

Thx very much !

Have a nice xmas

the alias was something written years ago, theres many ways to do this, this might not be too accurate...

just take out the banned word alias, it shouldnt be too hard to edit the text and change the line to mute someone.

something like this:

alias pgs.bannedwords { 
  var %a = 1,%b = $3-,%c = $lines(pgs.banwords.txt) 
  while (%a <= %c) { 
    if ($read(pgs.banwords.txt,%a) isin %b) { 
      mta.pm $1 $2 Auto-Muted: 60 secs - Reason: Vulgarity 
      mta.mute $1 $2  
     .timer 1 60 mta.unmute $1 $2 
      !halt 
    } 
    !inc %a 
  } 
} 

theres a few commands that add/remove words that u will need to take out too, im sure u can find them.

i think lil toady posted a banwords script on the forum,

u might be better finding that one out, it might be a bit more like what ur looking for.

Link to comment

Thank you very much but I would like to keep the basic script, and just added the mute than 60 seconds and the sentence "nick Auto-Muted: 60 secs - Reason: Vulgarity".

alias pgs.bannedwords { 
  var %a = 1,%b = $3-,%c = $lines(pgs.banwords.txt) 
  while (%a <= %c) { 
    if ($read(pgs.banwords.txt,%a) iswm %b) { 
      mta.pm $1 $2 Watch Your Language! 
      .timer 1 2 mta.pm $1 $2 $+(',$read(pgs.banwords.txt,%a),') Is A Banned Word! 
      !hadd pgstemp cuss $+ $2 $rand(100,1000) 
      .timercuss $+ $2 1 60 !hdel pgstemp cuss $+ $2 
    } 
    !inc %a 
  } 
} 

Thanks. :)

Link to comment

Ok, I made this. I hope it is what you are looking for.

  
alias banned.word.check { 
  if ($3- isin $readini(bannedwords.ini,BANNED,WORDS)) { 
    mta.pm $1 $2 The Word " $+ $3- $+ " Is Banned On This Server. 
    mta.pm $1 $2 You Have Been Auto-Muted For 60 Seconds!!! 
    mta.text $1 $mta.nick($1,$2) Has Been Auto-Muted For 60 Seconds. Reason: Vulgarity. 
    .timer 1 60 mta.unmute $1 $2 
    mta.mute $1 $2 
  } 
}  
alias ban.word { 
  if ($mta.level($1,$2) < 4) mta.pm $1 $2 You Can Only Ban A Word IF You Are Logged In As A RCON Admin Level 4 Or Higher. 
  else { 
    var %wban = $iif($readini(bannedwords.ini,BANNED,WORDS),$v1) 
    if ($4  == $null) mta.pm $1 $2 Error - No Word Entered. 
    else { 
      !writeini -n bannedwords.ini BANNED WORDS $iif(%wban,$v1 $+ $chr(44) $+ $chr(32)) $+ $4 
      mta.pm $1 $2 The Word " $+ $4 $+ " Has Been Added To The Banned Word List. 
    } 
  } 
} 
on *:SIGNAL:mta.command: { 
  if ($3 == !banword) ban.word $1- 
} 
on *:SIGNAL:mta.text: { 
  banned.word.check $1- 
} 
  

Link to comment

I dont understand what you are asking for.....

You want a !mute player command aswell?

If that's the case, here it is.

  
alias get.id {  
  var %id = 0   
  while (%id <= 31) { 
    if ($+(*,$2,*) iswm $mta.nick($1,%id)) !return %id 
    !inc %id 
  }   
  !return -1 
} 
alias banned.word.check { 
  if ($3- isin $readini(bannedwords.ini,BANNED,WORDS)) { 
    mta.pm $1 $2 The Word " $+ $3- $+ " Is Banned On This Server. 
    mta.pm $1 $2 You Have Been Auto-Muted For 60 Seconds!!! 
    mta.text $1 $mta.nick($1,$2) Has Been Auto-Muted For 60 Seconds. Reason: Vulgarity. 
    .timer 1 60 mta.unmute $1 $2 
    mta.mute $1 $2 
  } 
}  
alias ban.word { 
  if ($mta.level($1,$2) < 4) mta.pm $1 $2 You Can Only Ban A Word IF You Are Logged In As A RCON Admin Level 4 Or Higher. 
  else { 
    var %wban = $iif($readini(bannedwords.ini,BANNED,WORDS),$v1) 
    if ($4  == $null) mta.pm $1 $2 Error - No Word Entered. 
    else { 
      !writeini -n bannedwords.ini BANNED WORDS $iif(%wban,$v1 $+ $chr(44) $+ $chr(32)) $+ $4 
      mta.pm $1 $2 The Word " $+ $4 $+ " Has Been Added To The Banned Word List. 
    } 
  } 
} 
alias mute { 
  if ($mta.level($1,$2) < 1) mta.pm $1 $2 You Can Only Mute A Player IF You Are Logged In As A RCON Admin Level 1 Or Higher. 
  elseif (%id == -1) mta.pm $1 $2 Error - Invalid Nick. 
  elseif ($4 == $null) mta.pm $1 $2 Error - Nick Not Present. You Must Enter A Nick.   
  else { 
    mta.mute $1 $id 
    mta.pm $1 $id You Have Been Muted By $mta.nick $1 $2  
  } 
} 
alias unmute { 
  if ($mta.level($1,$2) < 1) mta.pm $1 $2 You Can Only Un-Mute A Player IF You Are Logged In As A RCON Admin Level 1 Or Higher. 
  elseif (%id == -1) mta.pm $1 $2 Error - Invalid Nick. 
  elseif ($4 == $null) mta.pm $1 $2 Error - Nick Not Present. You Must Enter A Nick.   
  else { 
    mta.unmute $1 $id 
    mta.pm $1 $id You Have Been Un-Muted By $mta.nick $1 $2  
  } 
} 
alias temp.mute { 
  if ($mta.level($1,$2) < 1) mta.pm $1 $2 You Can Only Temp-Mute A Player IF You Are Logged In As A RCON Admin Level 1 Or Higher. 
  elseif (%id == -1) mta.pm $1 $2 Error - Invalid Nick. 
  elseif ($4 == $null) mta.pm $1 $2 Error - Nick Not Present. You Must Enter A Nick.   
  else { 
    .timer 1 60 mta.unmute $1 $id 
    mta.mute $1 %id 
    mta.pm $1 $id You Have Been Temp-Muted By $mta.nick $1 $2  
  }         
} 
  on *:SIGNAL:mta.command: { 
  if ($3 == !banword)  ban.word $1- 
  elseif ($3 == !mute) mute $1- 
  elseif ($3 == !unmute) unmute $1- 
  elseif ($3 == !tempmute) temp.mute $1- 
} 
on *:SIGNAL:mta.text: { 
  banned.word.check $1- 
} 
  

Ok, try that, its not tested, wrote it in reply box lol.

If that's not what you wanted, then I dont understand your request...

Link to comment

Sorry if you do not understand my request too, but actually I just want to keep the lines below, and added 60 seconds mute and sentence in the chat room "nick Auto-Muted 60 seconds. Reason: Vulgarity"

        alias pgs.bannedwords { 
          var %a = 1,%b = $3-,%c = $lines(pgs.banwords.txt) 
          while (%a <= %c) { 
            if ($read(pgs.banwords.txt,%a) iswm %b) { 
              mta.pm $1 $2 Watch Your Language! 
              .timer 1 2 mta.pm $1 $2 $+(',$read(pgs.banwords.txt,%a),') Is A Banned Word! 
              !hadd pgstemp cuss $+ $2 $rand(100,1000) 
              .timercuss $+ $2 1 60 !hdel pgstemp cuss $+ $2 
            } 
            !inc %a 
          } 
        } 

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...