Korisne komande


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

prethodna tema - sledeća tema

0 članova i 4 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
Kod: c
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
Kod: c
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

Kod: C
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  ;)
Kod: c
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  ;)
Kod: c
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


Kod: c
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š

Kod: c
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

Kod: c
bool:tag[MAX_PLAYERS];


Kod: c
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:
Kod: c
   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:
Kod: c
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:

Kod: C
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:
Kod: c
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 √