Jump to content

_niCo_

Recommended Posts

Zdarec všechny,

Toto je můj první FilterScript 
Jedná se o warp system který sem dopawnil a dávám sen na Pawno.cz

=================================================

Filter script obsahuje : 

warpy do Las Venturas / Los Santos / San Fierro

 

Příkazy 

/warpy

po napsání /warpy se vám ukáže dialog z warpama /lv /sf /ls

=======================================================

 [ !!! ] DÁM VÁM SEM I KOD WARP SYSTEMU ALE PROSIM VÁS ZANECHTE MNE JAKO AUTORA FS DĚKUJI MOC [ !!! ]

Doufám že se vám můj první FilterScript bude líbit a zdar :d
 

 

#include <a_samp>
#include <zcmd>
#define COLOR_BLUE 0xFF0000FF
#define COLOR_RED 0xFFFF0000

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" Warp system by _niCo_");
	print("--------------------------------------\n");
	return 1;
}

public OnPlayerConnect(playerid)
{
	SendClientMessage(playerid,COLOR_BLUE," {FF0000}[ WARPS SYSTEM ] {0000FF}Server používá {FF0000}Warps System {0000FF}by {FF0000}_niCo_ {0000FF}/ {FF0000}v1.0");
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/warpy", cmdtext, true, 10) == 0)
	{
		ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Warp System by _niCo_","/ls\n/sf\n/lv\n{00FF00}ZA KAŽDÝ WARP SE TI STRHNE 100 $","{FF0000}Závřít","");
		return 1;
	}

	if (strcmp("/ls", cmdtext, true, 10) == 0)
	{
	    GivePlayerMoney(playerid,-100);
	    SetPlayerPos(playerid,1715.1248, -1879.8043, 13.5665);
		ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Las Venturas","{0000FF}Nyní se nacházíš v {FF0000}Los Santos","{FF0000}Závřít","");
		return 1;
	}

	if (strcmp("/sf", cmdtext, true, 10) == 0)
	{
	    GivePlayerMoney(playerid,-100);
	    SetPlayerPos(playerid,-1979.5410, 882.8173, 45.2031);
		ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Las Venturas","{0000FF}Nyní se nacházíš v {FF0000}San Fierro","{FF0000}Závřít","");
		return 1;
	}

	if (strcmp("/lv", cmdtext, true, 10) == 0)
	{
	    GivePlayerMoney(playerid,-100);
	    SetPlayerPos(playerid,2137.2100, 1468.2996, 10.8203);
		ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Las Venturas","{0000FF}Nyní se nacházíš v {FF0000}Las Venturas","{FF0000}Závřít","");
		return 1;
	}
	return 0;
}

 

Warpy.amx

Edited by _niCo_
Aktualizace FS
  • Kappa 2
  • OMEGALUL 1
  • Zmatený 1
  • Líbí se mi to! (+1) 2
Link to comment
Share on other sites

Vieš mi povedať prečo používaš ZCMD keď si ho nevyužil? Po ďalšie,nič zložité iba SCM a SetPlayerPos čo vďaka samp wiki dokáže aj začiatočník...A to ZCMD by ma fakt zaujímalo...Ak by si ho niekde využil som ticho ale nevidím nikde aby si ho využil.Vieš mi to vysvetliť?

Link to comment
Share on other sites

Ako už bolo spomenuté, ZCMD tam je zbytočne.

Ďalej: 

#define COLOR_RED 0xFFFF0000

Taktiež nikde nevyužívaš.

 

if (strcmp("/warpy", cmdtext, true, 10) == 0)

Vieš čo znamená to číslo 10? Nie nevieš, naštuduj si...

