Jump to content

Edw24

Membru
  • Posts

    154
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by Edw24

  1. Acum 3 minute, TheRexAdv a spus:

    o protectie? ceva adk sa nu poata folosii playerii comanda /dropair?

    Adaugi tu restricția în include. :)

    Am specificat ca restricțiile nu sunt adăugate deoarece diferă definițiile de la un gm la altul. La fel si cu banii, citeste cu atentie topicul si vei sti ce vei avea de făcut. :D

    PS. Ms fain pt susținere.

  2. Salutare si bine v-am regasit. Plictisindu-ma m-am decis sa ma joc si eu putin cu scripturi si uitati ce a iesit. :D

    Tin sa mentionez ca drepturile de autor imi apartin in totalitate!

    Instalare:

    Vei avea nevoie NEAPARAT de libraria YSI adaugata in gamemode-ul tau.
    Adaugam la inceputul gamemode-ului include-urile YSI si includeul de care ne vom folosi.
    Daca aveti deja libraria YSI adaugata in gamemode adaugati doar include-ul dropAir cu un rand mai jos de librarie.
    !!!ATENTIE!!! Pastrati ordinea de mai jos.
    
    #include <YSI\y_hooks>
    #include <YSI\y_timers>
    #include <YSI\y_iterate>
    #include <dropAir>

    Adaugati in publicul OnPlayerShootDynamicObject:

    CallLocalFunction("OnPlayerShootDynamicObject_ev", "iiifff", playerid, weaponid, objectid, Float:x, Float:y, Float:z);

    Daca nu gasesti publicul OnPlayerShootDynamicObject in gamemode adauga-l tu:

    public OnPlayerShootDynamicObject(playerid, weaponid, objectid, Float:x, Float:y, Float:z) {
        CallLocalFunction("OnPlayerShootDynamicObject_ev", "iiifff", playerid, weaponid, objectid, Float:x, Float:y, Float:z);
    	return 1;
    }

    Compileaza gamemode-ul, nu ar trebui sa primesti nici-o eroare sau avertizare daca ai urmarit toti pasii corect.

    Comenzi:

    /dropair - https://imgur.com/GOtGoEr
    /gotodrop - te teleportezi direct la drop

    Sunt disponibile 10 spawn-uri pentru drop.

    Sunt disponibile 3 nivele pentru drop, lvl #1 100HP, lvl #2 200HP, lvl #3 300HP.

    Dupa "spargerea" giftului se v-a afisa un dialog (https://imgur.com/a/4QC07Xa) prin care jucatorii isi pot lua recompensa.

    De asemenea dialogul v-a arata si top 3 jucatori care au oferit cel mai multe daune gift-ului.

    Pentru editarea premiilor deschideti include-ul, aveti instructiuni in el.

    !!! ATENTIE !!!

    Restrictiile nu sunt adaugate deoarece definitiile pentru ele difera de la un gm la altul, tot la fel si funtia de bani, o adaugati tot voi.

    Pentru a putea oferi banii cautati in include pInfo[playerid][pMoney], dehasurati si adaugati functia voastra.

    !!! EDIT !!!

    Pentru cei ce folosesc gamemode Burned si primesc erorile de mai jos, urmati modeul.

    error 021: symbol already defined: "GetIP"
    error 035: argument type mismatch (argument 2)
    error 025: function heading differs from prototype

    CTRL+H si redenumiti GetIP in GetIP_

    CTRL+H si redenumiti OnPlayerLogin in OnPlayerLogin_

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    Poze: https://imgur.com/pLyMTU7 https://imgur.com/00MZHK1 https://imgur.com/38B0K7u https://imgur.com/1o0BCwj https://imgur.com/WoaaSY0 

    Download include+YSI: 

    https://www.solidfiles.com/v/4aBBwgM7gZmDg

    https://www.mediafire.com/file/adzt03h98yb28ne/dropAir.rar

    PAROLA: sirius

    Daca ti-a placut nu uita de un +1 si poate un eventual subscribe la canal. :D

    V-am salultat pe toti, ne vedem la urmatorul sistem/tutorial.

     

    • Like 1
    • Upvote 3
  3. Acum 1 oră, Dennis12. a spus:

    Tocmai de asta se ajunge unde se ajunge ... din cauza desteptilor ca voi, nu vad rostul sa faci un TUTORIAL daca nu esti in stare sa-l faci calumea.

    Tocmai de asta se numeste tutorial, ca incepatorii sa invete ceva din codul ala sau macar sa retina metoda prin care a fost scris, nu vi tu si spui " pe incepatori nu ii intereseaza optimizare ", probabil ca e adevarat, dar dupa cacatul tau de cod pe care il scri unul din 10 incepatori care citesc topicul asta o sa retina o framtura macar din codul scris de tine mai sus si cand o sa vrea sa aplice intr-un cod de al lui de exemplu treaba cu timerul, el o sa puna tot 250 acolo, fara sa aiba macar putin habar ce inseamna .. 

    Daca postai la filterscript sau orice alta sectiune era ok, as fi considerat ca atat te-a dus pe tine mintea sa faci si probabil ti-as fi sugerat cum sa lucrezi mai optim si te-as fi felicitat, dar aici sunt tutoriale, special facute pentru incepatori care vor sa invete ceva ok .. 

     

    Prietene, uite de asta se duce sa-mp-ul si noii scripteri unde se duce...Da posibil ca am gresit categoria dar intenția a fost tot un tut. Nu e nimeni obligat sa citeasca sau sa aplice tot ce am oferit eu.

    Si cand se mai posteaza un tut, fs sau include sar 2, 3 pulache de'al de tine de nu-i mai vine bietului om sa mai posteze în viața lui. 

    Eu nu va inteleg...codul pe care eu l- am scris e prost optimizat..întocmai pentru ca daca era sa il postez cât de cât optimizat trebuia sa adaug si librăria YSI întrucât il zăpăceam pe bietul om de nu-i mai venea sa mai scripteze.

    Stiu nu am fost explicit deloc...timpul pe care l-am avut la dispoziție a fost mic si m-am grăbit am zis ca revin cu un edit dar eu nu vad unde am gresit cand eu incerc sa ofer o mână de ajutor.

    Si nu vad de ce mi-ai jigni codul.."cacatul tau de cod" un om civilizat si cu capul pe umeri nu gaseste ca tine, iti spun sincer. Nu ma dau deștept doamne fereste însă din partea ta ca membru al comunității vechi ma asteptam la mai multă susținere pentru noile ideii. Puteai sa spui un simplu "băiatu' ai gresit topicul", nu sa arunci cu vorbe pe care presupun ca le-ai spus din frustrare.

    O sa revin cu un edit :).

     

    • Upvote 1
  4. Chiar acum, Lunoxx a spus:

    OnPlayerUpdate este apelat oricum, chiar daca tu adaugi alea acolo sau nu.

    Normal ca este apelat insa de ce sa il ingreunezi cu inca o functie cand tu ai avea nevoie doar de un timer spre exeplu 250 ms..avand in vedere ca onplayerupdate se apeleaza de aproximativ 30 de ori pe secunda...

    Eu unul nu ma folosesc de onplayerupdate in gamemode-ul meu...ma folosesc de timere de 250ms, 500ms si o seunda...si cu iteratori adaugati sunt mai mult decat multumit :D

  5. Chiar acum, Lunoxx a spus:

    Faci un timer global in care faci un loop pe toti jucatorii conectati, asta la 250 ms. Nu ti se pare ca ceva nu-i deloc ok?

    2 solutii care-mi vin acum, fara sa ma gandesc:
    Aplici ceea ce ai facut tu, dar iti faci un iterator in care incluzi doar jucatorii care-s in vehicule "modificare" pe scaunul soferului si faci loop doar pe astia
    sau te folosesti de OnPlayerUpdate in loc de  acel timer.

    Bun, deci vad ca tu stii cu ce se mananca.

    Deci sa fie clar..am zis ca asta-i un tutorial deci ce-l care il v-a folsi v-a fi la alegera lui daca il v-a optimiza sau nu.

    Si eu sunt de acord cu iteratorul, asa as face si eu.

    Pe de'o alta parte nu sunt deloc de acord cu onplayerupdate deoarece acest callback este apelat de aprox. 30 de ori pe secunda.

    Timerul pe care l-am setat este apelat doar de 4 ori pe secunda..si avand si un iterator care verifica jucatorii care conduc un vehcul nu v-a afecta serverul.

  6. La 14.04.2019 la 5:13, #Yudin a spus:

    De optimizatie ai auzit?

    Surprinde-ma cu ideea ta geniala de a optimiza o amarata functie :)))

    Aaa da ii adaugi un task si e optimizat? :)))

    E un simpu tutorial baa, e dedicat incepatorilor si iti spun eu unui incepator nu-i sta gandul la optimizare..

    Rautacios mai esti ma..e din samanta?

  7. Tot ce e posibil :D.

    Aici vine vorba de cateva posibilitati, prob. comanda e bulita, td-ul nu exista sau sistemul functioneaza in alt fel.

    Lasa te rog intr-un reply sau un pastebin comanda /fare sa-mi fac si eu o idee.

  8. Salut, dupa muuult timp de inactivitate si leneveala m-am gandit sa ofer un simplu si banal sistem de modificare a vitezei vehiculelor.

    Practic acest "sistem" este baza sistemului stage de pe b-hood.

    Incepem prin a defini variabilile de care ne vom folosi:

    Adaugati tot de mai jos undeva la inceputul gamemode-ului.

    #define SPEED_MULTIPLIER 1.025
    #define SPEED_THRESHOLD  0.4
    #define  SpeedUPCheck(%0,%1,%2,%3,%4)  floatround(floatsqroot(%4?(%0*%0+%1*%1+%2*%2):(%0*%0+%1*%1) ) *%3*1.7)
    new g_SpeedUpTimer = -1, Float:g_SpeedThreshold, maxSpeed[MAX_VEHICLES];
    

    Adaugati tot de mai jos in OnGameModeInit().

    g_SpeedThreshold = SPEED_THRESHOLD * SPEED_THRESHOLD;
    g_SpeedUpTimer = SetTimer("SpeedUP", 250, true);

    Adaugati tot de mai jos undeva prin gamemode.

    forward SpeedUP();
    public SpeedUP[250]() {
    	foreach(new playerid : Player) {
            new vehicleid = GetPlayerVehicleID(playerid), Float:vx, Float:vy, Float:vz, viteza = GetPlayerSpeedUP(playerid, 0);
    		if(IsPlayerInAnyVehicle(playerid)) {
         		GetVehicleVelocity(vehicleid, vx, vy, vz);
                if(vx * vx + vy * vy < g_SpeedThreshold)
                    continue;
    
                vx *= SPEED_MULTIPLIER;
                vy *= SPEED_MULTIPLIER;
    
                if (vz > 0.04 || vz < -0.04)
                vz -= 0.020;
    			if(viteza < maxSpeed[vehicleid])
    				SetVehicleVelocity(vehicleid, vx, vy, vz);
    		}
        }
    }

    Adaugati tot de mai jos undeva prin gamemode.

    stock GetPlayerSpeedUP(playerid, get3d) {
    	new veh = GetPlayerVehicleID(playerid), Float:FlSP[3];
    	GetVehicleVelocity(veh, FlSP[0], FlSP[1], FlSP[2]), SpeedUPCheck(FlSP[0], FlSP[1], FlSP[2], 100.0, get3d);
    	return 1;
    }

    Adaugati comanda undeva prin gamemode.

    CMD:maxspeedup(playerid, params[]) {
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "** Nu te afli intr-un vehicul.");
    	new speed, veh = GetPlayerVehicleID(playerid), string[51];
        if(sscanf(params, "i", speed)) return SendClientMessage(playerid, -1, "/maxspeedup [speed]");
        switch(speed) {
            case 0: return SendClientMessage(playerid, -1, "** Max speed-ul a fost eliminat!"), maxSpeed[veh] = 0, 0;
        }
        maxSpeed[veh] = speed;
        format(string, sizeof string, "** Vehiculul #%d detine acum maxSpeed-ul #%d.", veh, maxSpeed[veh]);
    	SendClientMessage(playerid, -1, string);
    	return 1;
    }

    Pentru a elimina max speed-ul de pe un vehicul tastati comanda:

    [/maxspeedup 0]

     

    Asta a fost "sistemul", daca cunosti cat de cat limbajul pwn poti dezvolta foarte usor un sistem stage ca pe fratie.

    Cine doreste sistemul stage il pot scrie la comanda cu tot cu TD-uri/Mapping pe orice gamemode pentru suma de 25 lei/5 euro.

    Daca ai probleme/nelamuriri imi poti lasa PM.

    BFT ALL, NE AUZIM LA URMATORUL TUT.

    PS: UN +1 M-AR MOTIVA ENORM :D

    PSx2: TIMERUL ESTE CEL DEFAULT, AM DECIS SA NU POSTEZ CU Y_TIMERS DEOARECE MULTI NU STIU SA IL FOLOSEASCA. PENTRU CUNOSCATORI ADAUGATI TASK-UL VOI. :D

    • Like 1
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.