[pomoc]hit komanda ne radi


Započeo Arnel_Bp, Maj 23, 2014, 13:03:12 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: moja od 0
Detaljan opis problema: Gledao sam Hit komandu, ali ne radi nzm sta ju je problem
Dio skripte:
CMD:hit(playerid, params[])
{
    if(Ulogiran[playerid] == 0) return SendClientMessage(playerid,  0xFF0000FF, "Moras se spawnati da bi mogao da koristis ovu komandu");
    if(gTeam[playerid] == TEAM_HITMAN) return SendClientMessage(playerid,  0xFF0000FF, "Ti si placeni ubica, i ne mozes da platis nekoga...");
	new id,novac,hitmoney,string[126];
	new hittername[24];
    new hiteename[24];
	if(sscanf(params, "ui", id,novac)) return SCM(playerid,  0xFF0000FF, "Koristi: /hit [id] [novac]");
	if(hitmoney <= 6999 || hitmoney > 1000001)  return SCM(playerid,  0xFF0000FF, "Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ");
    if(GetPlayerMoney(playerid) < hitmoney) return SCM(playerid,  0xFF0000FF, "Vi nemozete priustiti da platite $%d za placenog ubicu na %s(%d)",hitmoney,hiteename,id);
	if(!IsPlayerConnected(id)) return SCM(playerid,  0xFF0000FF, "ID igraca koji ste unijeli nije online.");
    if(Ulogiran[id] == 0) return SendClientMessage(playerid,  0xFF0000FF, "Igrac %s(%d) je mrtav, nemozes platiti na njega placenog ubicu!",hiteename,id);
	if(HasHitOnHim[id] >= 1) return SCM(playerid,  0xFF0000FF, "%s(%d) je vec placen da ga ubiju placene ubice. Trenutno ne mozes platiti hit na ovoga igraca.",hiteename,id);
    SendClientMessage(playerid, 0xA9A9A9AA, "|_Platio si da ubiju_|");
    format(string, sizeof(string), "Ti si platio placenog ubicu da ubiju %s(%d) za $%d",hiteename,id,hitmoney);
    SendClientMessage(playerid, 0x00C7FFAA, string);
    SendClientMessage(id, 0xA9A9A9AA, "|_Obavestenje_|");
    SendClientMessage(id, 0x00C7FFAA, "Na tebe je placen placeni ubica da te ubiju. Cuvaj se!");
    format(string, sizeof(string), "%s(%d) je platio placenog ubicu da ubiju %s(%d) za $%d",hittername,playerid,hiteename,id,hitmoney);
    printf("%s",string);
    return 1;
    }


ima warninge na sledece linije sa sledecim teksto

if(GetPlayerMoney(playerid) < hitmoney) return SCM(playerid,  0xFF0000FF, "Vi nemozete priustiti da platite $%d za placenog ubicu na %s(%d)",hitmoney,hiteename,id);

if(Ulogiran[id] == 0) return SendClientMessage(playerid,  0xFF0000FF, "Igrac %s(%d) je mrtav, nemozes platiti na njega placenog ubicu!",hiteename,id);


if(HasHitOnHim[id] >= 1) return SCM(playerid,  0xFF0000FF, "%s(%d) je vec placen da ga ubiju placene ubice. Trenutno ne mozes platiti hit na ovoga igraca.",hiteename,id);

warning 202: number of arguments does not match definition


i kad kucam u igricu /hit pise mi /hit [id] [novac] Ali kad kucam koji bilo broj na neki id np. 10000 pise mi tekst

Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000

Neke slike/video za lakse dobivanje pomoci(neobavezno)://
Poslednja Izmena: Maj 23, 2014, 13:07:03 POSLE PODNE od Arnel_Bp

warning na prvoj liniji jeste sto SCM nepodrzava string parametar
kao i na drugom i trecem warningu

koristi formatiran string ili SCMF izvedenicu...
Poslednja Izmena: Maj 23, 2014, 13:39:55 POSLE PODNE od [SF]C++
69

mozes li mi ispraviti to ili malo bolje obijasniti ? molim te...

stock SCMF(playerid,color,fstring[],{Float, _}:...)
{
   new n=(numargs()-3)*4;
   if(n)
   {
      new message[128],arg_start,arg_end;
      #emit CONST.alt                fstring
      #emit LCTRL                    5
      #emit ADD
      #emit STOR.S.pri               arg_start
      #emit LOAD.S.alt               n
      #emit ADD
      #emit STOR.S.pri               arg_end
      do
      {
         #emit LOAD.I
         #emit PUSH.pri
         arg_end-=4;
         #emit LOAD.S.pri           arg_end
      }
      while(arg_end>arg_start);
      #emit PUSH.S                   fstring
      #emit PUSH.C                   255
      #emit PUSH.ADR                 message
      n+=4*3;
      #emit PUSH.S                   n
      #emit SYSREQ.C                 format
      n+=4;
      #emit LCTRL                    4
      #emit LOAD.S.alt               n
      #emit ADD
      #emit SCTRL                    4
      return SCM(playerid,color,message);
   }
   else return SCM(playerid,color,fstring);
}


kad u nekom slanju koristis string parametar mozes koristit formatiranje stringa ili ovu funkciju iznad znaci ovako

SCMF(playerid,boja,"string");
69

Joy

*

