Korisne komande

Započeo Correlli, Maj 28, 2010, 16:52:57 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 12 gostiju pregledaju ovu temu.

Evo jedne komande koju sam napravio možda nekome pomogne...Da si olakšate skriptanje itd itd...

COMMAND:setpos(playerid,params[]) // by [H]265
{
new
 Float:Pos[4],
 id,
 interior,
 vw,
 ime[MAX_PLAYER_NAME],
 string[128];
       #define SCM(%0,%1,%2) SendClientMessage(%0,%1,%2)
if(sscanf(params,"ufffdd",id,Pos[1],Pos[2],Pos[3],interior,vw)) return SCM(playerid,siva,"KORISTI: /setpos [playerid] [PosX] [PosY] [PosZ] [Interior] [VirtualWorld].");
else if(id == INVALID_PLAYER_ID) return SCM(playerid, siva,"SERVER. Igrac sa tim ID-om nije online.");
else
{
GetPlayerName(id, ime, MAX_PLAYER_NAME);

SetPlayerPos(playerid, Pos[1], Pos[2], Pos[3]);
SetPlayerInterior(playerid, interior);
SetPlayerVirtualWorld(playerid, vw);

format(string, sizeof string, "SERVER: Admin '%s' te premjestio na drugu lokaciju: INTERIOR: %d | VIRTUAL: %d",ime,interior,vw);
SCM(id, plava, string);

SCM(playerid, plava, "Uspjesno si promjenio kordinate igracu!");
}
       return true;
}


PRIMJER:

/setpos 0 2200.3210 -1453.3831 24.5379 0 0

i to će igraća sa ID- 0 prebaciti na kordinate 2200.3210,-1453.3831,24.5379 i interior i virtual world će mu se setati na 0


DEFINE BOJA:

 new
     plava = 0x00B9FFFF,
      siva = 0xAAAAAAFF;
Poslednja Izmena: Maj 13, 2011, 16:44:31 POSLE PODNE od [H]265
Kristijan Stipić

poznaticovik

Citat: [H]265 poslato Maj 13, 2011, 16:33:27 POSLE PODNE
Evo jedne komande koju sam napravio možda nekome pomogne...Da si olakšate skriptanje itd itd...

COMMAND:setpos(playerid,params[]) // by [H]265
{
new
 Float:Pos[4],
 id,
 interior,
 vw,
 ime[MAX_PLAYER_NAME],
 string[128];
       #define SCM(%0,%1,%2) SendClientMessage(%0,%1,%2)
if(sscanf(params,"ufffdd",id,Pos[1],Pos[2],Pos[3],interior,vw)) return SCM(playerid,siva,"KORISTI: /setpos [playerid] [PosX] [PosY] [PosZ] [Interior] [VirtualWorld].");
else if(id == INVALID_PLAYER_ID) return SCM(playerid, siva,"SERVER. Igrac sa tim ID-om nije online.");
else
{
GetPlayerName(id, ime, MAX_PLAYER_NAME);

SetPlayerPos(playerid, Pos[1], Pos[2], Pos[3]);
SetPlayerInterior(playerid, interior);
SetPlayerVirtualWorld(playerid, vw);

format(string, sizeof string, "SERVER: Admin '%s' te premjestio na drugu lokaciju: INTERIOR: %d | VIRTUAL: %d",ime,interior,vw);
SCM(id, plava, string);

SCM(playerid, plava, "Uspjesno si promjenio kordinate igracu!");
}
       return true;
}


PRIMJER:

/setpos 0 2200.3210 -1453.3831 24.5379 0 0

i to će igraća sa ID- 0 prebaciti na kordinate 2200.3210,-1453.3831,24.5379 i interior i virtual world će mu se setati na 0


DEFINE BOJA:

 new
     plava = 0x00B9FFFF,
      siva = 0xAAAAAAFF;


Jednostavna i laka komanda , dosta će pomoći početnicima.

Citat: Disney Channel poslato Maj 13, 2011, 16:50:29 POSLE PODNE
Jednostavna i laka komanda , dosta će pomoći početnicima.

Ne radi se tu dali je laka ili teška, kada je korisna.
Kristijan Stipić

Hvala ti puno za ovo Float:Pos[4], toga se nisam mogao setiti i uvek kao kreten pisem X, Y, Z ovako je brze i bolje![/b]


Lepa komanda!

poznaticovik

Citat: eXtreme poslato Maj 13, 2011, 18:22:30 POSLE PODNE
Hvala ti puno za ovo Float:Pos[4], toga se nisam mogao setiti i uvek kao kreten pisem X, Y, Z ovako je brze i bolje![/b]


Lepa komanda!

Naravno da je , ja stalno koristim array za pozicije.

Citat: eXtreme poslato Maj 13, 2011, 18:22:30 POSLE PODNE
Hvala ti puno za ovo Float:Pos[4], toga se nisam mogao setiti i uvek kao kreten pisem X, Y, Z ovako je brze i bolje!

