-
Posts
113 -
Joined
-
Last visited
-
Days Won
6
Content Type
Profiles
Forums
News
Documentation
Everything posted by irinelbro69
-
Salut! Vand gamemode de la 0 scris in perioada 14 oct 2021 - 1 iulie 2022. Gamemode-ul are in jur de 25,000 linii si este gata in proportie de 95 la suta (mai trebuiesc finalizate cateva). Poate fi pus si pe open.mp foarte usor (nu exista probleme, e adaptat 100% si pentru open.mp). Acesta a rulat pe comunitatea mea timp de o saptamana dar am decis impreuna cu celalalt fondator sa inchidem serverul si sa ne axam pe ceva mult mai interesant. In toata aceasta perioada cat timp serverul a fost online am avut ce-i drept cateva probleme dar le-am rezolvat cu succes, facandu-l foarte stabil. Gamemode-ul este foarte bun pentru a face update-uri pe el si are un cod scris foarte ok, cu multe functii ce pot usura treaba. La un numar de aproape 50 on am avut in jur de 195-196 tick-uri (e irelevant pentru un server de SA:MP cu 50 jucatori ca nu are ce performanta sa consume), dupa parerea mea ar mentine lejer 500+ jucatori. Gamemode-ul contine urmatoarele sisteme (in mare parte): - sistem de logare / inregistrare - sistem de admini + helperi pe puncte - contorizare ore jucatori in ultimele 7 zile - actiuni care se pot procesa de pe panel (trebuie doar sa inserati un query cand faceti o actiune pe panel si se proceseaza in maxim 10 secunde pe joc): kick-uri, ban-uri, mute-uri, warn-uri si poti da/lua ametiste jucatorilor - sistem de joburi dinamice - sistem de case dinamice - sistem de business-uri dinamice - sistem de vehicule personale - sistem de dealership dinamic (unic in mare parte) - sistem de skill-uri (se pot adauga skill-uri din baza de date si totodata si numarul de puncte necesare) - sistem de quest-uri zilnice - 8 joburi unice - sistem de cont premium pe zile - sistem de vehicule dinamice - sistem de rentcar (puteti face orice vehicul inchiriabil) - sistem de skinuri personale + beneficii - sistem de referal cu promo code-uri - sistem de barbut unic - sistem de clanuri bazate pe level si XP - sistem de scoala de soferi cu test teoretic + practic (se pot modifica intrebarile din baza de date) Mai multe video-uri in care este prezentat gamemode-ul (mai puteti cauta voi pe youtube): Pretul acestui gamemode este de 40 euro / 200 lei. Ca metode de plata accept doar PayPal / transfer bancar. Ofer suport 7 zile de la cumparare pentru rezolvarea bugurilor si a problemelor. Metode de contact: - Instagram: @irinelbro69 - Discord: irinelbro69#8416 - Email: [email protected] Rog seriozitate!
-
Salut, da-mi PM pe discord: irinel77#3505.
-
Daca ai nevoie de un gamemode mult mai mult decat decent, astept mesaj pe discord: irinel77#3505.
-
Pur si simplu faci 2 foldere numite fixes si temp in folderul scriptfiles.
-
if(NumIp(playerip, playerid) >= 5 && !IsBotOnIP(playerip)) in loc de 5 pune mai mult.
-
UP! Inca e valabil.
-
Username: irinel77z Varsta: 16 Ce vinzi?: Gamemode de la 0 RPG scris in perioada 2020-2021. Dovada (că sunteti in posesia produsului) OBLIGATORIU: Pret: 30 euro / 150 lei (PayPal / Transfer bancar). Detalii de contact: Discord: irinel77#3505, Instagram: @irinelbro69 sau email: [email protected] Alte precizari: Gamemode-ul a rulat in trecut pe rpg.l*******a.ro si a avut un numar de aprox. 190 tick-uri la 95 on. Am refacut si reparat cateva sisteme dupa ce am decis sa iesim din comunitate (din cauza unui singur om - pt cei care se intreaba de ce n-am continuat cu acest gm) si sa ne apucam de un alt gamemode de la 0 cu un cod foarte bun. Nu e cod scris cu picioarele, mai sunt probabil cateva functii neadaptate inca pentru un cod bine scris in zilele de astazi. Ofer suport 7 zile de la cumparare pentru repararea bugurilor (important e sa raportati orice bug in cele 7 zile de suport, le rezolv cu mare drag). O sa va las cateva video-uri cu cateva sisteme din acest gamemode mai jos si cam ce update-uri i-au fost aduse in timp ce a rulat pe comunitatea l*******a. Rog seriozitate! ** Am decis sa cenzurez numele comunitatii deoarece nu doresc sa le fac reclama. ** Lista update-uri: https://pastebin.com/3NnUC4vu
-
100000 scripteri pt un cct de sv
-
Iti recomand sa gandesti sistemul altfel, o sa-ti las un exemplu mai jos de la care poti porni la ceva mai complex: 1. creeaza o enumeratie pentru a stoca fiecare radar in parte enum radars { radarID, Float:radarRadius, Float:radarPositionX, Float:radarPositionY, Float:radarPositionZ, radarPlacer, // player id radarLimit, // limita in km/h } 2. defineste variabilele pe care le vei folosi new server_radars[10][radars], // pe server sa poata exista maxim 10 radare Iterator:sv_radars<10>; // definim iteratorul pentru radare new placed_radar[MAX_PLAYERS], // aici definim variabila care stocheaza ID-ul radar-ului plasat de catre jucator radar_delay[MAX_PLAYERS]; // delay /radar 3. creeaza o functie prin care inserezi un radar stock PlaceRadar(playerid, Float:radius, limit) { new i = Iter_Free(sv_radars); server_radars[i][radarID] = i+1; server_radars[i][radarRadius] = radius; new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); server_radars[i][radarPositionX] = X; server_radars[i][radarPositionY] = Y; server_radars[i][radarPositionZ] = Z; server_radars[i][radarPlacer] = i; server_radars[i][radarLimit] = limit; Iter_Add(sv_radars, server_radars[i][radarID]); return SCM(playerid, -1, "Radar %d placed (%d km/h) - radius: %0.1fm.", server_radars[i][radarID], limit, radius); } 4. creeaza o alta functie prin care stergi radarul jucatorului: stock DestroyRadar(playerid) { if(placed_radar[playerid] > 0) { new r = placed_radar[playerid]; server_radars[r][radarRadius] = 0.0; server_radars[r][radarPositionX] = server_radars[r][radarPositionY] = server_radars[r][radarPositonZ] = 0.0; server_radars[r][radarPlacer] = INVALID_PLAYER_ID; server_radars[r][radarLimit] = 0; Iter_Remove(sv_radars, r); placed_radar[playerid] = 0; radar_delay[playerid] = 0; } return 1; } 5. la conectare apeleaza functia DestroyRadar 6. comanda /placeradar: YCMD:placeradar(playerid, params[], help) { // aici pui tu verificarile daca e copoi if(radar_delay[playerid] > gettime()) return SCM(playerid, -1, "Poti folosi aceasta comanda din nou peste %d secunde.", radar_delay[playerid]-gettime()); if(placed_radar[playerid] != 0) return SCM(playerid, -1, "Ai deja un radar plasat!"); if(Iter_Count(sv_radars) >= 10) return SCM(playerid, -1, "Eroare: Pot fi maxim 10 radare deodata pe server."); new radius, limit; if(sscanf(params, "dd", radius, limit)) return SCM(playerid, -1, "/placeradar [raza] [limita de viteza]"); if(radius < 100 || radius > 300) return SCM(playerid, -1, "Eroare: Raza de actiune trebuie sa fie cuprinsa intre 100 si 300 metri."); if(limit < 60 || limit > 200) return SCM(playerid, -1, "Eroare: Limita de viteza trebuie sa fie cuprinsa intre 60 si 200 km/h."); PlaceRadar(playerid, radius, limit); radar_delay[playerid] = gettime() + 45; // pui tu un mesaj de ex care anunta politistii de pe server ca a pus x radar return 1; } 7. in final, timerul pentru verificarea vitezei: ptask check_radar[1000](playerid) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && placed_radar[playerid] == 0) { // verificam daca e intr-un vehicul ca sofer si sa nu-l ia radaru' in caz de el l-a pus new speed = Carspeed(playerid); foreach(new r : sv_radars) { if(IsPlayerInRangeOfPoint(playerid, server_radars[r][radarRadius], server_radars[r][radarPositionX], server_radars[r][radarPositionY], server_radars[r][radarPositionZ])) { if((speed+10) >= server_radars[r][radarLimit]) { // verificam daca limita de viteza este incalcata cu minim 10km/h // si aici pui sa-l ia radaru' } } } } } Sper sa te ajute si sa nu fie probleme (n-am testat, am gandit pe loc chestia). Succes!
-
#1 "local variable "gString" shadows a variable at a preceding level" Aceasta variabila a fost definita probabil mai sus, incearca acest cod: new nick[MAX_PLAYER_NAME]; cache_get_field_content(0, "name", nick, MAX_PLAYER_NAME); #2 Deoarece variabila ta este boolean, trebuie sa o incarci folosindu-te de chestia aceasta: sau poti scrie direct: CarInfo[id][cRainBow] = bool:cache_get_field_content_int(0, "RainBow");
-
Salut ! De ce primesc loose identitation ?
irinelbro69 replied to GamerulFOX's topic in Discuţii scripting
Codul nu este aranjat corect. Pe viitor incearca sa aliniezi liniile corect, succes! public OnPlayerConnect(playerid) { new name[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), SAVE, name); if(!dini_Exists(file)) { ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Salut, nu ai un cont!", "Te rog scrie o parola !", "Register", "Inchide"); TextDrawShowForPlayer(playerid, TDEditor_TD[7]); TextDrawShowForPlayer(playerid, TDEditor_TD[8]); format(ReportText[playerid], 256, "None"); PlayerInfo[playerid][pFier] = FierVechi[playerid]; UpdateSpeed[playerid] = false; SpdObj[playerid][0] = INVALID_OBJECT_ID; SpdObj[playerid][1] = INVALID_OBJECT_ID; PlayerJob[playerid] = 0; Checkpoint[playerid] = 0; JobVehicle[playerid] = 0; JobWorking[playerid] = 0; PlayerJob1[playerid] = 0; Checkpoint1[playerid] = 0; JobVehicle1[playerid] = 0; JobWorking1[playerid] = 0; PlayerJob2[playerid] = 0; Checkpoint2[playerid] = 0; JobVehicle2[playerid] = 0; JobWorking2[playerid] = 0; CursaCheckpoint[playerid] = 0; CursaCar[playerid] = 0; Report[playerid] = 0; masinaadmin[playerid] = 0; Event[playerid] = 0; pEvent[playerid] = 0; Gift[playerid] = 0; GiftC[playerid] = 0; Bonus[playerid] = 0; SpecialQuest[playerid] = 0; SpecialQuestCheckpoint[playerid] = 0; Salutare[playerid] = 0; DrivingCheckpoint[playerid] = 0; MasinaDMV[playerid] = 0; fPolitie[playerid] = 0; fMedic[playerid] = 0; fTaxi[playerid] = 0; fProTv[playerid] = 0; IsInCar[playerid] = 0; gPlayerLogged[playerid] = 0; } if(fexist(file)) { if(PlayerInfo[playerid][pBan] == 1){ SendClientMessage(playerid, 0xff0000FF, "Esti Banat !"); Kick(playerid); return 1; } ShowPlayerDialog(playerid, Login, DIALOG_STYLE_INPUT, "Salut, ai deja un cont!", "Te rog scrie parola !", "Login", "Inchide"); TextDrawShowForPlayer(playerid, TDEditor_TD[0]); TextDrawShowForPlayer(playerid, TDEditor_TD[1]); format(ReportText[playerid], 256, "None"); PlayerInfo[playerid][pFier] = FierVechi[playerid]; UpdateSpeed[playerid] = false; SpdObj[playerid][0] = INVALID_OBJECT_ID; SpdObj[playerid][1] = INVALID_OBJECT_ID; PlayerJob[playerid] = 0; Checkpoint[playerid] = 0; JobVehicle[playerid] = 0; JobWorking[playerid] = 0; PlayerJob1[playerid] = 0; Checkpoint1[playerid] = 0; JobVehicle1[playerid] = 0; JobWorking1[playerid] = 0; PlayerJob2[playerid] = 0; Checkpoint2[playerid] = 0; JobVehicle2[playerid] = 0; JobWorking2[playerid] = 0; CursaCheckpoint[playerid] = 0; CursaCar[playerid] = 0; Report[playerid] = 0; masinaadmin[playerid] = 0; Event[playerid] = 0; pEvent[playerid] = 0; Gift[playerid] = 0; GiftC[playerid] = 0; Bonus[playerid] = 0; SpecialQuest[playerid] = 0; SpecialQuestCheckpoint[playerid] = 0; Salutare[playerid] = 0; DrivingCheckpoint[playerid] = 0; MasinaDMV[playerid] = 0; fPolitie[playerid] = 0; fMedic[playerid] = 0; fTaxi[playerid] = 0; fProTv[playerid] = 0; IsInCar[playerid] = 0; gPlayerLogged[playerid] = 0; } return 1; } -
Inainte de aceasta linie: DestroyVehicle(car); Adauga: VehicleOccupied[car] = 0; Tu trebuie sa pui aceasta valoare pe 0 inainte de a distruge vehiculul, ca urmatorul vehicul ce va capata acest ID sa nu aiba valoarea pe 1 si sa fie 0. Sper ca te-am ajutat.
-
Exemplu - se reseteaza la relog: public OnPlayerDisconnect(playerid, reason) { SetPVarInt(playerid, "cmd_comanda_folosit", 0); return 1; } YCMD:comanda(playerid, params[], help) { if(GetPVarInt(playerid, "cmd_comanda_folosit") == 1) return SendClientMessage(playerid, -1, "Nu mai poti folosi aceasta comanda."); SetPVarInt(playerid, "cmd_comanda_folosit", 1); SendClientMessage(playerid, -1, "Nu vei mai putea folosi aceasta comanda pana la urmatorul relog."); return 1; } Dacă vrei să poată folosi acea comanda doar o singură dată indiferent dacă dă relog sau nu, adaugă în baza de date în tabelul conturilor: "cmdComandaUsed" si te poti lua dupa urmatorul exemplu: YCMD:comanda(playerid, params[], help) { if(playerVariables[playerid][pComandaUsed] == 1) return SendClientMessage(playerid, -1, "Nu mai poti folosi aceasta comanda."); playerVariables[playerid][pComandaUsed] = 1; SendClientMessage(playerid, -1, "Nu vei mai putea folosi aceasta comanda."); gQuery[0] = EOS; mysql_format(SQL, gQuery, sizeof(gQuery), "update `users` set `cmdComandaUsed` = '1' where `playerID` = '%d'", playerVariables[playerid][pSQLID]); mysql_tquery(SQL, gQuery, "", ""); return 1; } Eu am folosit variabilele din gamemode-ul meu, poti adapta foarte usor. Mult succes!
-
Orice valoare mai mare de 2147483647 mi-o da pe minus sau alte minuni
irinelbro69 replied to Wreeper's question in Ajutor Scripting
Pare destul de eficient, momentan... Poate o sa-l incerc si pe al tau. Mersi de sfat, insa am preferat ceva mai simplu, nu sa ma folosesc de nu stiu cati operatori si alte chestii. -
Orice valoare mai mare de 2147483647 mi-o da pe minus sau alte minuni
irinelbro69 replied to Wreeper's question in Ajutor Scripting
Iti recomand sa te folosesti de BigInt-ul lui Matt, eu il folosesc de cand l-a pus pe forum si am priceput foarte repede cum sa-l folosesc, ai si un mic tutorial in .inc. https://github.com/ItssMatt/samp/blob/master/bigint -
"Cu toate acestea doresc sa pun un easter quest facut de mine la download"
-
Caut scripter extrem de priceput
irinelbro69 replied to RaduAdvv's topic in Caut servicii / partener / etc.
Salut, ma poti contacta pe Discord: irinel77#3505. In decembrie se fac 5 ani de cand sunt in domeniu :). -
Nu e nevoie de tutorial. Daca vrei sa-l faci ca pe b-hood adauga o noua optiune in shop: Reborn, apoi creeaza o functie (rebornPlayer de exemplu) si aici resetezi toate variabilele jucatorului (level, bani, casa etc.) sau ce vrei tu sa i se reseteze.
-
else { DestroyObject(TurnLight[vehicleid][2]); DestroyObject(TurnLight[vehicleid][3]); TurnLight[vehicleid][2] = 0; TurnLight[vehicleid][3] = 0; } } } return 1; Incearca asta.
-
In baza de date nu exista coloana 'Reward' in tabelul 'users'.
-
Salut ! Cine ma poate ajuta cu o comanda ?
irinelbro69 replied to GamerulFOX's topic in Discuţii scripting
public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp("/vreauarma", cmdtext, true, 10) == 0) { if(GetPlayerMoney(playerid) < 15000) return SendClientMessage(playerid, 0x00FF00FF, "Nu ai bani suficienti."); GivePlayerWeapon(playerid, 24, 100); SendClientMessage(playerid, 0x5175adFF, "(-) Ai cumparat un Deagle pentru $15.000."); GivePlayerMoney(playerid, -15000); return 1; } } Poftim. -
La OnPlayerConnect/OnPlayerDisconnect pune StartQuest[playerid] = 0;