[Pomoc] Pojas system

Započeo ProGlide26, Mart 16, 2014, 20:23:44 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: Gamemod (nebitno koji je)
Detaljan opis problema: Pa sad neznam kako da napravim da ono kad je igrac u kolima pa kad ukuca /pojas da ono izbaci u chatu taj i taj veze pojas ili stavlja pojas kako vec, da to izbaci i njemu i svima koji su u okolini, a da njemu pored toga i pise stavili ste pojas, isto tako da kuca /pojas pa da pise taj i taj je skinuo pojas, a da njemu isto to pise i da mu pise skinuli ste pojas ?
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /

Toda svima ispise u blizini, koristi proxdetector, a da njemu ispise koristi sendclientmessage, nadam se da si razumeo :)
RESPECT :
Vegas & C++

Nisam bas razumeo, neznam kako to da napravim

Jel mi moze neko napraviti to ili da mi kaze kako da uradim ?

Ovako, za pocetak,
forward Prox(Float:radi, playerid, string[],color);
public Prox(Float:radi, playerid, string[],color)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
//radi = 2.0; //Trigger Radius
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
if(!BigEar[i])
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SCM(i, color, string);
}

}
else
{
SCM(i, color, string);
}
}
}
}//not connected
return 1;
}


Zatim, dodas u komandi /pojas ovo :
CMD:pojas(playerid, params[])
{
    new string[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s stavlja pojas.", name, string); // ovde stavi sta hoces da ti pise
    Prox(20.0, playerid, string, BELA); // 20.0 radius od 20 metara
    SendClientMessage(playerid, -1, "Stavili ste pojas");
    return 1;
}


Nadam se da ti je sad malo jasnije :)
Poslednja Izmena: Mart 16, 2014, 21:39:29 POSLE PODNE od Cimbur
RESPECT :
Vegas & C++

Znaci meni ce sad ovako izgledati cela skripta ?

forward Prox(Float:radi, playerid, string[],color);
public Prox(Float:radi, playerid, string[],color)
{
   if(IsPlayerConnected(playerid))
   {
      new Float:posx, Float:posy, Float:posz;
      new Float:oldposx, Float:oldposy, Float:oldposz;
      new Float:tempposx, Float:tempposy, Float:tempposz;
      GetPlayerPos(playerid, oldposx, oldposy, oldposz);
      //radi = 2.0; //Trigger Radius
      for(new i = 0; i < MAX_PLAYERS; i++)
      {
         if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
         {
            if(!BigEar)
            {
               GetPlayerPos(i, posx, posy, posz);
               tempposx = (oldposx -posx);
               tempposy = (oldposy -posy);
               tempposz = (oldposz -posz);
               //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
               if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
               {
                  SCM(i, color, string);
               }
               
            }
            else
            {
               SCM(i, color, string);
            }
         }
      }
   }//not connected
   return 1;
}
CMD:pojas(playerid, params[])
{
    new string[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s stavlja pojas.", name, string); // ovde stavi sta hoces da ti pise
    Prox(20.0, playerid, string, BELA); // 20.0 radius od 20 metara
    SendClientMessage(playerid, -1, "Stavili ste pojas");
    return 1;
}

Pa forward i public dodaj kod ostalih, znaci vidi gde ti oni stoje tu ih i dodaj, sad ne znam da li koristis strcmp ili ZCMD ili YCMD, to sam sebi prilagodi
RESPECT :
Vegas & C++

Dobro, tu sad imam komandu kad stavljam pojas, ali u ovom kodu nema da se skida pojas na komandu /pojasoff .....

Pa uradi sve isto, samo umesto CMD:pojas stavi CMD:skinipojas, promeni tekst i to je to
RESPECT :
Vegas & C++

Dobro, ja sam sad ubacio onaj kod ceo, i sad mi je izbacilo 8 errora, dosta njih je bilo:
undefined IsPlayerConnected
undefined GetPlayerPos

I jos tako neki undefined errori, i sad ja na vrhu kod ubacim

#define IsPlayerConnected
#define GetPlayerPos

I te ostale definove sto sam u errorima imao za undefined.
Uradio sam compile, i sad imam 2 errora, a evo tih errora:

error 029: invalid expression, assumed zero
error 029: invalid expression, assumed zero

Ta dva ista errora na razlicitim linijama.
Sta da uradim da ih popravim ?


Zasto definises

#define IsPlayerConnected
#define GetPlayerPos
?

To su ti defaulti

Zato što nisam znao kako da rešim taj problem sa errorima pa sam to pokušao .