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š 1713 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

Funkcija: Veiksmas

Naudojimas:

Veiksmas( playerid, id );

Veiksmų id:

0 - Atšaldymas
1 - Užšaldymas

Kodas:


Stock Veiksmas( playerid, on=0 )
{
switch( on )
{
	 case 0: TogglePlayerControllable( playerid, 1 ); //atšaldytas
	 case 1: TogglePlayerControllable( playerid, 0 ); //užšaldytas
}
}

Kodėl dedat viską į funkcijas, jeigų įmanoma apseiti su konstanta ir taip sutaupyti resursų?

#define Veiksmas(%0,%1) TogglePlayerControllable(%0,!%1)

Nuoroda į komentarą
Dalintis per kitą puslapį

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

Funkcija: Masina

Naudojimas: Parasius /masina duos jums infernusa, tai gali pagelbeti kuriant nauja GM ar dar kam nors.

Kodas yra 2 budu nezinau kaip vadinasi (Nesu skripteris) bet kam reikes tas zinos katro reikia.

Kas nezinote palyginkite su kitu komandu savo pradziomis jei ne pabandykite abu variantus.

Kodas:

if(strcmp(cmdtext, "/masina", true)==0)
{
new Float:poz[4];
GetPlayerPos(playerid,poz[0],poz[1],poz[2]);
GetPlayerFacingAngle(playerid,poz[3]);
new m = AddStaticVehicle(411,poz[0],poz[1],poz[2],poz[3],0,0); // 411 - infernusas (Galite pasikeisti i kitą masinos id)[/size][/font]
PutPlayerInVehicle(playerid, m, 0);
AddVehicleComponent(m, 1010); // Nitro (Jei nereikia gali issiimt)
return 1;
}

/// Kitas variantas --->


CMD:masina(playerid,params[])
{
new Float:poz[4];
GetPlayerPos(playerid,poz[0],poz[1],poz[2]);
GetPlayerFacingAngle(playerid,poz[3]);
new m = AddStaticVehicle(411,poz[0],poz[1],poz[2],poz[3],0,0); // 411 - infernusas (Galite pasikeisti i kitą masinos id)
AddVehicleComponent(m, 1010); // Nitro (Jei nereikia gali issiimt)[/size][/font]
PutPlayerInVehicle(playerid, m, 0);
return 1;
}

Nuoroda į komentarą
Dalintis per kitą puslapį

stock masina(playerid)

{

new Float:poz[4];

GetPlayerPos(playerid,poz[0],poz[1],poz[2]);

GetPlayerFacingAngle(playerid,poz[3]);

new m = AddStaticVehicle(411,poz[0],poz[1],poz[2],poz[3],0,0); // 411 - infernusas (Galite pasikeisti i kitą masinos id)[/size][/font]

PutPlayerInVehicle(playerid, m, 0);

AddVehicleComponent(m, 1010); // Nitro (Jei nereikia gali issiimt)

}

Šitaip turėjo būti, manau :)

Nuoroda į komentarą
Dalintis per kitą puslapį

Gaunam darbo pavadinimą iš darboID

stock DarboVardas(jobID)
{
new job[50];
switch(jobid)
{
case 1: { job = "Policija";} // jei id 1 tai galite pasikeisti darbo pavadinima
case 2: { job = "Medikai";}
}
return job;
}

naudojimas :

CMD:darbas(playerid,params[])
{
new ID;
if(sscanf(params,"i",ID)) return SendClientMessage(playerid,-1,"Komanda naudojama /darbas [DARBO ID]");
new msg[100];
format(msg,sizeof(msg),"Darbo pavadinimas %s",DarboVardas(ID);
SendClientMessage(playerid,-1,msg);
return true;
}

Redaguota , nario - Aurimas
Nuoroda į komentarą
Dalintis per kitą puslapį

Funkcija: EngineStatus

Parametrai: vehicleid, bool:status

Kodas:

stock VariklisStatus(vehicleid, bool:busena)
{
new
param[7]
;
GetVehicleParamsEx(vehicleid, param[0], param[1], param[2], param[3], param[4], param[5], param[6]);
 if(busena)
{
SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, param[1], param[2], param[3], param[4], param[5], param[6]);
}
else
{
  SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, param[1], param[2], param[3], param[4], param[5], param[6]);
}
}

Naudojimas:

EngineStatus(vehicleid, true); // Įjungia mašinos variklį

EngineStatus(vehicleid, false); // Išjungia mašinos variklį

Nuoroda į komentarą
Dalintis per kitą puslapį

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