ShowPlayerDialog(playerid,1

1? Nabudúce použi iné číslo, väčšina ľudí už v GM nejaké tie dialógy má a väčšinou začínajú číslom 1.

No a posledná vec, nedávaj sem scripty ktoré obsahujú 2 funkcie (dialogy a nastavenie pozície), ak by si spravil dynamický warp, malo by to akú takú hodnotu...

Link to comment
Share on other sites

Jak sem zmínil ZCMD sem chtěl použít ale nepoužil a zapoměl sem ho vymazat
2. Proč tu je asi kod od warp systemu ? aby si ty lidi to poupravili podle sebe. Já nevím jestli maj vlastni GM nebo RZE

3. Puvodne místo dialogu měla být funkce SendClientMessage ale jak říkam zapoměl sem smazat includ ZCMD a definice 

Edited by _niCo_
Link to comment
Share on other sites

Zdravím,

  1. Je-li použito (i)ZCMD, OnPlayerCommandText nefunguje.
  2. ID dialogu, viz výše.
  3. Absolutně hrozné použití OnPlayerCommandText.
  4. Nekontroluješ ani, zda je hráč v autě, ani, zda je na pozici řidiče apod., takže si budou děcka stěžovat, jak jim zmizelo auto apod.
  5. Málo warpů, nic originálního, toto už tu je dostkrát, teda až na to zobrazování dialogu, když se warpneš.

Zatím.

//Edit:

Neber to nějak špatně, jen Ti říkám, co mi přijde nedobré na Tvém FS. Pokud je to vážně první FS, je to celkem dobré. Ale v tom případě pochybuji, že jsi to dělal sám. Jestli jo, snaž se vypilovat věci výše a bude to perfecto.

Edited by Smexy
//Edit:
  • Děkuji (+1) 1
Link to comment
Share on other sites

Aby sme nepísali všetko to isté tak tam prihodím niečo vlastného do tohoto tématu, aj keď to nemá zmysel ale nevadí :D.

1.) Ubaráš hráčovy peniaze aj keby hráč nemal dostatok penazí čiže pôjde do "mínusu" nato slúží podmienka:

if( GetPlayerMoney(playerid) >= 100 ){
    // CODE HERE
}

/wiki/GetPlayerMoney
a znamená, že ak má hráč viac penazí alebo rovno 100 tak  sa prevedie kód ktorý je pod podmienkou, bolo by to už keď tak dobré dať :)

2.) Dialogy odporúčam ti definovať ( alebo hádzať do enumu, v zátvorke to je preto, že to je pre "skusenejších"), kedže pri definicií si nemusíš pamätať IDčka ale názvy a "nemôžeš" sa pomýliť, dám k tomu rovno aj príklad
 

#define DIALOG_SHOW_TELEPORT 1
#define DIALOG_SUCCESFULLY_TELEPORTED 2

a keď som spomínal aj enum: 
 

enum{
	DIALOG_TELEPORT = 10, // 10 tam je preto, že dialogy začne počítať od 10 IDčka, a každý pridaný ,, dialog " bude +1
	DIALOG_SUCCESFULLY_TELEPORTED // takže toto bude 11
};

( celkom je to zbytočné keď tam má len ukazuje informácie ale do budúcna sa mu to môže zísť :) )

3.) Ako už spomínal niekto, teleportuješ iba hráča ale ak hráč sedí v aute, to auto zostáva na predchádzajúcej pozícií a teleportuje iba hráča!
Taký menší tutoriálik: 
http://forum.sa-mp.com/showthread.php?t=195753
A menšie vysvetlenie ak tomu trochu nechápeš:
 

if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){ // Ak je hráč ktorého teleportuješ vo vozidle ako šofér
	new getv = GetPlayerVehicleID(playerid); // získa id vozidla v ktorom sa hráč nachádza
	SetVehiclePos(getv,  X , Y, Z); // teleportuje id vozidla na určíté súradnice
	SetPlayerPos(playerid, X, Y, Z); // teleportuje hráča na určíte súradnice
   	PutPlayerInVehicle(playerid,getv,0); // dá hráč do vozidla ktoré bolo premestnené na súradnice
} else { // ale ak neni šofér auta
	SetPlayerPos(playerid,-2337.2236,-1650.2164,483.7031); // iba ho teleportuje
}

Samozrejme, dá sa tam pridať interier, virtual world, a ak ma to auto spolujazdca ale je to len príklad ako by to asi malo vypadať :)

Link to comment
Share on other sites

Na začiatok to není zlé.

Ale ak by si už niekedy chcel na pawno.cz dať nejaký warp systém, ktorý není dynamický tak to radšej nerob. Jedine, ak by si chcel s niečim poradiť.
Samozrejme, že ak by si urobil nejaký advanced warp systém s 50+ warpami tak to je o inom :d Ale aj tak si hráči radšej vyhľadajú nejaký dynamický, cez ktorý vytvoria hráči warp v hre ako by sa mali hrabať v kódu. (Niekto pawno alebo iný program nemá :d)
 

Dynamický = Možnosť úpravy v scriptu v hre (napr. nastavenie alebo odstránenie warpu)

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...