Citat: Disney Channel poslato Maj 13, 2011, 18:49:59 POSLE PODNE
Naravno da je , ja stalno koristim array za pozicije.

Array se ne koristi samo za pozicije možeš ti i npr. vozila definirati sa array-om

npr.

new VOZILO_TAXI[5];
VOZILO_TAXI[1] = CreateVehicle...
VOZILO_TAXI[2] = CreateVehicle...
VOZILO_TAXI[3] = CreateVehicle...
VOZILO_TAXI[4] = CreateVehicle...


Samo ću reći da mislim da je array malo ipak sporiji od normalnog načina ali je zato urednije
Kristijan Stipić

Evo jedna moja komanda za aute stvarat.
INCLUDE:
#include <zcmd>
#include <sscanf2>


DEFINICIJE:
#define COLOR_ORANGE 0xFF8040FF

CMD:veh(playerid, params[])
{
if(GetPVarInt(playerid, "Admin") >= 2) // ovdje ide kako ste vi namjestili definiciju admina
{
   new vID, Cl1, Cl2;
   new Float:X, Float:Y, Float:Z, Float:Ang;
   if(sscanf(params, "ii", vID, Cl1, Cl2)) return SendClientMessage(playerid, COLOR_ORANGE, "{0000FF}[SX:RP | KOMANDA]:{FF8040} /veh <vehicleid> <boja1> <boja2>");
   GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Ang);
   CreateVehicle(vID, X + 5.0, Y, Z, Ang, Cl1, Cl2, 1200000);
}
else SendClientMessage(playerid, COLOR_RED, "[ERROR]: Nisi Admin!");
return 1;
}


Komanda je testirana jer sam je napravio za svoj RP mod. (nula ;) )
Pošto je ova komanda u zcmd vi nju ne možete staviti u OnPlayerCommandText nego izvan tog callback - a jer neće raditi
EdiT: Hvala eXtreme ja skroz zaboravia na to..
Poslednja Izmena: Maj 14, 2011, 10:27:51 PRE PODNE od [AG] aleluja

Bolje i urednije  ;)

CMD:veh(playerid, params[])  
{  
  new
  vID,
  Cl1,
  Cl2,
  Float:X,
  Float:Y,
  Float:Z,
  Float:Ang;
  if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ERROR]: Nisi Admin!");  
      if(sscanf(params, "ii", vID, Cl1, Cl2)) return SendClientMessage(playerid, COLOR_ORANGE, "{0000FF}[SX:RP | KOMANDA]:{FF8040} /veh <vehicleid> <boja1> <boja2>");  
      GetPlayerPos(playerid, X, Y, Z);  
      GetPlayerFacingAngle(playerid, Ang);  
      CreateVehicle(vID, X + 5.0, Y, Z, Ang, Cl1, Cl2, 1200000);  
      return true;  
}

@[H]265
Znam to za vozila, ali nikad nisam pokusavao sa Float, malo jeste sporije ali preglednije kao sto si i rekao!
@[AG] aleluja
Tebi i admin lvl 0 moze tu komandu?
Poslednja Izmena: Maj 14, 2011, 10:19:01 PRE PODNE od eXtreme

Citat: eXtreme poslato Maj 14, 2011, 10:16:16 PRE PODNE
Bolje i urednije  ;)

CMD:veh(playerid, params[])  
{  
  new
  vID,
  Cl1,
  Cl2,
  Float:X,
  Float:Y,
  Float:Z,
  Float:Ang;
  if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "[ERROR]: Nisi Admin!");  
      if(sscanf(params, "ii", vID, Cl1, Cl2)) return SendClientMessage(playerid, COLOR_ORANGE, "{0000FF}[SX:RP | KOMANDA]:{FF8040} /veh <vehicleid> <boja1> <boja2>");  
      GetPlayerPos(playerid, X, Y, Z);  
      GetPlayerFacingAngle(playerid, Ang);  
      CreateVehicle(vID, X + 5.0, Y, Z, Ang, Cl1, Cl2, 1200000);  
      return true;  
}

@[H]265
Znam to za vozila, ali nikad nisam pokusavao sa Float, malo jeste sporije ali preglednije kao sto si i rekao!
@[AG] aleluja
Tebi i admin lvl 0 moze tu komandu?

Nek je urednije tako,meni je nako lakše :P







Evo jedna komanda.. pošto nemogu pisat DP :P


CMD:iskljucitagove(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return SCM(playerid, crvena,"[ERROR] Nisi admin!!");
else {
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, false)
SCM(playerid,tvojaboja,"Uspješno si uključio name tagove!"); }
return true; }

I sada da ih nazad uključiš

CMD:ukljucitagove(playerid,params[])
{
if(!IsPlayerAdmin(playerid)) return SCM(playerid, crvena,"[ERROR] Nisi admin!!");
else {
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, true)
SCM(playerid,tvojaboja,"Uspješno si uključio name tagove!"); }
return true; }

