• Welcome to Vice City Multiplayer.
 
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - ricardo

#1
I was playing LastManStanding on Urban Paradise City and noticed they had a cool countdown bar.

Instead of the traditional "3, 2, 1, go go go" countdown, they made a graphical replacement.

Here is mine, based on theirs.

SCREENSHOT:




CODE:
GFXBar.mrc



I included an example on howto use it, just load GFXBar.mrc, jump ingame and type !GFXBar
#2
mIRC/pawn Scripting / IP Locator (Country Lookup)
January 18, 2010, 09:22:48 AM
Here is an IP Locator (Country Lookup) using sockets


dialog IP_Locator {
  title "Ip Locator"
  size -1 -1 96 144
  option dbu
  text "Country:", 1, 0 8 33 8, right
  text "Region:", 2, 0 16 33 8, right
  text "City:", 3, 0 24 33 8, right
  text "Certainty:", 4, 0 32 33 8, right
  text "Latitude:", 5, 0 40 33 8, right
  text "Longitude:", 6, 0 48 33 8, right
  text "Time Zone:", 7, 0 56 33 8, right
  text "Population:", 8, 0 64 33 8, right
  text "Proxy?:", 9, 0 72 33 8, right
  text "Currency:", 10, 0 80 33 8, right
  text "", 11, 40 8 57 8
  text "", 12, 40 16 57 8
  text "", 13, 40 24 57 8
  text "", 14, 40 32 57 8
  text "", 15, 40 40 57 8
  text "", 16, 40 48 57 8
  text "", 17, 40 56 57 8
  text "", 18, 40 64 57 8
  text "", 19, 40 72 57 8
  text "", 20, 40 80 57 8
  text "IP Address:", 21, 0 120 33 8, right
  edit "", 22, 40 120 54 10
  button "Find", 23, 65 131 29 12
  text "", 24, 0 0 97 8, center
  icon 25, 40 92 47 23
  text "Flag:", 26, 0 98 33 8, right
  check "Check for Drones", 27, 2 131 58 10
}
On *:dialog:Ip_Locator:Sclick:23: {
  if ($gettok($did(ip_locator,22).text,0,46) != 4) {
    did -a Ip_Locator 24 You must enter a ip address
    .timer 1 3 did -a Ip_Locator 24
    return
  }
  else {
    did -a Ip_Locator 24
    IpLocator $did(ip_locator,22).text
    if ($did(Ip_Locator,27).state == 1) { dronebl $did(ip_locator,22).text }
  }
}
On *:dialog:Ip_Locator:init:*: {
  IpLocator $ip
  did -a Ip_locator 22 $ip
}
alias IpLocator.timeout {
  if (%IpLocator.chan == dialog) && ($dialog(IP_Locator)) {
    did -a Ip_locator 24 Connection Timed Out!
    .timer 1 3 did -a Ip_Locator 24
  }
  else { echo -a Connection Timed Out! }
  IpLocator.clear
}
alias IpLocator.clear {
  unset %IpLocator*
  sockclose IpLocator
  .timer-IpLocator off
  halt
}
alias IpLocator {
  set %IpLocator.nick $me
  set %IpLocator.chan dialog
  sockclose IpLocator
  set %IpLocatorurl $+(/IpLocator.htm?GetLocation&IpAddress=,$1)
  set %IpLocatorsite www.geobytes.com
  sockopen IpLocator %IpLocatorsite 80
  .timer-IpLocator 1 10 IpLocator.timeout
}
on *:sockopen:IpLocator: {
  sockwrite -n $sockname GET %IpLocatorurl HTTP/1.1
  sockwrite -n $sockname Host: %IpLocatorsite $+ $CRLF $+ $CRLF
}
on *:sockread:IpLocator: {
  if ($sockerr > 0) { echo -a IpLocator >sock error< |  IpLocator.clear }
  else {
    var %IpLocatorvar |  sockread %IpLocatorvar
    if (<td align="right">Country</td> isin %IpLocatorvar) { set %IpLocator.Country on }
    if (<td align="right">Region</td> isin %IpLocatorvar) { set %IpLocator.Region on }
    if (<td align="right">City</td> isin %IpLocatorVar) { set %IpLocator.city on }
    if (<td align="right">Certainty</td> isin %IpLocatorvar) { set %IpLocator.certainty on }
    if (<td align="right">Latitude</td> isin %IpLocatorvar) { set %IpLocator.latitude on }
    if (<td align="right">Longitude</td> isin %IpLocatorvar) { set %IpLocator.longitude on }
    if (<td align="right">TimeZone</td> isin %IpLocatorvar) { set %IpLocator.timezone on }
    if (<td align="right">Population</td> isin %IpLocatorvar) { set %IpLocator.population on }
    if (<td align="right">Is proxy</td> isin %IpLocatorvar) { set %IpLocator.proxy on }
    if (<td align="right">Currency</td> isin %IpLocatorvar) { set %IpLocator.currency on }
    if (<td align="right">Flag</td> isin %IpLocatorvar) { set %Iplocator.flag on }
    if (<input name="ro-no_bots_pls isin %IpLocatorvar) {
      if (%IpLocator.Country == on) { set %IpLocator.country $between(%IpLocatorvar,value="," size,1) }
      if (%IpLocator.region == on) { set %IpLocator.region $between(%IpLocatorvar,value="," size,1) }
      if (%IpLocator.City == on) { set %IpLocator.city $between(%IpLocatorvar,value="," size,1) }
      if (%IpLocator.certainty == on) { set %IpLocator.certainty $between(%IpLocatorvar,value="," size,1) }
      if (%IpLocator.latitude == on) { set %IpLocator.latitude $between(%IpLocatorvar,value="," size,1) }
      if (%IpLocator.longitude == on) { set %IpLocator.longitude $between(%IpLocatorvar,value="," size,1) }
      if (%IpLocator.timezone == on) { set %IpLocator.timezone $between(%IpLocatorvar,value=",",1) }
      if (%IpLocator.population == on) { set %IpLocator.population $between(%IpLocatorvar,value=",",1) }
      if (%IpLocator.proxy == on) { set %IpLocator.proxy $between(%IpLocatorvar,value=",",1) }
      if (%IpLocator.currency == on) { set %IpLocator.currency $between(%IpLocatorvar,value="," size,1) }
    }
    if (<a href="FreeServices.htm"> isin %IpLocatorvar) && (%IpLocator.flag == on) {
      var %flaglink $between(%IpLocatorvar,<a href="FreeServices.htm"><img border="0" src="," width="107",1)
      getflag %flaglink $nopath(%flaglink)
      if (%IpLocator.chan == dialog) && ($dialog(IP_Locator)) {
        did -a IP_Locator 11 %IpLocator.country
        did -a IP_Locator 12 %IpLocator.region
        did -a IP_Locator 13 %IpLocator.city
        did -a IP_Locator 14 %IpLocator.certainty $+ %
        did -a IP_Locator 15 %IpLocator.latitude
        did -a IP_Locator 16 %IpLocator.longitude
        did -a IP_Locator 17 %IpLocator.timezone
        did -a IP_Locator 18 %IpLocator.population
        did -a IP_Locator 19 %IpLocator.proxy
        did -a IP_Locator 20 %IpLocator.currency
        .timer 1 4 did -g IP_Locator 25 $qt($+($mircdir,flags\,$nopath(%flaglink)))
      }
      IpLocator.clear
    }
  }
}
alias -l IP_Locator {
  if ($dialog(IP_Locator)) { dialog -v IP_Locator IP_Locator }
  else { dialog -m IP_Locator IP_Locator }
}
menu * {
  IP Locator:IP_Locator
}
Alias -l GetFlag {
  if ($isfile($+(flags\,$2))) { return }
  set %Getflag.Site $gettok($remove($1,http://),1,47)
  set %Getflag.URL $remove($1,$gettok($1,1,47),$gettok($1,2,47),//)
  set %Getflag.PicName $2
  if (!$isdir($+($mircdir,flags))) { mkdir flags }
  sockclose Getflag
  sockopen Getflag %Getflag.site 80
}
On *:sockopen:Getflag:{
  sockwrite -nt $sockname GET %Getflag.url HTTP/1.0
  sockwrite $sockname Host: %Getflag.site $+ $crlf $+ $crlf
}
On *:sockread:Getflag:{
  if (!$sock($sockname).mark) {
    var %Getflag.var | sockread %Getflag.var
    if (%Getflag.var == $null) { sockmark $sockname 1 }
  }
  else {
    sockread &flag
    bwrite $qt($+($mircdir,flags\,%Getflag.picname)) -1 -1 &flag
  }
}
On *:sockclose:Getflag:{
  unset %Getflag.*
}
;alias by Gummo
alias -l between {
  noop $regex($1,/\Q $+ $2 $+ \E(.*?)\Q $+ $3 $+ \E/gi)
  return $regml($4)
}
alias -l httpstrip {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
  return %x
}
alias -l dronebl {
  .enable #dronecheck
  var %dronebl $gettok($1,4,46) $+ . $+ $gettok($1,3,46) $+ . $+ $gettok($1,2,46) $+ . $+ $gettok($1,1,46) $+ .dnsbl.dronebl.org
  set %dns.ip $1
  .dns %dronebl
}
#dronecheck off
On 1:DNS: {
  if ($dialog(IP_Locator)) {
    if ($dns(0)) { did -a Ip_Locator 24 $qt(%dns.ip) Is a Drone! | .timer 1 2 did -a IP_Locator 19 True }
    else { did -a Ip_Locator 24 $qt(%dns.ip) is Not a Drone | .timer 1 2 did -a IP_Locator 19 False }
  }
  unset %dns.ip
  .disable #dronecheck
  halt
}
#dronecheck End

#3
Support / MORE R2 BUGS
January 17, 2010, 04:20:56 AM
These are two R1 bugs that still exist in R2

1. stubby bug (you know it)

2. spawn from spectating bug - Your hp is set to 43 when you spawn whilst spectating.

eh? you knew about these how long ago ? i would estimate 3 years, maybe more.
#4
mIRC/pawn Scripting / Pawn data storage?
January 17, 2010, 01:56:07 AM
Hi,

would someone please tell me what/all methods of permanently storing data we have in pawn, i can only see "Dini.inc" (ini files).

thankyou
#5
As you know, using mIRC's !writini command will add the item and its value to the end of the section, causing the values to be unordered.

By using the filter command, we can retain the numerical sequence of the "level" (value) every time a "command" (item) is added, replaced or removed.



/*
** NOTE:
**
** The following alias adds, replaces or removes
** a command and its admin level in cmd.ini,
** keeping the levels in numerical sequence.

** Syntax:
** SetCommandLevel <NewCmd> <NewCmdLvl>

** Examples:
** SetCommandLevel !givecash 5 ; Add or Replace
** SetCommandLevel !givecash DEL  ; Delete
*/

alias SetCommandLevel {

  var %NewCmd = $1, %NewCmdLvl = $2

  var %file = cmd.ini, %section = COMMANDS

  ; Create Hidden Window
  window -h @cmds

  var %a = 1, %b = 2, %c = 1, %t

  ; Total Commands
  %t = $ini(%file,%section,0)

  ; Hold %file in buffer
  while (%a <= %t) { echo @cmds $ini(%file,%section,%a) $readini(%file,%section,$ini(%file,%section,%a)) | inc %a }

  ; Insert, Replace or remove
  ; New-Command to buffer
  if ($2 isnum) {
    $iif( $fline(@cmds,$+(*,%NewCmd,*),1), !rline @cmds $fline(@cmds,$+(*,%NewCmd,*),1) %NewCmd %NewCmdLvl, !aline @cmds %NewCmd %NewCmdLvl )
  }
  elseif ($2 == DEL) { dline @cmds $fline(@cmds,$+(*,%NewCmd,*),1) }

  ; Remove original section/values
  !remini %file %section

  ; Readd Section
  !write -il1 %file $+([,%section,])

  ; Sort by level
  filter -wwcut 2 32 @cmds @cmds

  ; Loop through buffer and write back contents
  while $line(@cmds,%c) { var %cmd = $gettok($v1,1,32), %lvl = $gettok($v1,2,32) | !write -il $+ %b %file $+(%cmd,=,%lvl) | !inc %b | !inc %c }

  ; Close window
  window -c @cmds
}



By having knowledge of string manipulation, we can also pass multiple values to our custom procedure.


alias SetMultipleCmds {
  ; Commands to add (separated by space)
  var %a, %strCmds = !buycar=1 !sellcar=1 !mycars=1

  ; Loop through strCmds and pass to "SetCommandLevel"
  while (%a <= $numtok(%strCmds,32)) { SetCommandLevel $replace($gettok(%strCmds,%a,32),$chr(61),$chr(32)) | inc %a }

  ; Remove multipe commands from cmd.ini
  ; while (%a <= $numtok(%strCmds,32)) { SetCommandLevel $replace($gettok(%strCmds,%a,32),$mid($gettok(%strCmds,%a,32),$pos($gettok(%strCmds,%a,32),=), $len($gettok(%strCmds,%a,32))), $chr(32) DEL) | inc %a }
}