samp-walking-styles | Mine fork of Ben Jackster's walking styles | 15+ styles

Započeo Mergevos, Avgust 04, 2020, 00:04:37 PRE PODNE

prethodna tema - sledeća tema

0 članova i 6 gostiju pregledaju ovu temu.

Tip: Include
Slike ili Video: Ako bude potrebno, dodacu naravno
Opis i dodatne informacije: Ovako, znaci ovo je neki djarMa, Madjar, izbacio pre 6 godina. Nikada nisam radio sa animacijama, no uglavnom ovo sluzi dosta RP serverima, jer mozete da se pretvarate tipa da hodate kao majmuncina neka ne znam. Ovo je forkovano od strane mene, prebaceno je u inlude, a ne filterscripta kao sto je bilo.

SetPlayerWalkingStyle(const playerid, const style);


Ovo ce vam setati neke od stilova ispod

enum {
WALKING_STYLE_DEFAULT = 0,
WALKING_STYLE_NORMAL,
WALKING_STYLE_PED,
WALKING_STYLE_GANGSTA,
WALKING_STYLE_GANGSTA2,
WALKING_STYLE_OLD,
WALKING_STYLE_FAT_OLD,
WALKING_STYLE_FAT,
WALKING_STYLE_WOMANOLD,
WALKING_STYLE_WOMANFATOLD,
WALKING_STYLE_SHUFFLE,
WALKING_STYLE_LADY,
WALKING_STYLE_LADY2,
WALKING_STYLE_WHORE,
WALKING_STYLE_WHORE2,
WALKING_STYLE_DRUNK,
WALKING_STYLE_BLIND
};


GetPlayerWalkingStyle(const playerid);

[/i]
Download link:

Scan link: Git
Credits: Ben Jackster za kreiranje.
Poslednja Izmena: Avgust 04, 2020, 00:06:45 PRE PODNE od Mergevos
- open.mp regional coordinator -

Jesi siguran da mora tajmer tu? Valjda je looping animacija bez prestajanja?

Nisam siguran tho

I ovo slobodno u char

[pawn]style_Walking[MAX_PLAYERS char];[/pawn]

Citat: Alhemičar v2 poslato Avgust 04, 2020, 00:51:42 PRE PODNE
Jesi siguran da mora tajmer tu? Valjda je looping animacija bez prestajanja?

Nisam siguran tho

I ovo slobodno u char

[pawn]style_Walking[MAX_PLAYERS char];[/pawn]
Mora zbog keyeva da proverava koje keyeve drzi, posto se direction keyevi ne mogu pozvati u KeyStateChange clb.
To za char si dobro rekao nema >255

- open.mp regional coordinator -

Citat: Mergevos poslato Avgust 04, 2020, 00:54:25 PRE PODNE
Mora zbog keyeva da proverava koje keyeve drzi, posto se direction keyevi ne mogu pozvati u KeyStateChange clb.
To za char si dobro rekao nema >255
Yep, zaboravih, gj!



Lepo, samo sto nema mnogo razlika osim sto si iz fs prebacio u include.

Evo nekih predloga/kritika od mene:

Nemoj koristiti puno space mesta izmedju #include direktive i imena includ-a(bas para oci :D)

@OnPlayerKeyStateChange :

if(HOLDING(KEY_WALK) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)

Ovu proveru bi mogao prosiriti sa proverom koristenja jetpacka i takodje da bi malo smanjio opterecenje
mozes to odraditi na ovaj nacin ogranicavajuci da ako ne drzi taj key da uopste dalje ne proverava:

[pawn]
if(HOLDING(KEY_WALK))
{
   if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
   {
      if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_USEJETPACK)
      {
         //pozivanje tajmera
      }
   }
}
[/pawn]

Takodje:

@timer_WalkAnimation :

Posle uzimanja keyeva ulazis u switch u kome ima jako puno redudanse tj. ponavljanja koda.
Znaci ovu proveru za direction keyeve i KEY_WALK mozes da stavis samo jednom uopste ne koristeci switch.

Naime, mozes dodati funkciju sa ovakvom strukturom:

[pawn]
ApplyWalkStyle(const playerid)
{
   // mozes dodati jos neku proveru i za zaustavljanje svejedno je
   switch(walk_style)
   {
      case 0: ApplyAnimation(...); ... ili setanje timer_Walking sta god vec zelis
      case 1: ApplyAnimation(...); ...
   }
}
[/pawn]