stock CountTruksta(playerid, whatammountneed)
{
new msg[ 258 ];
format(msg,sizeof(msg),"Jums trūksta %d LT iki %d LT", whatammountneed - Player[ playerid ][ Money ], whatammountneed);
SendClientMessage(playerid,-1,msg);
}

Ši f-ja padės greičiau apskaičiuoti kiek trūksta iki tam tikros sumos. Kaip reikės naudotis?:

CountTruksta(playerid, 500);

Taigi, jei aš turėsiu 400 LT tai man rodys, kad trūksta 100 LT, nes 500 - Mano money = 100;

P.S. Player[ playerid ][ Money ] galite pakeisti į GetPlayerMoney(playerid); ar į kitą jūsų pinigams naudojamą kintamąjį.

Nuoroda į komentarą
Dalintis per kitą puslapį

stock CountTruksta(playerid, whatammountneed)
{
new msg[ 258 ];
format(msg,sizeof(msg),"Jums trūksta %d LT iki %d LT", whatammountneed - Player[ playerid ][ Money ], whatammountneed);
SendClientMessage(playerid,-1,msg);
}

Ši f-ja padės greičiau apskaičiuoti kiek trūksta iki tam tikros sumos. Kaip reikės naudotis?:

CountTruksta(playerid, 500);

Taigi, jei aš turėsiu 400 LT tai man rodys, kad trūksta 100 LT, nes 500 - Mano money = 100;

P.S. Player[ playerid ][ Money ] galite pakeisti į GetPlayerMoney(playerid); ar į kitą jūsų pinigams naudojamą kintamąjį.

Tu tai vadini naudinga funkcija?
  1. Tu kuri funkcija paprasčiausiems matematiniems veiksmas
  2. "msg" yra PER DIDELIS

Nuoroda į komentarą
Dalintis per kitą puslapį

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

Čia pats geriausias variantas, jeigu kas naudos:

#define CountTruksta(%0,%1) new e_Msg[126];\
format(e_Msg,sizeof(e_Msg),"Jums trūksta %d LT iki %d LT",%1-GetPlayerMoney(%0), %1);\
SendClientMessage(%0,-1,e_Msg)
negeriausias, nes jeigu CountTruksta() f-ją naudosiu daugiau nei vieną kartą toje pačioje vietoje, mes e_Msg already defines error'ą.
Nuoroda į komentarą
Dalintis per kitą puslapį

negeriausias, nes jeigu CountTruksta() f-ją naudosiu daugiau nei vieną kartą toje pačioje vietoje, mes e_Msg already defines error'ą.

stock CountTruksta(playerid, whatammountneed)
{
    new msg[ 50 ];
    format(msg,sizeof(msg),"Jums trūksta %d LT iki %d LT", whatammountneed - Player[ playerid ][ Money ], whatammountneed);
    SendClientMessage(playerid,-1,msg);
}

Arba kaip Justas Š. sakė, geriau tokią paprastą f-ją atlikti vietoje.. Bet kaip kam ;)

Redaguota , nario DavidB
Nuoroda į komentarą
Dalintis per kitą puslapį

OnPlayerVehicleHealthChange

 

playerid - žaidėjo ID, kuris vairuoja mašiną.

vehicleid - transporto ID, kuris patiria žalą.

Damage - patirta žala.

#include <a_samp>

forward OnPlayerVehicleHealthChange(playerid, vehicleid, Float:Damage);

new engine, lights, alarm, doors, bonnet, boot, objective;
static Float:VehHealth[MAX_VEHICLES] = 1000.0;

public OnPlayerVehicleHealthChange(playerid, vehicleid, Float:Damage)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        static Float:VehHP, VehID;
        VehID = GetPlayerVehicleID(playerid);
        GetVehicleHealth(VehID, VehHP);
        if(VehHP != VehHealth[VehID] && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        CallLocalFunction("OnPlayerVehicleHealthChange", "iif", playerid, VehID,(VehHealth[VehID]-VehHP));
        VehHealth[VehID] = VehHP;
    }
    return 1;
}

Na kaip galėtumėte panaudoti šį callback'ą, parodysiu labiausiai priimtiną variantą realaus gyvenimo serveriams, tai gana smarkiai sudaužius mašiną ji užgęsta.
 

public OnPlayerVehicleHealthChange(playerid, vehicleid, Float:Damage)
{
    if(Damage > 149.0)
    {
     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
     SetVehicleParamsEx(vehicleid, 0, lights, alarm, doors, bonnet, boot, objective);
     SendClientMessage(playerid, 0xFF0000FF, "Sudaužiai mašiną, variklis nebeužsiveda.");
    }
    return 1;
}

Jei žaidėjo mašina patirs didesnę nei 149 žalą, jo mašina užges.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1713 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ą...