Korisne skripte i kodovi

Započeo Correlli, Mart 10, 2010, 20:26:26 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 6 gostiju pregledaju ovu temu.

stock CapsLock(text[])
{
for(new i=0; i<MAX_WORDS; i++) 
    {   
          while (text[++i]) 
          { 
              if ('A' <= text <= 'Z') text |= 0x20; 
          } 
    }
}

ahaa, ok tnx

Sto ne treba ici i IsPlayerConnected u loopu?
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 √

Citat: [AG] Paradox poslato Jun 03, 2011, 12:22:00 POSLE PODNE
Yep, that's it. :)
Aj have litle problem ju not rid rules


Procitaj glavna pravila foruma (Mada znam da si ih vec citao) ... Brisem post!

Citat: [AG] System32 poslato Jun 03, 2011, 12:55:17 POSLE PODNE
ahaa, ok tnx

Sto ne treba ici i IsPlayerConnected u loopu?

zato sto loopujes kroz slova a ne kroz igrace



Citat: [AG] System32 poslato Jun 03, 2011, 12:55:17 POSLE PODNE
ahaa, ok tnx

Sto ne treba ici i IsPlayerConnected u loopu?

A sta bi ti? IsWordConnected??

Citat: [BU] Gigi_Falcone poslato Jun 02, 2011, 16:12:23 POSLE PODNE
Citat: [AG] eXtreme poslato Maj 16, 2011, 23:33:37 POSLE PODNE

stock Port(playerid, Float:x, Float:y, Float:z)
{
  new
  Float:ox,
  Float:oy,
  Float:oz;
  GetPlayerPos(playerid, ox, oy, oz);
  printf("x: %f, y: %f, z: %f\nox: %f, oy: %f, oz: %f\n\trez: %f", x, y, z, ox, oy, oz, (((ox + oy + oz) >= (x + y + z)) ? ((ox + oy + oz) - (x + y + z)) : ((x + y + z) - (ox + oy + oz))));
  if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SetPlayerPos(playerid, x, y, z);
  SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  return true;
}


sto tacno predstavlja "rez"? je li razliku, tj predjeni put?

ako "rez" pokazuje udaljenost izmedju stare i nove pozicije, ova funkcija je totalno pogresna
jesi je uopste testirao?


Tek sad vidim ovo, ajde napravi fix da vidim kako bi ti to uradio... Je pokazuje udaljenost od stare pozicije i nove pozicije i radi dobro  :-\ Ako treba video da ti snimim...


Edit: Jos nisi napravio?
Poslednja Izmena: Jun 06, 2011, 09:21:26 PRE PODNE od _eXtreme_

evo jedna funkcija s kojom netrebate vise stavljati u komandi recimo new pName[MAX_PLAYERS]; nego samo u fformatu dodate GetName(playerid ili recimo ako ste definirali za nekog drugog igraca, npr.id)

Funkcija by Y_Less ;)

stock GetName(playerid)
{
new
   pName[MAX_PLAYER_NAME];
   
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}
Poslednja Izmena: Jun 06, 2011, 14:03:16 POSLE PODNE od [AG] System32
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 √

Kad smo vec kod tog, evo jos jedna dobra:

Float:GetHealth(playerid) { new Float:h; GetPlayerHealth(playerid,h); return h; }

jednostavno, returna koliko igrac ima healtha...

Evo i GivePlayerHealth:

#define GivePlayerHealth(%0, %1)  SetPlayerHealth(%0, GetHealth(playerid)+%1)
Poslednja Izmena: Jun 06, 2011, 16:03:01 POSLE PODNE od [AG] BloodMaster

Citat: _eXtreme_ poslato Jun 04, 2011, 10:22:18 PRE PODNE
Citat: [BU] Gigi_Falcone poslato Jun 02, 2011, 16:12:23 POSLE PODNE
Citat: [AG] eXtreme poslato Maj 16, 2011, 23:33:37 POSLE PODNE

