Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė

Scriptai( Ne default'inės funkcijos )


hustrine

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1740 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

  • Parašė po 2 savaičių...

MAX_PLAYERS

 

Principas panašus kaip tų, kurie jau buvo visur minimi, išbindinam default MAX_PLAYER ir sukuriam naują, bet šis variantas turi privalumą, kad pakeitus server.cfg faile maxplayers eilutę, nereikės nieko daryti kode.
 

#undef MAX_PLAYERS
#define MAX_PLAYERS GetServerVarAsInt("maxplayers")

Testavimui pasirinkau tokį kodą:
 

#define PLAYERS GetServerVarAsInt("maxplayers")

main()
{
	printf("MAX_PLYAERS: %i", MAX_PLAYERS);
	printf("players define: %i", PLAYERS);
}

Serverio konsolė parodė tai:

sqsm.jpg

Redaguota , nario Virtual Idea
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...
  • Parašė po 1 mėnesio...

Mapname pakeitimas

stock kmapp(playerid, params[])
{
  new mapp, tekstas[50];
  if(sscanf(params, "s", mapp)) return SendClientMessage(playerid, -1, "Naudojimas /kmapp [MAPP PAVADINIMAS]");
  format(tekstas, sizeof(tekstas), "mapname %s", mapp);
  SendRconCommand(tekstas);
  return 1;
}

Nauodjimas:

CMD:cmapp(playerid, params[])
{
kmapp(playerid, params);
return 1;
}
 
Autorius: cArnas
Redaguota , nario Arnas'Cousins
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 4 savaičių...

Mapname pakeitimas

stock kmapp(playerid, params[])
{
  new mapp, tekstas[50];
  if(sscanf(params, "s", mapp)) return SendClientMessage(playerid, -1, "Naudojimas /kmapp [MAPP PAVADINIMAS]");
  format(tekstas, sizeof(tekstas), "mapname %s", mapp);
  SendRconCommand(tekstas);
  return 1;
}
Nauodjimas:

CMD:cmapp(playerid, params[])
{
kmapp(playerid, params);
return 1;
}

Autorius: cArnas

kmapp(playerid,strlen(params));
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...
#define user.%0[%1]    pInfo[%1][%0] 

vietoje pInfo pasikeisit į tokį, koks pas jus naudojamas.

 

Naudojimas:

user.adminlvl[playerid] 

vietoj:

pInfo[playerid][adminlvl]

 

Nebūtų paprasčiau

new pInfo[MAX_PLAYERS][PlayerInfo];
pakeist į
new user.[PlayerInfo][MAX_PLAYERS]

* Vistiek reikėtų laužtinius skliaustus dėti, kad nurodyti ką naudosi iš enumo PlayerInfo, bet mažiau rašymo būtų

Nuoroda į komentarą
Dalintis per kitą puslapį

Nebūtų paprasčiau

new pInfo[MAX_PLAYERS][PlayerInfo];
pakeist į
new user.[PlayerInfo][MAX_PLAYERS]
* Vistiek reikėtų laužtinius skliaustus dėti, kad nurodyti ką naudosi iš enumo PlayerInfo, bet mažiau rašymo būtų
Bičo variantas geresnis nei tavasis :)
Nuoroda į komentarą
Dalintis per kitą puslapį

Nebūtų paprasčiau

new pInfo[MAX_PLAYERS][PlayerInfo];
pakeist į
new user.[PlayerInfo][MAX_PLAYERS]

* Vistiek reikėtų laužtinius skliaustus dėti, kad nurodyti ką naudosi iš enumo PlayerInfo, bet mažiau rašymo būtų

O jau rankos nutrūks, kad šiek tiek daugiau parašysi?

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

Nes normal define veiks greičiau.

Šiuo atveju ne. Define vistiek sukurs tą patį kintamąjį, tik su kitokia "sintakse". Dėl greičio, teoriškai tai bus lėčiau nes kompiliatorius dar turės pakeist į Pawn kalbai suprantamą sintaksę, nors žinoma tokio greičio skirtumo niekas nepastebėtų, o serveriui dirbant apskritai jokios įtakos, nes kaip minėjau, viską atliks kompiliatorius.

 

Mano nuomone, tai yra beprasmiška, nors jeigu kažkam patogiau - gerai. Skonio reikalas.

Nuoroda į komentarą
Dalintis per kitą puslapį

koks tikslas define'inti kai gali susikurt kintamąjį iškart tokį? Na, čia tik mano nuomonė aišku

Tai bet naudojimas visai skiriasi. Pas tave būtų: „user.[ playerid ][ Admin ]“, o ten: „user.Admin[ playerid ]“.

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

Šiuo atveju ne. Define vistiek sukurs tą patį kintamąjį, tik su kitokia "sintakse". Dėl greičio, teoriškai tai bus lėčiau nes kompiliatorius dar turės pakeist į Pawn kalbai suprantamą sintaksę, nors žinoma tokio greičio skirtumo niekas nepastebėtų, o serveriui dirbant apskritai jokios įtakos, nes kaip minėjau, viską atliks kompiliatorius.

 

Mano nuomone, tai yra beprasmiška, nors jeigu kažkam patogiau - gerai. Skonio reikalas.

WTF man  :blink:

Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