Onda umesto onog velikog switcha u @timer_walkAnimation stavi sledece posle detekcije keyeva:

[pawn]
if ((keys & KEY_WALK && updown & KEY_UP) || (keys & KEY_WALK && updown & KEY_DOWN) || (keys & KEY_WALK && leftright & KEY_LEFT) || (keys & KEY_WALK && leftright & KEY_RIGHT)) {
   ApplyWalkStyle(playerid);
}
[/pawn]

Mislim da kapiras sta hocu reci vec.

stock ne moras stavljati uopste, stavi samo plain funkciju, ali ako ti se vise svidja sa stockom onda nije ni bitno(code style matters :D)

Mogao bi da uradis i za running style takodje, bilo bi cool uz ovo  :P :P
Those parts of the system that you can hit with a hammer (not advised) are called hardware; those program instructions that you can only curse at are called software

Citat: XACK poslato Avgust 06, 2020, 01:45:54 PRE PODNE
Lepo, samo sto nema mnogo razlika osim sto si iz fs prebacio u include.

Evo nekih predloga/kritika od mene:

Nemoj koristiti puno space mesta izmedju #include direktive i imena includ-a(bas para oci :D)

@OnPlayerKeyStateChange :

if(HOLDING(KEY_WALK) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)

Ovu proveru bi mogao prosiriti sa proverom koristenja jetpacka i takodje da bi malo smanjio opterecenje
mozes to odraditi na ovaj nacin ogranicavajuci da ako ne drzi taj key da uopste dalje ne proverava:

[pawn]
if(HOLDING(KEY_WALK))
{
   if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
   {
      if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_USEJETPACK)
      {
         //pozivanje tajmera
      }
   }
}
[/pawn]

Takodje:

@timer_WalkAnimation :

Posle uzimanja keyeva ulazis u switch u kome ima jako puno redudanse tj. ponavljanja koda.
Znaci ovu proveru za direction keyeve i KEY_WALK mozes da stavis samo jednom uopste ne koristeci switch.

Naime, mozes dodati funkciju sa ovakvom strukturom:

[pawn]
ApplyWalkStyle(const playerid)
{
   // mozes dodati jos neku proveru i za zaustavljanje svejedno je
   switch(walk_style)
   {
      case 0: ApplyAnimation(...); ... ili setanje timer_Walking sta god vec zelis
      case 1: ApplyAnimation(...); ...
   }
}
[/pawn]

Onda umesto onog velikog switcha u @timer_walkAnimation stavi sledece posle detekcije keyeva:

[pawn]
if ((keys & KEY_WALK && updown & KEY_UP) || (keys & KEY_WALK && updown & KEY_DOWN) || (keys & KEY_WALK && leftright & KEY_LEFT) || (keys & KEY_WALK && leftright & KEY_RIGHT)) {
   ApplyWalkStyle(playerid);
}
[/pawn]

Mislim da kapiras sta hocu reci vec.

stock ne moras stavljati uopste, stavi samo plain funkciju, ali ako ti se vise svidja sa stockom onda nije ni bitno(code style matters :D)

Mogao bi da uradis i za running style takodje, bilo bi cool uz ovo  :P :P

Problem je kod te redutanse sto ako prestanem drzati alt animacija ce se nastaviti loopati, pokusavao sam već jednom, doduše mogao bih probati opet, videću mozda sam zasrao taj put. A to stock ako ne koristim, bacace wqrn za funkciju i nekorišćenje
- open.mp regional coordinator -

stock-ovi trebaju da se pisu u .inc fajlovima

nmp sto si radio super je ekstra si samo jako uaa
Poslednja Izmena: Avgust 06, 2020, 05:06:41 PRE PODNE od omcho

Citat: Mergevos poslato Avgust 06, 2020, 01:51:30 PRE PODNE
Problem je kod te redutanse sto ako prestanem drzati alt animacija ce se nastaviti loopati, pokusavao sam već jednom, doduše mogao bih probati opet, videću mozda sam zasrao taj put. A to stock ako ne koristim, bacace wqrn za funkciju i nekorišćenje
Verovatno zato što ti je u ApplyAnimation looping na 1

Citat: Alhemičar v2 poslato Avgust 06, 2020, 14:24:56 POSLE PODNE
Verovatno zato što ti je u ApplyAnimation looping na 1
Moguće i to, uskoro cu srediti to, hvala ti
- open.mp regional coordinator -