stock Port(playerid, Float:x, Float:y, Float:z)
{
  new
  Float:ox,
  Float:oy,
  Float:oz;
  GetPlayerPos(playerid, ox, oy, oz);
  printf("x: %f, y: %f, z: %f\nox: %f, oy: %f, oz: %f\n\trez: %f", x, y, z, ox, oy, oz, (((ox + oy + oz) >= (x + y + z)) ? ((ox + oy + oz) - (x + y + z)) : ((x + y + z) - (ox + oy + oz))));
  if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SetPlayerPos(playerid, x, y, z);
  SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  return true;
}


sto tacno predstavlja "rez"? je li razliku, tj predjeni put?

ako "rez" pokazuje udaljenost izmedju stare i nove pozicije, ova funkcija je totalno pogresna
jesi je uopste testirao?


Tek sad vidim ovo, ajde napravi fix da vidim kako bi ti to uradio... Je pokazuje udaljenost od stare pozicije i nove pozicije i radi dobro  :-\ Ako treba video da ti snimim...


Edit: Jos nisi napravio?

sad sam vidio tvoj odgovor, do 10 cu postat moju funkciju, sada nesto radim
btw postacu i cmd sa kojom sam testirao ovo tvoje i vidjeces da nije dobro...



Ok izgleda da treba da napravim video evo stize za pola sata...

Evo objasnjenje zasto tvoja skripta ne radi:

http://pastebin.com/PjxSyxJ3


Sacuvaj ovaj kod kao filterskriptu, u njemu je tvoja modifikovana funkcija da ne prikazuje radnju u konzoli nego direktno igracu, ostalo nista nije dirano
Freezuj se sa komandom /freeze a zatim se portuj po navedenom sablonu sa komandom /port [0 do 8]



Portuj se ovako ( 2 puta u 0 da bi se resetovala razlika):

0,8,1,0 ( na slici predstavlja  O,H,A,O)

Portom od 0 do 8 ima 100.0 jedinica, iz 8 do 1 ima isto 100,0 jedinica, dok iz 1 u 0 po tvojoj skripti ima 200.0 jedinica, sto matematicki nije tacno
Racunanje hipotenuze kod pravouglog trougla se radi pomocu Pitagorine teoreme:



Odnosno u ovom slucaju, udaljenost izmedju 1 i 0 bi trebala biti 141,4213562373095



Takodje kada se portujes iz 6 u 4 (na slici iz F u D) po tvojoj funkciji pise da je 0.0, dok udaljenost treba da bude isto  141,4213562373095
Poslednja Izmena: Jun 06, 2011, 20:23:02 POSLE PODNE od [BU] Gigi_Falcone



Ok, sad napravi fix da svi na forumu vide kako treba?

Eto:

stock Port(playerid,Float:nX,Float:nY,Float:nZ)
{
new Float:oX,Float:oY,Float:oZ;//old position
new Float:tX,Float:tY,Float:tZ,Float:tDist;//temporary position
new string[128];
GetPlayerPos(playerid,oX,oY,oZ);
tX = nX - oX;
tY = nY - oY;
tZ = nZ - oZ;
tDist = floatsqroot(floatpower(tX,2) + floatpower(tY,2) + floatpower(tZ,2));
SetPlayerPos(playerid, nX, nY, nZ);
format(string,sizeof(string),"x: %f, y: %f, z: %f | ox: %f, oy: %f, oz: %f | trez: %f",nX,nY,nZ,oX,oY,oZ,tDist);
SendClientMessage(playerid,-1,string);
return 1;
}


Moze i krace da se napise, al ovako je jasnije za procitati
Poslednja Izmena: Jun 06, 2011, 21:07:25 POSLE PODNE od [BU] Gigi_Falcone



Poz.
Evo nešto od mene. :P
Npr.
kada radite ovo:
#define SCM SendClientMessage
Većina misli da je to jedino šta možeš napravit da skratiš kao tu funkciju,ali ti to možeš i za neke druge funkcije.
Npr.
#define STP SetPlayerPos


Nadam se da ste me skužili šta hoću reć. :P

zbog cega skracujete funkcije tako?
pa nije valjda toliko tesko otkucati 5 slova vise?  :)