j_AddVehicleComponent


Skriptas:
stock j_AddVehicleComponent(vehicleid, componentid)
{
	AddVehicleComponent(vehicleid, componentid);
	new brother = GetComponentBrother(componentid);
	if(brother != 0) AddVehicleComponent(vehicleid, brother);
	return 1;
}
#define AddVehicleComponent j_AddVehicleComponent

stock GetComponentBrother(componentid)
{
	switch(componentid)
	{
/* Sideskirts */
		case 1007: return 1017;
		case 1017: return 1007;
		case 1026: return 1027;
		case 1027: return 1026;
		case 1031: return 1030;
		case 1030: return 1031;
		case 1041: return 1039;
		case 1039: return 1041;
		case 1036: return 1040;
		case 1040: return 1036;
		case 1047: return 1051;
		case 1051: return 1047;
		case 1048: return 1052;
		case 1052: return 1048;
		case 1056: return 1062;
		case 1062: return 1056;
		case 1057: return 1063;
		case 1063: return 1057;
		case 1069: return 1071;
		case 1071: return 1069;
		case 1070: return 1072;
		case 1072: return 1070;
		case 1090: return 1094;
		case 1094: return 1090;
		case 1095: return 1093;
		case 1093: return 1095;
		case 1122: return 1101;
		case 1101: return 1122;
		case 1106: return 1124;
		case 1124: return 1106;
		case 1118: return 1120;
		case 1120: return 1118;
		case 1119: return 1121;
		case 1121: return 1119;
		case 1042: return 1099;
		case 1099: return 1042;
		case 1133: return 1102;
		case 1102: return 1133;
		case 1108: return 1107;
		case 1107: return 1108;
		case 1134: return 1137;
		case 1137: return 1134;
/* Vents */
		case 1143: return 1142;
		case 1142: return 1143;
		case 1145: return 1144;
		case 1144: return 1145;
	}
	return 0;
}
Naudojimas:
AddVehicleComponent(vehicleid, componentid);
Parametrai:
vehicleid - transporto priemonės ID.
componentid - tuningo dalies ID.

Aprašymas:
Funkcija skirta ištaisyti samp klaida (uždedant sideskirt arba vent neužtenka 1 kartą iškviesti funkcijos - AddVehicleComponent).



Autorius: Aš (ES.^ a.k.a johurt).

Redaguota , nario ES.^
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 savaičių...

Transporto atspawninimas by Stanis, internete mačiau daug įvairių skriptų, tačiau manasis trumputis ir aiškus.

CMD:car(playerid, params[]) { //transporto atspawninimss pagal id
    	new Float:koordinates[3];
    	new id;
		GetPlayerPos(playerid,koordinates[0],koordinates[1],koordinates[2]);
	    if (sscanf(params, "i", id)) SendClientMessage(playerid, 0xFF0000AA, "Naudojimas: /spawn transporto id");
		else
		{
		    CreateVehicle(id,koordinates[0],koordinates[1],koordinates[2],0,003,003,0);
		}
		return 1;
}
Nuoroda į komentarą
Dalintis per kitą puslapį

 

Transporto atspawninimas by Stanis, internete mačiau daug įvairių skriptų, tačiau manasis trumputis ir aiškus.

CMD:car(playerid, params[]) { //transporto atspawninimss pagal id
    	new Float:koordinates[3];
    	new id;
		GetPlayerPos(playerid,koordinates[0],koordinates[1],koordinates[2]);
	    if (sscanf(params, "i", id)) SendClientMessage(playerid, 0xFF0000AA, "Naudojimas: /spawn transporto id");
		else
		{
		    CreateVehicle(id,koordinates[0],koordinates[1],koordinates[2],0,003,003,0);
		}
		return 1;
}

Viskas kaip ir gerai. Tik čia rašomos funkcijos. Tai Tavo funkcija turėtų būti maždaug taip:

stock SpawnVeh(playerid, vehicleid)
{
new Float:koordinates[3];
GetPlayerPos(playerid, koordinates[0], koordinates[1], koordinates[3]);
CreateVehicle(vehicleid, koordinates[0], koordinates[1]+1, koordinates[3],0,003,003,0);
return 1;
}

Ir naudojimas:

SpawnVeh(playerid, vehicleid).

Pvz.:

CMD:elegy(playerid)
{
SpawnVeh(playerid, 562);
return 1;
}
Redaguota , nario Arnas'Cousins
Nuoroda į komentarą
Dalintis per kitą puslapį

 

Transporto atspawninimas by Stanis, internete mačiau daug įvairių skriptų, tačiau manasis trumputis ir aiškus.

CMD:car(playerid, params[]) { //transporto atspawninimss pagal id
    	new Float:koordinates[3];
    	new id;
		GetPlayerPos(playerid,koordinates[0],koordinates[1],koordinates[2]);
	    if (sscanf(params, "i", id)) SendClientMessage(playerid, 0xFF0000AA, "Naudojimas: /spawn transporto id");
		else
		{
		    CreateVehicle(id,koordinates[0],koordinates[1],koordinates[2],0,003,003,0);
		}
		return 1;
}

o kur tikrinimas ar id nėra per aukštas ar žemas? t.y ar nėra tokios car

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1740 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...