Ovo nisan testira .. nadan se da će valjat..
Ovo san najviše napravia pošto vidim da mnogi snimaju filmove a i piše im name tagovi .. A i sićan se da je prije na CH ovakva slična komanda napravljena..

Poslednja Izmena: Maj 22, 2011, 16:58:30 POSLE PODNE od [BU] aleluja

bool:tag[MAX_PLAYERS];

CMD:tag(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1,"[ERROR] Nisi admin!!");
        if(tag[playerid] == false)
{
            tag[playerid] = true;
            for(new i = 0; i < MAX_PLAYERS; i++)
            ShowPlayerNameTagForPlayer(playerid, i, true);
            SendClientMessage(playerid, -1,"ON");
            return true;
}
        else
        {
            tag[playerid] = false;
            for(new i = 0; i < MAX_PLAYERS; i++)
            ShowPlayerNameTagForPlayer(playerid, i, false);
            SendClientMessage(playerid, -1,"OFF");
            return true;
}
}

Citat: eXtreme poslato Januar 26, 2011, 14:40:40 POSLE PODNE
Komanda:

   CMD:me(playerid, params[])
   {
       if(IsPlayerConnected(playerid))
     {
     new
     MeTxT,
     string[180],
     Ime[MAX_PLAYER_NAME];
     GetPlayerName(playerid, Ime, sizeof(Ime));
     if(sscanf(params, "s", MeTxT)) return SendClientMessage(playerid, 0xFFFFFFFF, "@ /me <TxT> @");
     format(string, sizeof(string), "* %s %s", Ime, MeTxT);
       ProxDetector(30, playerid, string, 0xFFFFFFFF, 0xEFEFEFFF, 0xDFDFDFFF, 0xCFCFCFFF, 0xBFBFBFFF);
       }
       return false;
   }


Napomena: ZCMD i SSCANF :)

ProxDetector:

stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
   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);
       for(new i=0; i<MAX_PLAYERS; i++)
       {
           if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
           {
               GetPlayerPos(i, posx, posy, posz);
               tempposx = (oldposx -posx);
               tempposy = (oldposy -posy);
               tempposz = (oldposz -posz);
               if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
               {
                   SendClientMessage(i, col1, string);
               }
               else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
               {
                   SendClientMessage(i, col2, string);
               }
               else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
               {
                   SendClientMessage(i, col3, string);
               }
               else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
               {
                   SendClientMessage(i, col4, string);
               }
               else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
               {
                   SendClientMessage(i, col5, string);
               }
           }
       }
   }
   return 1;
}    

Ovo ne radi  8)
Stavi ovako:

CMD:me(playerid, params[])
{
new
s[80],
s1[180],
pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
if(sscanf(params, "s", s)) return SendClientMessage(playerid, 0xFFFFFFFF, "@ /me <TxT> @");
format(s1, sizeof(s1), "* %s %s", pName, s);
ProxDetector(30, playerid, s1, 0xFFFFFFFF, 0xEFEFEFFF, 0xDFDFDFFF, 0xCFCFCFFF, 0xBFBFBFFF);
return true;
}



Credits: Aleksandar
Poslednja Izmena: Maj 22, 2011, 19:07:01 POSLE PODNE od eXtreme

Jesi ti poceo to namerno da radis?
Ja sam ti pokazao kako treba, gore...
I kako je bolje, inace ona komanda je preuzeta sa wiki.
Nemaju svi SCM, kao i definisanu crvenu boju...

Citat: eXtreme poslato Maj 22, 2011, 19:11:13 POSLE PODNE
Jesi ti poceo to namerno da radis?
Ja sam ti pokazao kako treba, gore...
I kako je bolje, inace ona komanda je preuzeta sa wiki.
Nemaju svi SCM, kao i definisanu crvenu boju...

šta san počea namjerno radit? :s
Nije preuzeta s wiki nego odavde:
Citat: [AG] BloodMaster poslato April 26, 2011, 17:15:02 POSLE PODNE
Citat: [Banana$]ReadMe.txt poslato April 26, 2011, 16:23:24 POSLE PODNE
Dakle ja radim Wild Wild West OWAA, gdje nece biti NameTagova,
p


Jednostavno ispod OnPlayerSpawn stavite:
for(new i = 0; i < MAX_PLAYERS; i++) ShowPlayerNameTagForPlayer(playerid, i, false);

Evo sa zcmd posto neznam radit sa sscanf.


Malo pogledaj tutorijale i videces sta je sscanf...
ZCMD procesor komandi a sscanf je nesto drugo...

lol pa vidis da je sscanf, laggan je sscanf, samo trebas ucit tako sam i ja mislio, ja u opce neznam raditi sa strok kako vec i strcmp, sad dosta offtopica
Uskoro novi stunt server iStunt. DoÄ'ite i zabavite se!




   
   




Dizajniram za $$$
Popis stvari koje radim:

Wallpaper √  Signature ×  Logo √  Dizajn stranice (Ne kodiranje) √  Baner √  Avatar √  Animacija √  Intro √