Citat: Arnel_Bp poslato Maj 23, 2014, 13:51:02 POSLE PODNE
mozes li mi ispraviti to ili malo bolje obijasniti ? molim te...
Umjesto ovoga
SCM(playerid,  0xFF0000FF, "Vi nemozete priustiti da platite $%d za placenog ubicu na %s(%d)",hitmoney,hiteename,id);


stavis
new nekistring[200];

format(nekistring,sizeof(nekistring), "Vi nemozete priustiti da platite $%d za placenog ubicu na %s(%d)",hitmoney,hiteename,id);
SCM(playerid, 0xFF0000FF, nekistring);
Poslednja Izmena: Maj 23, 2014, 13:57:09 POSLE PODNE od Joy

Zasto kad kucam u igricu /hit pise mi /hit [id] [novac] Ali kad kucam koji bilo broj na neki id np. 10000 pise mi tekst

Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000


a tamo je stavljeno

if(hitmoney <= 6999 || hitmoney > 1000001)  return SCM(playerid,  0xFF0000FF, "Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ");


mozeli kakva pomoc za ovo ? :) i hvala C++ za SCMF :P

Joy

*

Citat: Arnel_Bp poslato Maj 23, 2014, 13:57:56 POSLE PODNE
Zasto kad kucam u igricu /hit pise mi /hit [id] [novac] Ali kad kucam koji bilo broj na neki id np. 10000 pise mi tekst

Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000


a tamo je stavljeno

if(hitmoney <= 6999 || hitmoney > 1000001)  return SCM(playerid,  0xFF0000FF, "Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ");


mozeli kakva pomoc za ovo ? :) i hvala C++ za SCMF :P
To probaj ovako
if(hitmoney <= 6999 && hitmoney > 1000001)  return SCM(playerid,  0xFF0000FF, "Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ");


if(hitmoney < 7000 || hitmoney > 1000000)  return SCM(playerid,  0xFF0000FF, "Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ");


i kako molim te u sscanf koristis novac a proveravas hitmoney koji nigde nekoristis
Poslednja Izmena: Maj 23, 2014, 14:01:56 POSLE PODNE od [SF]C++
69

Joy

*

Citat: [SF]C++ poslato Maj 23, 2014, 14:00:37 POSLE PODNE


if(hitmoney < 7000 || hitmoney > 1000000)  return SCM(playerid,  0xFF0000FF, "Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ");

ma zbunim se kako brzam,sad sam mu htjeo to napisati

Problem je u tome sto on u sscanf koristi novac a proverava hitmoney
69

ovo sto mi je Joy  kada kucam /hit id pare pise mi ovako ovo, mogo sam sa kolko bilo para da ga hitujem

[14:00:25] |_Platio si da ubiju_|

[14:00:25] Ti si platio placenog ubicu da ubiju (0) za $0

[14:00:25] |_Obavestenje_|

[14:00:25] Na tebe je placen placeni ubica da te ubiju. Cuvaj se!



A C++ sto si mi ti dao, kolko god para da stavim hi pise mi  Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ....

provera koju sam ti dao proverava da li si stavio manje od 7000 i vise od 1000000 u tom slucaju salje poruku
Poslednja Izmena: Maj 23, 2014, 14:05:31 POSLE PODNE od [SF]C++
69

Joy

*

Citat: Arnel_Bp poslato Maj 23, 2014, 14:03:28 POSLE PODNE
ovo sto mi je Joy  kada kucam /hit id pare pise mi ovako ovo, mogo sam sa kolko bilo para da ga hitujem

[14:00:25] |_Platio si da ubiju_|

[14:00:25] Ti si platio placenog ubicu da ubiju (0) za $0

[14:00:25] |_Obavestenje_|

[14:00:25] Na tebe je placen placeni ubica da te ubiju. Cuvaj se!



A C++ sto si mi ti dao, kolko god para da stavim hi pise mi  Najmanje sto mozete da uplatite na nekoga je $7000 a najvise $1000000 ....
Probaj onda dvije provjere ubacit
if(hitmoney < 7000)  return SCM(playerid,  0xFF0000FF, "Najmanje sto mozete da uplatite na nekoga je $7000");

if(hitmoney > 1000000)  return SCM(playerid,  0xFF0000FF, "Najvise $1000000 ");
Poslednja Izmena: Maj 23, 2014, 14:06:01 POSLE PODNE od Joy

Citat: [SF]C++ poslato Maj 23, 2014, 14:04:55 POSLE PODNE
provera koju sam ti dao proverava da li si stavio manje od 7000 i vise od 1000000 u tom slucaju salje poruku

znam pa zato mi nije jasno a Joy sad mi izbacuje kolko god da kucam milion ili 7000 ili 100$ pise da ne mogu manje od 7000 nzm sta je ovo....

Joy

*

Citat: Arnel_Bp poslato Maj 23, 2014, 14:08:11 POSLE PODNE
Citat: [SF]C++ poslato Maj 23, 2014, 14:04:55 POSLE PODNE
provera koju sam ti dao proverava da li si stavio manje od 7000 i vise od 1000000 u tom slucaju salje poruku

znam pa zato mi nije jasno a Joy sad mi izbacuje kolko god da kucam milion ili 7000 ili 100$ pise da ne mogu manje od 7000 nzm sta je ovo....
Jooj zbunjujuce je sta da ti kazem izmjenjuj te strelice  :D