Jump to content

Rayan

Membru
  • Posts

    198
  • Joined

  • Last visited

Posts posted by Rayan

  1. Acum 9 minute, Banditul a spus:

    Uhm. Incearca sa faci un print cu informatiile despre usi preluate de GetVehicleParamsEx si vezi ce valoare are poate pe undeva pe drum se reseteaza. 

    Daca totusi valoarea este corecta(incuiate) incearca sa faci un tweak(setezi dinou valoarea usilor pentru toti playeri). Sau poti seta manual valoarea usilor in SetVehicleParamsEx la engine daca ai o variabila care tine cont daca usile sunt sau nu incuiate

    Din cate se pare, problema e la fixes.inc, l-am scos si acum merge totu perfect, deci nu era de la faptul ca foloseam si SetVehicleParamsEx..

  2. Acum 16 ore, Mister a spus:

    Salut, daca ai verificat si esti sigur ca atunci cand proprietarul urca in masina se descuie atunci verifici la onplayerentervehicle si onplayerstatechange -> newstate -> player state driver

    unde este o verificare ca playerid este proprietarul masinii si sa verific ce e in neregula daca este vreo functie de unlock sau direct functia vehicleparams

    Mda, din cate vad problema e atunci cand ii dau /engine.

    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    vehEngine[vehicleid] = 1;

     

    si

    new engine, lights, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective);
    vehEngine[vehicleid] = 0;

     

    Doar atunci problema apare.. Vreo rezolvare? 

    Am citit ceva pe wiki si cica nu prea se plac SetVehicleParamsForPlayer cu SetVehicleParamsEx, insa n-am idee de o rezolvare. Daca ai una..

  3. Am o problema cu aceasta functie.

    Am o comanda /lock, si cand o folosesc, trebuie sa incuie pentru toti jucatorii usile (masina sa fie locked), iar pentru mine sa fie deschisa.

    CMD:lock(playerid, params[])
    {
            new vehicleid = user_vehicle[playerid];
            foreach(new i : Player) {
                    if(i != playerid) SetVehicleParamsForPlayer(vehicleid, i, 0, 1);
            }
            SetVehicleParamsForPlayer(vehicleid, playerid, 0, 0);
            return 1;
    }

    Totul merge ok, nimeni nu poate intra in masina, insa daca eu sunt detinatorul la masina, si ma urc in ea, dupa toti vor putea sa dea F, tinand cont ca am setat deja parametirii sa fie 1 (1 = locked).. si doar 0 (unlocked) pentru detinator (adica doar pentru mine)..

    Iar la OnVehicleStreamIn am asta:

    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    
         if(is_vehicle_personal[vehicleid] == 1)
         {
    
                if(!strcmp(vehicle_owner[vehicleid], PlayerInfo[forplayerid][pNormalName], true)) SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, 0); // unlocked
                else SetVehicleParamsForPlayer(vehvicleid, forplayerid, 0, 1); // locked because is not the  owner
         }
         return 1;
    }

     

    Nu inteleg unde e problema, am facut si un debug la functia SetVehicleParamsForPlayer si ce a iesit a fost asta:

    [16:45:56] SetVehicleParamsForPlayer(368,1,0,1)
    
    [16:45:56] SetVehicleParamsForPlayer(368,0,0,0)
    
    [16:45:56] SetVehicleParamsForPlayer(368,1,0,1)
    
    [16:45:56] SetVehicleParamsForPlayer(368,1,0,1)
    
    [16:45:57] SetVehicleParamsForPlayer(368,0,0,0)
    
    [16:45:57] SetVehicleParamsForPlayer(368,0,0,0)
    
    1 == cel ce nu detinator
    0 == jucatorul care detine masina 368

    Totul merge ok, la /lock si la OnVehicleStreamIn sunt chemate si executate ok comenzile, insa cand owneru masinii se urca in ea, practic se deblocheaza pentru toti, iar functia SetVehicleParamsForPlayer  nu e chemata (daca era chemata stiam ca e de la functia), chiar nu stiu unde e problema..

  4. La 3/30/2018 la 0:40, AndreiGB a spus:

    Salut SA:MP.Ro, m-am gandit sa va public gamemode-ul la care am lucrat destul de mult timp. Acesta este o copie fidela a server-ului ruby nephrite + multe update-uri unice.

    Acest gamemode il voi face public doar daca strang 475 de subscriberi pe canal-ul meu de youtube.

    Link: http://youtube.com/c/andreigb/

    Link gamemode: http://www19.zippyshare.com/v/3HexwFy8/file.html

    Si daca va puteti uita si peste asta ar fi ok: https://www.strawpoll.me/15408516

    Virustotal: https://www.virustotal.com/#/url/e008d394de1ab9b41c17a1d5c809081c5662fad256a93807aa6ec9c1aabfdb75/detection

    Acest gamemode detine:

    Sistem de accesorii Poze: https://imgur.com/a/AJ5XF

    Sistem de garaje Poze: https://imgur.com/a/lHpVn

    Sistem de crates Poze: https://imgur.com/a/E6Sim

    14 factiuni

    14 joburi Poze: https://imgur.com/a/xqGyg

    2 sisteme de tuning (cel default si un garaj de modern tuning pe textdraw unic) Poze: https://imgur.com/a/oIR2J

    3 job-uri unice (curier, vacar si transportator de roti)

    Sistem de anti-cheat

    Am incercat sa optimizez gamemode-ul cat mai mult si acum merge mult mai bine.

     

    un panel compatibil?

  5. Acum 8 ore, Banditul a spus:

    Hmmm....

    Ma gandesc ca SetPlayerName seteaza un nume invalid sau prea mare/mic fata de limitarile samp si cand se foloseste GetPlayerName cedeaza...Nu sunt singur

    Pune niste printf in interioru if startdel si else si putin mai sus in interiorul if strfind.

    La altceva nu ma pot gandi de ce ar crashui acolo

    ai dreptate, de la asta e, de exemplu am un clan inregistrat cu tag-ul [A] sunt 3 caractere care sunt minimile setate din samp default. e, daca ma conectez doar cu [A] si e un clan cu acest tag creat, server-ul primeste crash, deoarece incearca sa ii stearga tag-ul jucatorului fiind [A] il sterge si ramane cu niciun caracter in nickname.

    Ar trebui sa fac o verificare ca dupa ce ii sterge numele sa verific daca strlen < 3 sa ii dea kick pentru motiv nume prea scurt?

     

    edit; e ok daca pun asa? (conteaza daca e return 1 sau 0?)

    if(startdel > 0)
                {
                    new end = strlen(playername);
                    strdel(playername, startdel, end);
    				if(strlen(playername) < 3)
                    {
                       SCM(playerid, -1, "Nickname prea scurt.");
                       Kick(playerid);
                       return 0;
                    }
                    SetPlayerName(playerid, playername);
                    SetPVarInt(playerid, "with_clan_tag", 1);
                }
                else
                {
                    strdel(playername, startdel, dellenght);
                    if(strlen(playername) < 3)
                    {
                       SCM(playerid, -1, "Nickname prea scurt.");
                       Kick(playerid);
                       return 0;
                    }
                    SetPlayerName(playerid, playername);
                    SetPVarInt(playerid, "with_clan_tag", 1);
                }

     

  6. Acum 15 minute, Banditul a spus:

    Care este linia  48376 mai exact?

    cred ca asta: am recompilat gm-ul si am mai adaugat chestii si chiar numai stiu care era linia...dar asta mi se pare ca e

    GetPlayerName(playerid, numeJucator, sizeof(numeJucator));
  7. Salut, habar nu am de ce serverul a luat crash..nu mi s-a mai intamplat pana acum de la BanCheck(daca functia asta e);

    BanCheck: https://pastebin.com/hktHSTn6

    server_logs

    [16:07:25] [connection] incoming connection: 85.186.179.25:53720 id: 9
    [16:07:26] [join] renko has joined the server (9:85.186.179.25)
    [16:07:26] [debug] Server crashed while executing exgaming.amx
    [16:07:26] [debug] AMX backtrace:
    [16:07:26] [debug] #0 native SetPlayerName () from sscanf.so
    [16:07:26] [debug] #1 00309c10 in BanCheck (playerid=9) at D:\gamemode\gamemodes\exgaming.pwn:48376
    [16:07:26] [debug] #2 00095690 in public OnPlPa_OnPlayerConnect (playerid=9) at D:\gamemode\gamemodes\exgaming.pwn:8218
    [16:07:26] [debug] #3 native CallLocalFunction () from samp03svr
    [16:07:26] [debug] #4 000592dc in public inc_Ven_OnPlayerConnect (playerid=9) at D:\gamemode\pawno\include\OnPlayerPause.inc:106
    [16:07:26] [debug] #5 000520bc in public MP_OPC (playerid=9) at D:\gamemode\pawno\include\vending.inc:564
    [16:07:26] [debug] #6 native CallLocalFunction () from samp03svr
    [16:07:26] [debug] #7 000406ac in public SSCANF_OnPlayerConnect (playerid=9) at D:\gamemode\pawno\include\mSelection.inc:432
    [16:07:26] [debug] #8 000356d8 in public _y_utils_OnPlayerConnect (playerid=9) at D:\gamemode\pawno\include\sscanf2.inc:236
    [16:07:26] [debug] #9 0000a10c in public AB_OnPlayerConnect (playerid=9) at D:\gamemode\pawno\include\YSI\..\YSI_Coding\..\YSI_Core\y_utils.inc:236
    [16:07:26] [debug] #10 000010b0 in OnPlayerConnect (playerid=9, ... <1073741822 arguments>) at D:\gamemode\pawno\include\OPA.inc:104
    [16:07:26] [debug] #11 0000b0e0 in public OnPlayerConnect (... <1 argument>) at D:\gamemode\pawno\include\YSI\..\YSI_Coding\..\YSI_Internal\y_cgen.inc:30
    [16:07:26] [debug] Native backtrace:
    [16:07:26] [debug] #0 b642ee8b in _ZN10StackTraceC1EPv () from plugins/crashdetect.so
    [16:07:26] [debug] #1 b6427bcf in _ZN11CrashDetect20PrintNativeBacktraceERSoPv () from plugins/crashdetect.so
    [16:07:26] [debug] #2 b6428dbc in _ZN11CrashDetect20PrintNativeBacktraceEPv () from plugins/crashdetect.so
    [16:07:26] [debug] #3 b6429226 in _ZN11CrashDetect11OnExceptionEPv () from plugins/crashdetect.so
    [16:07:26] [debug] #4 b642eadc in ?? () from plugins/crashdetect.so
    [16:07:26] [debug] #5 b771f600 in ?? ()
    [16:07:26] [debug] #6 080d5a67 in ?? () from ./samp03svr
    [16:07:26] [debug] #7 080d7a95 in ?? () from ./samp03svr
    [16:07:26] [debug] #8 b645ab56 in ?? () from plugins/sscanf.so
    [16:07:26] [debug] #9 080950e4 in ?? () from ./samp03svr
    [16:07:26] [debug] #10 b642a94b in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
    [16:07:26] [debug] #11 b642d8f8 in ?? () from plugins/crashdetect.so
    [16:07:26] [debug] #12 b6431916 in amx_Exec () from plugins/crashdetect.so
    [16:07:26] [debug] #13 b6429be6 in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
    [16:07:26] [debug] #14 b642d659 in ?? () from plugins/crashdetect.so
    [16:07:26] [debug] #15 b6076826 in ?? () from plugins/streamer.so
    [16:07:26] [debug] #16 080dfd62 in ?? () from ./samp03svr
    [16:07:26] [debug] #17 080950e4 in ?? () from ./samp03svr
    [16:07:26] [debug] #18 b642a94b in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
    [16:07:26] [debug] #19 b642d8f8 in ?? () from plugins/crashdetect.so
    [16:07:26] [debug] #20 b6431916 in amx_Exec () from plugins/crashdetect.so
    [16:07:26] [debug] #21 b6429be6 in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
    [16:07:26] [debug] #22 b642d659 in ?? () from plugins/crashdetect.so
    [16:07:26] [debug] #23 b6076826 in ?? () from plugins/streamer.so
    [16:07:26] [debug] #24 080dfd62 in ?? () from ./samp03svr
    [16:07:26] [debug] #25 080950e4 in ?? () from ./samp03svr
    [16:07:26] [debug] #26 b642a94b in _ZN11CrashDetect13DoAmxCallbackEiPiS0_ () from plugins/crashdetect.so
    [16:07:26] [debug] #27 b642d8f8 in ?? () from plugins/crashdetect.so
    [16:07:26] [debug] #28 b6431916 in amx_Exec () from plugins/crashdetect.so
    [16:07:26] [debug] #29 b6429be6 in _ZN11CrashDetect9DoAmxExecEPii () from plugins/crashdetect.so
    [16:07:26] [debug] #30 b642d659 in ?? () from plugins/crashdetect.so
    [16:07:26] [debug] #31 b6076826 in ?? () from plugins/streamer.so
    [16:07:26] [debug] #32 080a51c9 in ?? () from ./samp03svr
    [16:07:26] [debug] #33 080d09ff in ?? () from ./samp03svr
    [16:07:26] [debug] #34 080b5515 in ?? () from ./samp03svr
    [16:07:26] [debug] #35 08071d38 in ?? () from ./samp03svr
    [16:07:26] [debug] #36 08071e32 in ?? () from ./samp03svr
    [16:07:26] [debug] #37 0807bc50 in ?? () from ./samp03svr
    [16:07:26] [debug] #38 080aed3d in ?? () from ./samp03svr
    [16:07:26] [debug] #39 080aef02 in ?? () from ./samp03svr
    [16:07:26] [debug] #40 080aa13a in ?? () from ./samp03svr
    [16:07:26] [debug] #41 b7443d26 in __libc_start_main () from /lib/libc.so.6
    [16:07:26] [debug] #42 0804b4e1 in ?? () from ./samp03svr

  8. 1 oră în urmă, Banditul a spus:

    Ce ai uitat tu sa faci este sa oferi la stringuri o continuitate , fiind intr-o bucla care e de n ori formatezi acelasi string de n ori si nu il copiezi pe cel precedent la cel actual. Sunt 2 variainte, cum a facut eu sau folosind strcat(putin mai optim). Practic copiai o informatie de n ori fara sa salvezi ce era inaintea ei si ramanea ultima(sper sa fie de la asta , altceva nu vad)

    Acum arata asa: https://imgur.com/a/l5rXN

  9. Acum 17 ore, Mister a spus:

    De ce nu maresti pur si simplu ''rangeofpointul'' pentru tonomat. In include ai aceste defineuri, si modifici in 1.5

    
    #define SODA_RADIUS					1.2
    #define SPRUNK_RADIUS				1.05
    #define SNACK_RADIUS				1.05

     

    le-am pus si la 2.5 / 3 , 5, 100, si tot nu merge, e la fel ca inainte, nicio schimbare, trebuie sa fiu la fel ca in pozele de mai sus ca sa il folosesc.

  10. Salut, folosesc acest include http://forum.sa-mp.com/showthread.php?t=553952

    Insa am o mica problema la el. Pot folosi dozatorul/vending-ul cum vrei sa-i zici, doar cand sunt langa el, nu si cand sunt cu fata lui. Vedeti pozele de mai jos.

    Cum as putea rezolva? Am incercat sa schimb coordonatele, IsPlayerInRangeOfPoint, insa la fel...

    include: https://pastebin.com/wCJLUVKL

    Poze: https://imgur.com/a/m0rjZ

  11. Salut, am o comanda /last punish cu care verific fiecarui jucator sanctiunile.

    Problema este ca nu afiseaza corect id-ul sanctiuni din baza de date, poza: https://imgur.com/a/ZpQyL

    cod-ul este acesta:

    if(strcmp(list,"punish",true) == 0)
                {
                    new iddd;
                    if(id != -1)
                    {
                        format(query, sizeof(query), "SELECT * FROM `punishlogs` WHERE `playerid`='%d' ORDER BY `ID` DESC LIMIT %d", PlayerInfo[id][pSQLID], lines);
                        new Cache: resultt = mysql_query(SQL, query);
                        for(new i, j = cache_get_row_count (); i != j; ++i)
                        {
                            iddd                        = cache_get_field_content_int(i, "id");
                            cache_get_field_content(i, "time", result); format(test, 300, result);
                            cache_get_field_content(i, "reason", result); format(reason, 300, result);
                            actionid                    = cache_get_field_content_int(i, "actionid");
                            actiontime                  = cache_get_field_content_int(i, "actiontime");
                            cache_get_field_content(i, "playername", result); format(name, 30, result);
                            cache_get_field_content(i, "givername", result); format(name2, 30, result);
                            if(actionid == 1)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Ban: %s has been permanent banned by %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                            else if(actionid == 2)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Ban: %s has been banned by %s for %d days, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 3)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] IP Ban: %s has been permanent banned by %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                            else if(actionid == 4)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] IP Ban: %s has been banned by %s for %d days, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 5)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Warn: %s received a warn from admin %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                            else if(actionid == 6)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Jail: %s was jailed by %s for %d minutes, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 7)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Mute: %s has been muted by %s for %d minutes, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 8)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] %s was released from jail by admin %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                        }
                        cache_delete(resultt);
                        ShowPlayerDialog(playerid,DIALOG_LASTS,DIALOG_STYLE_MSGBOX,"punish for player",string,"Close","");
                    }
                    else
                    {
                        format(query, sizeof(query), "SELECT * FROM `punishlogs` ORDER BY `ID` DESC LIMIT %d", lines);
                        new Cache: resultt = mysql_query(SQL, query);
                        for(new i, j = cache_get_row_count (); i != j; ++i)
                        {
                            iddd                    = cache_get_field_content_int(i, "id");
                            cache_get_field_content(i, "time", result); format(test, 300, result);
                            cache_get_field_content(i, "reason", result); format(reason, 300, result);
                            actionid                    = cache_get_field_content_int(i, "actionid");
                            actiontime                  = cache_get_field_content_int(i, "actiontime");
                            cache_get_field_content(i, "playername", result); format(name, 30, result);
                            cache_get_field_content(i, "givername", result); format(name2, 30, result);
                            if(actionid == 1)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Ban: %s has been permanent banned by %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                            else if(actionid == 2)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Ban: %s has been banned by %s for %d days, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 3)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] IP Ban: %s has been permanent banned by %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                            else if(actionid == 4)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] IP Ban: %s has been banned by %s for %d days, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 5)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Warn: %s received a warn from admin %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                            else if(actionid == 6)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Jail: %s was jailed by %s for %d minutes, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 7)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] Mute: %s has been muted by %s for %d minutes, reason: %s.\n",iddd,string,test,name,name2,actiontime,reason);
                            }
                            else if(actionid == 8)
                            {
                                format(string,sizeof(string),"(#%d) %s[%s] %s was released from jail by admin %s, reason: %s.\n",iddd,string,test,name,name2,reason);
                            }
                        }
                        cache_delete(resultt);
                        ShowPlayerDialog(playerid,DIALOG_LASTS,DIALOG_STYLE_MSGBOX,"punish",string,"Close","");
                    }
                }
  12. Acum 30 minute, Banditul a spus:
    
    EmailId[playerid][idd]

    Asta cel mai probabil este pagubasu. Ori maresti array-ul EmailID (EmailID[MAX_PLAYERS][10] ma gandesc) ori scazi acel LIMIT

    am rezolvat asta, legat de functie, e la fel ca inainte, imi apare la fel ca prima oara, nu sorteaza necititele, la fel, gen arata primele 20 insa daca mai jos de 20 sunt necitite nu apar primele, raman tot acolo gen sorteaza doar dupa ID si nu si dupa EmailRead

  13. Acum 18 minute, Banditul a spus:

    Hmmm atunci:

    
    format(query, sizeof(query), "SELECT * FROM `emails` WHERE `playerid` = %d ORDER BY `ID` DESC, EmailRead ASC LIMIT 20

    Si iti va grupa emailurile de la ultimu la primu, si de la necitit la citit

    Imi da SERVER: Unknown command.

    server_log

    [17:50:27] [debug] Run time error 4: "Array index out of bounds"
    [17:50:27] [debug] AMX backtrace:
    [17:50:27] [debug] #0 0022e488 in public cmd_email (playerid=0, params[]=@0362126c "") at D:\gamemode\gamemodes\exgaming.pwn:34890
    [17:50:27] [debug] #1 0022dfbc in public cmd_emails (playerid=0, params[]=@0362126c "") at D:\gamemode\gamemodes\exgaming.pwn:34872
    [17:50:27] [debug] #2 native CallLocalFunction () from samp-server.exe
    [17:50:27] [debug] #3 00037b18 in public OnPlayerCommandText (playerid=0, cmdtext[]=@0362124c "/emails") at D:\gamemode\pawno\include\zcmd.inc:102
    [17:50:29] [debug] Run time error 4: "Array index out of bounds"
    [17:50:29] [debug] AMX backtrace:
    [17:50:29] [debug] #0 0022e488 in public cmd_email (playerid=0, params[]=@03621268 "") at D:\gamemode\gamemodes\exgaming.pwn:34890
    [17:50:29] [debug] #1 native CallLocalFunction () from samp-server.exe
    [17:50:29] [debug] #2 00037b18 in public OnPlayerCommandText (playerid=0, cmdtext[]=@0362124c "/email") at D:\gamemode\pawno\include\zcmd.inc:102

     

×
×
  • 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.