Jump to content

DiBlaine

Member
  • Posts

    27
  • Joined

  • Last visited

  • Days Won

    4

Reputation Activity

  1. Ador
    DiBlaine reacted to Gabriel03 in Tutorial - DMV System   
    Bravo!
     
    E bun pentru incepatori
  2. Like
    DiBlaine got a reaction from Wildo in Problema Stocare ID MYSQL   
    // VARIABILA GLOBALA new WarSQLID[99+1]; // MODIFICI 99 IN FUNCTIE DE CATE LOGURI CREZI CA VEI AVEA(poti avea 100, poti avea 1000, poti avea si 10000, depinde cat de populat este serverul si in functie de cate war-uri se dau pe server) DACA VEI AVEA MAI MULT DE 99 DE WAR-URI IN BAZA DE DATE, ORICE WARSQLID DE LA 99 IN SUS VA AVEA VALOAREA 0, ADICA WarSQLID[100] = 0 / WarSQLID[101] = 0; ETC // AICI STOCHEZI ID-UL DE LA WAR IN VARIABILA GLOBALA new sqlid = cache_insert_id(); WarSQLID[sqlid] = sqlid; Daca nu te descurci, lasa partea in care inserezi war-ul in baza de date.
  3. Ador
    DiBlaine got a reaction from Ian15 in [REZOLVAT] Incarcare Pickup-uri din MySQL   
    Pai, pentru prima data trebuie sa creezi in baza de date 7/8 tabele, ID - Text - PosX - PosY - PosZ -  Interior - VirtualWorld - Type(type e optional, in caz ca vrei si alte tipuri de pickupuri, inafara de clasicele pickup-uri in forma de i, acele galbene). Tabelele PosX - PosY - PosZ trebuie sa le creezi de tip FLOAT si Name trebuie sa il creezi de tip VARCHAR, la lungime pui 50(modifici in functie de cat de lungi vor fi textele pe care le vei avea la pickup-uri), iar in rest celelalte le creezi de tip INT, iar la ID sa nu uiti sa selectezi A_I(Auto Increment).
    Apoi trebuie sa le definiesti variabilele de ex:
    #define MAX_PICKUPS 50 // aici modifici in functie de cate pickup-uri vrei sa ai pe server enum pickups { pickupID, pickupText[50], // string-ul il maresti in functie de cat de lungi vor fi textele pe care le vei avea la pickup-uri FLOAT:pickupPosX, FLOAT:pickupPosY, FLOAT:pickupPosZ, pickupInt, pickupVW, pickupPickup, Text3D:pickupLabel // daca lasi optionalul sterge linia asta /* //OPTIONAL Text3D:pickupLabel, pickupType */ //OPTIONAL // STERGE ULTIMELE 3 LINII DACA NU VREI OPTIONALUL }; new PickupsInfo[MAX_PICKUPS][pickups], serverPickups = 0; Apoi trebuie sa le incarci din baza de date de ex:
    function LoadPickups() { new Cache: db = mysql_query(SQL, "SELECT * FROM `pickups` ORDER BY `pickups`.`ID` ASC"); new x, result[50], string[50]; for(new i, j = cache_get_row_count (); i != j; ++i) { serverPickups ++; cache_get_field_content(i, "ID", result); x = strval(result); PickupsInfo[x][pickupID] = x; cache_get_field_content(i, "Text", result); format(PickupsInfo[x][pickupText], 50, result); cache_get_field_content(i, "PosX", result); PickupsInfo[x][pickupPosX] = strval(result); cache_get_field_content(i, "PosY", result); PickupsInfo[x][pickupPosY] = strval(result); cache_get_field_content(i, "PosZ", result); PickupsInfo[x][pickupPosZ] = floatstr(result); cache_get_field_content(i, "Interior", result); PickupsInfo[x][pickupInt] = strval(result); cache_get_field_content(i, "VirtualWorld", result); PickupsInfo[x][pickupVW] = strval(result); // OPTIONAL // cache_get_field_content(i, "Type", result); PickupsInfo[x][pickupType] = strval(result); // OPTIONAL // PickupsInfo[x][pickupPickup] = CreateDynamicPickup(PickupsInfo[x][pickupType], 23, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 30.0); PickupsInfo[x][pickupPickup] = CreateDynamicPickup(1239, 23, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 30.0); format(string, sizeof(string), "SQL Pickup ID: %d\n%s", PickupsInfo[x][pickupID], PickupsInfo[x][pickupText]); PickupsInfo[x][pickupLabel] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 10.0); } printf("Pickups: %d", serverPickups); cache_delete(db); return 1; } Ti-am facut toata partea de incarcare si definire a pickup-urilor din baza de date, acum comanda de creeare a pickup-urilor din joc:
    YCMD:createpickup(playerid, params[], help) { if(serverPickups == 50) return SCM(playerid, -1, "Ai deja 50 de pickp-uri create pe server!"); // OPTIONAL // new int, vw, type, ptext[50], inputtext[50], query[256], string[128]; // OPTIONAL // if(sscanf(params, "s[50]iii", inputtext, int, vw, type)) return SCM(playerid, COLOR_GREY, "USAGE: {FFFFFF}/createpickup <text> <interior> <virtualworld> <type>"); new int, vw, ptext[50], inputtext[50], query[256], string[128]; if(sscanf(params, "s[50]ii", inputtext, int, vw)) return SCM(playerid, COLOR_GREY, "USAGE: {FFFFFF}/createpickup <text> <interior> <virtualworld>"); if(strlen(inputtext) == 0 || strlen(inputtext) > 49) return SCM(playerid, -1, "Introdu un text intre 0 si 49 caractere!"); new Float: x, Float: y, Float: z; GetPlayerPos(playerid, x, y, z); format(ptext, 50, inputtext); // OPTIONAL // mysql_format(SQL, query, sizeof(query),"INSERT INTO `pickups` (`Text`, `PosX`, `PosY`, `PosZ`, `Interior`, `VirtualWorld`, `Type`) VALUES ('%s', '%f', '%f', '%f', '%d', '%d', '%d')", ptext, x, y, z, int, vw, type); mysql_format(SQL, query, sizeof(query),"INSERT INTO `pickups` (`Text`, `PosX`, `PosY`, `PosZ`, `Interior`, `VirtualWorld`) VALUES ('%s', '%f', '%f', '%f', '%d', '%d')", ptext, x, y, z, int, vw); new Cache: result = mysql_query(SQL, query); new pid = cache_insert_id(); serverPickups++; cache_delete(result); // OPTIONAL // PickupsInfo[pid][pickupID] = pid; PickupsInfo[pid][pickupPosX] = x; PickupsInfo[pid][pickupPosY] = y; PickupsInfo[pid][pickupPosZ] = z; PickupsInfo[pid][pickupInt] = int; PickupsInfo[pid][pickupVW] = vw; PickupsInfo[pid][pickupType] = type; format(PickupsInfo[pid][pickupText], 50, inputtext); PickupsInfo[pid][pickupID] = pid; PickupsInfo[pid][pickupPosX] = x; PickupsInfo[pid][pickupPosY] = y; PickupsInfo[pid][pickupPosZ] = z; PickupsInfo[pid][pickupInt] = int; PickupsInfo[pid][pickupVW] = vw; format(PickupsInfo[pid][pickupText], 50, inputtext); format(string, sizeof(string), "Pickup-ul cu SQL id-ul %d a fost creeat pe server(total pickup-uri create: %d).", pid, serverPickups); SCM(playerid, COLOR_WHITE, string); // OPTIONAL // PickupsInfo[pid][pickupPickup] = CreateDynamicPickup(PickupsInfo[pid][pickupType], 23, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 30.0); PickupsInfo[pid][pickupPickup] = CreateDynamicPickup(1239, 23, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 30.0); format(string, sizeof(string), "SQL Pickup ID: %d\n%s", PickupsInfo[pid][pickupID], PickupsInfo[pid][pickupText]); PickupsInfo[pid][pickupLabel] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 10.0); return 1; } Acum tu o sa trebuiasca sa iti faci o comanda cu care sa poti muta pozitia pickup-ului sau sa modifici textul / type-ul(in caz ca il pui).
  4. Like
    DiBlaine reacted to Wildo in [REZOLVAT] Incarcare Pickup-uri din MySQL   
    Ai aici un cod sursa http://solidfiles.com/d/35d5/  ai si baza de date cu tabelele doar trebuie importate fisierele in baza ta, si mai modifici variabilele, in caz ca nu te descurci cu tutorialul mentionat de baiatul de mai sus.
  5. Like
    DiBlaine got a reaction from Wildo in Problema Turfs War   
    if(InWar[factionid] != 0) CheckIfPlayerIsOnTurf(playerid); // asta o adaugi intr-un timer de 1 secunda function CheckIfPlayerIsOnTurf(playerid) { if(IsPlayerInTurf(playerid, InWarTurf[PlayerInfo[playerid][pMember]]) && GetPVarInt(playerid, "PlayerOnTurf") == 0) { SendClientMessage(playerid, -1, "Ai intrat pe turf si ai fost transferat in alt VW."); SetPlayerVirtualWorld(playerid, worldid); SetPVarInt(playerid, "PlayerOnTurf", InWarTurf[PlayerInfo[playerid][pMember]]); }else if(!IsPlayerInTurf(playerid, InWarTurf[PlayerInfo[playerid][pMember]]) && GetPVarInt(playerid, "PlayerOnTurf") != 0) { SendClientMessage(playerid, -1, "Ai iesit de pe turf si ai fost transferat in VW 0."); SetPlayerVirtualWorld(playerid, 0); DeletePVar(playerid, "PlayerOnTurf"); }return 1; } // InWar - variabila in care stocam id-ul factiunii care are un war activ // IsPlayerInTurf - functia cu care verificam daca playerul este pe turful pe care este desfasurat war-ul // InWarTurf - variabila in care stocam id-ul turfului pe care este desfasurat war-ul  
  6. Like
    DiBlaine got a reaction from Wildo in [REZOLVAT] Incarcare Pickup-uri din MySQL   
    Pai, pentru prima data trebuie sa creezi in baza de date 7/8 tabele, ID - Text - PosX - PosY - PosZ -  Interior - VirtualWorld - Type(type e optional, in caz ca vrei si alte tipuri de pickupuri, inafara de clasicele pickup-uri in forma de i, acele galbene). Tabelele PosX - PosY - PosZ trebuie sa le creezi de tip FLOAT si Name trebuie sa il creezi de tip VARCHAR, la lungime pui 50(modifici in functie de cat de lungi vor fi textele pe care le vei avea la pickup-uri), iar in rest celelalte le creezi de tip INT, iar la ID sa nu uiti sa selectezi A_I(Auto Increment).
    Apoi trebuie sa le definiesti variabilele de ex:
    #define MAX_PICKUPS 50 // aici modifici in functie de cate pickup-uri vrei sa ai pe server enum pickups { pickupID, pickupText[50], // string-ul il maresti in functie de cat de lungi vor fi textele pe care le vei avea la pickup-uri FLOAT:pickupPosX, FLOAT:pickupPosY, FLOAT:pickupPosZ, pickupInt, pickupVW, pickupPickup, Text3D:pickupLabel // daca lasi optionalul sterge linia asta /* //OPTIONAL Text3D:pickupLabel, pickupType */ //OPTIONAL // STERGE ULTIMELE 3 LINII DACA NU VREI OPTIONALUL }; new PickupsInfo[MAX_PICKUPS][pickups], serverPickups = 0; Apoi trebuie sa le incarci din baza de date de ex:
    function LoadPickups() { new Cache: db = mysql_query(SQL, "SELECT * FROM `pickups` ORDER BY `pickups`.`ID` ASC"); new x, result[50], string[50]; for(new i, j = cache_get_row_count (); i != j; ++i) { serverPickups ++; cache_get_field_content(i, "ID", result); x = strval(result); PickupsInfo[x][pickupID] = x; cache_get_field_content(i, "Text", result); format(PickupsInfo[x][pickupText], 50, result); cache_get_field_content(i, "PosX", result); PickupsInfo[x][pickupPosX] = strval(result); cache_get_field_content(i, "PosY", result); PickupsInfo[x][pickupPosY] = strval(result); cache_get_field_content(i, "PosZ", result); PickupsInfo[x][pickupPosZ] = floatstr(result); cache_get_field_content(i, "Interior", result); PickupsInfo[x][pickupInt] = strval(result); cache_get_field_content(i, "VirtualWorld", result); PickupsInfo[x][pickupVW] = strval(result); // OPTIONAL // cache_get_field_content(i, "Type", result); PickupsInfo[x][pickupType] = strval(result); // OPTIONAL // PickupsInfo[x][pickupPickup] = CreateDynamicPickup(PickupsInfo[x][pickupType], 23, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 30.0); PickupsInfo[x][pickupPickup] = CreateDynamicPickup(1239, 23, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 30.0); format(string, sizeof(string), "SQL Pickup ID: %d\n%s", PickupsInfo[x][pickupID], PickupsInfo[x][pickupText]); PickupsInfo[x][pickupLabel] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, PickupsInfo[x][pickupPosX], PickupsInfo[x][pickupPosY], PickupsInfo[x][pickupPosZ], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, PickupsInfo[x][pickupVW], PickupsInfo[x][pickupInt], -1, 10.0); } printf("Pickups: %d", serverPickups); cache_delete(db); return 1; } Ti-am facut toata partea de incarcare si definire a pickup-urilor din baza de date, acum comanda de creeare a pickup-urilor din joc:
    YCMD:createpickup(playerid, params[], help) { if(serverPickups == 50) return SCM(playerid, -1, "Ai deja 50 de pickp-uri create pe server!"); // OPTIONAL // new int, vw, type, ptext[50], inputtext[50], query[256], string[128]; // OPTIONAL // if(sscanf(params, "s[50]iii", inputtext, int, vw, type)) return SCM(playerid, COLOR_GREY, "USAGE: {FFFFFF}/createpickup <text> <interior> <virtualworld> <type>"); new int, vw, ptext[50], inputtext[50], query[256], string[128]; if(sscanf(params, "s[50]ii", inputtext, int, vw)) return SCM(playerid, COLOR_GREY, "USAGE: {FFFFFF}/createpickup <text> <interior> <virtualworld>"); if(strlen(inputtext) == 0 || strlen(inputtext) > 49) return SCM(playerid, -1, "Introdu un text intre 0 si 49 caractere!"); new Float: x, Float: y, Float: z; GetPlayerPos(playerid, x, y, z); format(ptext, 50, inputtext); // OPTIONAL // mysql_format(SQL, query, sizeof(query),"INSERT INTO `pickups` (`Text`, `PosX`, `PosY`, `PosZ`, `Interior`, `VirtualWorld`, `Type`) VALUES ('%s', '%f', '%f', '%f', '%d', '%d', '%d')", ptext, x, y, z, int, vw, type); mysql_format(SQL, query, sizeof(query),"INSERT INTO `pickups` (`Text`, `PosX`, `PosY`, `PosZ`, `Interior`, `VirtualWorld`) VALUES ('%s', '%f', '%f', '%f', '%d', '%d')", ptext, x, y, z, int, vw); new Cache: result = mysql_query(SQL, query); new pid = cache_insert_id(); serverPickups++; cache_delete(result); // OPTIONAL // PickupsInfo[pid][pickupID] = pid; PickupsInfo[pid][pickupPosX] = x; PickupsInfo[pid][pickupPosY] = y; PickupsInfo[pid][pickupPosZ] = z; PickupsInfo[pid][pickupInt] = int; PickupsInfo[pid][pickupVW] = vw; PickupsInfo[pid][pickupType] = type; format(PickupsInfo[pid][pickupText], 50, inputtext); PickupsInfo[pid][pickupID] = pid; PickupsInfo[pid][pickupPosX] = x; PickupsInfo[pid][pickupPosY] = y; PickupsInfo[pid][pickupPosZ] = z; PickupsInfo[pid][pickupInt] = int; PickupsInfo[pid][pickupVW] = vw; format(PickupsInfo[pid][pickupText], 50, inputtext); format(string, sizeof(string), "Pickup-ul cu SQL id-ul %d a fost creeat pe server(total pickup-uri create: %d).", pid, serverPickups); SCM(playerid, COLOR_WHITE, string); // OPTIONAL // PickupsInfo[pid][pickupPickup] = CreateDynamicPickup(PickupsInfo[pid][pickupType], 23, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 30.0); PickupsInfo[pid][pickupPickup] = CreateDynamicPickup(1239, 23, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 30.0); format(string, sizeof(string), "SQL Pickup ID: %d\n%s", PickupsInfo[pid][pickupID], PickupsInfo[pid][pickupText]); PickupsInfo[pid][pickupLabel] = CreateDynamic3DTextLabel(string, 0xFFFFFFFF, PickupsInfo[pid][pickupPosX], PickupsInfo[pid][pickupPosY], PickupsInfo[pid][pickupPosZ], 100, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, PickupsInfo[pid][pickupVW], PickupsInfo[pid][pickupInt], -1, 10.0); return 1; } Acum tu o sa trebuiasca sa iti faci o comanda cu care sa poti muta pozitia pickup-ului sau sa modifici textul / type-ul(in caz ca il pui).
  7. Upvote
    DiBlaine got a reaction from TSN in [REZOLVAT] Problema /stats   
    Ai incercat sa maresti array-ul HouseInfo?
  8. Upvote
    DiBlaine got a reaction from TSN in [REZOLVAT] Cum pot sa pun sunet pe vehicul normal.   
    Sau poti face o verificare la incarcarea vehiculelor din baza de date, verifici modelul masinii si factiunea, uite un exemplu:
    if(MasinaInfo[i][mFactiune] == 1 && MasinaInfo[i][mModel] == 411) CreateVehicle(model, X, Y, Z, Angle, color1, color2, -1, 1); else CreateVehicle(model, X, Y, Z, Angle, color1, color2, -1); // Asta e un exemplu, care pune sirena pe Infernusurile primei factiuni(de obicei factiunea cu id-ul 1 este LSPD). // MasinaInfo[i][mFactiune] si MasinaInfo[i][mModel] trebuie sa le inlocuiesti dupa cum ai tu in gamemode.  
  9. Upvote
    DiBlaine got a reaction from Dani3l. in [REZOLVAT] Cum pot sa pun sunet pe vehicul normal.   
    Pentru a avea "sunet de sirena" pe un vehicul normal te folosesti de functia CreateVehicle: https://wiki.sa-mp.com/wiki/CreateVehicle
    Functia "default", nemodificata:
    CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0); Daca observi ultimul parametru este "addsiren=0". Asta inseamna ca vehiculul creeat nu va avea "sunet de sirena".
    Fara sirena (1): CreateVehicle(411, 613.7783, -2.9987, 1000.5500, 75.7200, 205, 222, -1); // acelasi lucru cu Fara sirena (2) Fara sirena (2): CreateVehicle(411, 613.7783, -2.9987, 1000.5500, 75.7200, 205, 222, -1, 0); // acelasi lucru cu Fara sirena (1) Cu sirena: CreateVehicle(411, 613.7783, -2.9987, 1000.5500, 75.7200, 205, 222, -1, 1); Explicatie 'Fara sirena(1)': // 411 - modelul vehiculului // 613.7783 - pozitia X a vehicului // -2.9987 - pozitia Y a vehicului // 1000.5500 - pozitia Z a vehicului // 75.7200 - rotatia vehicului // 205 - prima culoare a vehiculului // 222 - a doua culoare vehiculului // -1 - timpul in care se respawneaza vehiculul, daca pui 60 masina se va respawna in 60 secunde de la creearea ei, iar daca e -1 nu se va mai respawna // in cazu asta dupa cum e "definita" functia CreateVehicle(uita-te mai sus) "addsiren=0" ceea ce inseamna ca nu va exista sirena pe vehiculul creeat. Explicatie 'Fara sirena(2)': // acelasi lucru ca si la explicatia de mai sus doar ca, daca vezi am mai adaugat inca o valoare dupa '-1' si anume valoarea '0' care reprezinta parametrul "addsiren", si cu/si fara ultimul element care este '0' vehiculul creeat nu va avea sirena. Explicatie "Cu sirena": // acelasi lucru cu explicatia de mai sus(a doua) doar ca, daca vrei sa ai sirena pe vehiculul creeat trebuie sa pui pui valoarea '1' la ultimul parametru("addsiren"). ATENTIE: Daca vrei sirena trebuie sa pui intotdeauna valoarea '1' la ultimul parametru. Sper ca ai inteles, ti-am explicat functia mura in gura ????
  10. Upvote
    DiBlaine got a reaction from Dani3l. in [REZOLVAT] Cum pot sa pun sunet pe vehicul normal.   
    Sau poti face o verificare la incarcarea vehiculelor din baza de date, verifici modelul masinii si factiunea, uite un exemplu:
    if(MasinaInfo[i][mFactiune] == 1 && MasinaInfo[i][mModel] == 411) CreateVehicle(model, X, Y, Z, Angle, color1, color2, -1, 1); else CreateVehicle(model, X, Y, Z, Angle, color1, color2, -1); // Asta e un exemplu, care pune sirena pe Infernusurile primei factiuni(de obicei factiunea cu id-ul 1 este LSPD). // MasinaInfo[i][mFactiune] si MasinaInfo[i][mModel] trebuie sa le inlocuiesti dupa cum ai tu in gamemode.  
  11. Upvote
    DiBlaine got a reaction from TSN in [REZOLVAT] Cum pot sa pun sunet pe vehicul normal.   
    Pentru a avea "sunet de sirena" pe un vehicul normal te folosesti de functia CreateVehicle: https://wiki.sa-mp.com/wiki/CreateVehicle
    Functia "default", nemodificata:
    CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0); Daca observi ultimul parametru este "addsiren=0". Asta inseamna ca vehiculul creeat nu va avea "sunet de sirena".
    Fara sirena (1): CreateVehicle(411, 613.7783, -2.9987, 1000.5500, 75.7200, 205, 222, -1); // acelasi lucru cu Fara sirena (2) Fara sirena (2): CreateVehicle(411, 613.7783, -2.9987, 1000.5500, 75.7200, 205, 222, -1, 0); // acelasi lucru cu Fara sirena (1) Cu sirena: CreateVehicle(411, 613.7783, -2.9987, 1000.5500, 75.7200, 205, 222, -1, 1); Explicatie 'Fara sirena(1)': // 411 - modelul vehiculului // 613.7783 - pozitia X a vehicului // -2.9987 - pozitia Y a vehicului // 1000.5500 - pozitia Z a vehicului // 75.7200 - rotatia vehicului // 205 - prima culoare a vehiculului // 222 - a doua culoare vehiculului // -1 - timpul in care se respawneaza vehiculul, daca pui 60 masina se va respawna in 60 secunde de la creearea ei, iar daca e -1 nu se va mai respawna // in cazu asta dupa cum e "definita" functia CreateVehicle(uita-te mai sus) "addsiren=0" ceea ce inseamna ca nu va exista sirena pe vehiculul creeat. Explicatie 'Fara sirena(2)': // acelasi lucru ca si la explicatia de mai sus doar ca, daca vezi am mai adaugat inca o valoare dupa '-1' si anume valoarea '0' care reprezinta parametrul "addsiren", si cu/si fara ultimul element care este '0' vehiculul creeat nu va avea sirena. Explicatie "Cu sirena": // acelasi lucru cu explicatia de mai sus(a doua) doar ca, daca vrei sa ai sirena pe vehiculul creeat trebuie sa pui pui valoarea '1' la ultimul parametru("addsiren"). ATENTIE: Daca vrei sirena trebuie sa pui intotdeauna valoarea '1' la ultimul parametru. Sper ca ai inteles, ti-am explicat functia mura in gura ????
  12. Upvote
    DiBlaine reacted to Leonard in Tutorial - /goto in masina   
    @DiBlaine poftim.
     
    O constanta cu toate locurile vehiculelor.
    new const MaxVehicleSeats[ 212 ] =  {      4, 2, 2, 2, 4, 4, 1, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2,      1, 4, 4, 4, 2, 1, 9, 1, 2, 2, 0, 2, 9, 4, 2, 4, 1, 2, 2, 2, 4, 1,      2, 1, 2, 0, 2, 1, 1, 1, 2, 2, 2, 4, 4, 2, 2, 1, 2, 1, 2, 4, 4, 2, 2, 4, 2, 1,      1, 2, 2, 1, 2, 2, 4, 2, 1, 4, 3, 1, 1, 1, 4, 4, 2, 4, 2, 4, 1, 2, 2, 2, 4, 4,      2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 1, 1, 2, 1, 1, 2, 2, 4, 2, 2, 1, 1, 2, 2, 2, 2,      2, 2, 2, 2, 4, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4,      4, 2, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 1, 2, 4, 4, 1, 0, 0, 1, 1, 2,      1, 2, 2, 4, 2, 4, 4, 2, 4, 1, 0, 4, 2, 2, 2, 2, 0, 0, 2, 2, 1, 1,      4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 4, 0, 0  };  O functie care verifica daca masina X are vreun loc liber, daca are, functia va returna locul liber daca nu, va returna -1.
    GetFreeSeat( vehicleid ) // sa-mp.com { new vehiclemodel = GetVehicleModel(vehicleid); if( vehiclemodel ) { new bool: seattaken[ 10 ], playerseat = -1 ; foreach( new i : Player ) { if( !IsPlayerInVehicle( i, vehicleid ) ) continue; playerseat = GetPlayerVehicleSeat( i ); if( 0 <= playerseat < 128 ) seattaken[ playerseat ] = true; } for( new v = 0; v < MaxVehicleSeats[ vehiclemodel - 400 ]; v++ ) { if( seattaken[ v ] ) continue; return v; } } return -1; }  
    Un exemplu de comanda:
    CMD:goto( playerid, params[], help ) { // verificari, etc. new Float: posX, Float: posY, Float: posZ, vehID; vehID = GetPlayerVehicleID( target ); GetPlayerPos( target, posX, posY, posZ ); // Aici verifi daca jucatorul se afla intr-un vehicul if( IsPlayerInAnyVehicle( target ) ) { // Aici verifici daca vehiculul jucatorului nu are nici un loc liber if( GetFreeSeat( vehID ) == -1 ) SetPlayerPos( playerid, posX, posY + 2, posZ ); // Aici iti setezi pozitia la coordonatele jucatorului else PutPlayerInVehicle( playerid, vehID, GetFreeSeat( vehID ) ); // Aici iti setezi pozitia in vehiculul jucatorului } else SetPlayerPos( playerid, posX, posY + 2, posZ ); return true; }  
  13. Haha
    DiBlaine got a reaction from Error in [REZOLVAT] Problema la adaugarea noua a factiunii taxi las venturas   
    Odata ai zis ca ai schimbat interiorul si e degeaba, odata ai zis ca daca scoti interioru merge. Ce sa mai inteleg acum? Te ajut eu cu TW peste 20-30 min cand ajung acasa, lasa-mi PM.
     
    EDIT: Ai la public OnPlayerKeyStateChange 
    if(newkeys & KEY_SECONDARY_ATTACK) { if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { for(new i = 1; i < 14; i++) { if(PlayerToPoint(2.0, playerid, DynamicFactions[i][extX], DynamicFactions[i][extY], DynamicFactions[i][extZ])) { if(PlayerInfo[playerid][pMember] == i || i < 3 || DynamicFactions[i][fLock] == 1 || OnDuty[playerid] == 1) EnterFaction(playerid, i); } } for(new i = 1; i < 14; i++) { if(PlayerToPoint(2.0, playerid, DynamicFactions[i][fcX], DynamicFactions[i][fcY], DynamicFactions[i][fcZ])) { if(DynamicFactions[i][fVW] == GetPlayerVirtualWorld(playerid) && DynamicFactions[i][fInterior] == GetPlayerInterior(playerid)) ExitFaction(playerid, i); } } Modifica 
    for(new i = 1; i < 14; i++) { modifica in for(new i = 1; i < 15; i++) { i reprezinta id-ul factiunii(1 LSPD, 2 FBI etc). Gamemode-ul original are 13 factiuni, de asta a fost i < 14 - 13+1, daca era i < 13 atunci i nu putea fi 13 decat sub 13(de ex: 11, 12). Tine minte, daca vrei sa mai adaugi factiuni: i < nr. factiunilor+1  
  14. Like
    DiBlaine got a reaction from NoPulseJrrs in [REZOLVAT] Problema war dispar masinile.   
    Da, incearca sa stergi acel cod. Ce vei sterge aici iti mai zic odata: daca playerul e in masina si intra pe turf atunci ii ia pozitia si apoi i-o seteaza in acel loc, chestie ce il scoate din masina, logic. Dar, mai e o chestie, ti-am zis si mai sus, normal la /attack masinile factiunilor intre care se dau war ar trebuii sa fie pe turf, deoarece se foloseste functia SetVehicle(bla bla) la ambele factiuni.
  15. Like
    DiBlaine got a reaction from NoPulseJrrs in [REZOLVAT] Problema war dispar masinile.   
    E de la function Timers(), daca cauti mai jos ai 
    if(IsPlayerInTurf(i, InWarTurf[PlayerInfo[i][pMember]])) { new turf = InWarTurf[PlayerInfo[i][pMember]]; if(WarInfo[turf][wFaction] == PlayerInfo[i][pMember] || WarInfo[turf][wAttacker] == PlayerInfo[i][pMember]) { if(IsPlayerPaused(i) == false) WarSeconds[i] ++; if(TurfTime[i] == 0 && IsPlayerInAnyVehicle(i)) SCM(i, COLOR_YELLOW, "Ai intrat pe teritoriu. Peste 10 secunde o sa fii dat jos din vehicul."); if(TurfTime[i] < 10) TurfTime[i] ++; if(TurfTime[i] == 10) { if(IsPlayerInAnyVehicle(i)) { new Float: Pos[3]; GetPlayerPos(i, Pos[0], Pos[1], Pos[2]); SetPlayerPosEx(i, Pos[0], Pos[1], Pos[2]+1); } } } } Este creeata in gamemode variabila TurfTime[MAX_PLAYERS], care este folosita ca un fel de count(numaratoare), si dupa cum vezi mai sus, scrie si in mesaj dupa 10 secunde il va da jos din masina. Este verificarea aia if(TurfTime == 10), de aici se ia pozitia jucatorului(doar daca e in masina) si il teleporteaza la pozitia initiala. Pentru a putea avea masinile factiunilor pe turf fa asta:
    if(IsPlayerInTurf(i, InWarTurf[PlayerInfo[i][pMember]])) { new turf = InWarTurf[PlayerInfo[i][pMember]]; if(WarInfo[turf][wFaction] == PlayerInfo[i][pMember] || WarInfo[turf][wAttacker] == PlayerInfo[i][pMember]) { if(IsPlayerPaused(i) == false) WarSeconds[i] ++; } } Ce am facut eu aici este sa nu te mai scoata din masina atunci cand intrii cu o masina pe turf. Masinile factiunii ar trebuii sa fie pe turf in momentul in care dai /attack deoarece, daca te uiti ai
    SetVehicle(faction, turf); SetVehicle(TurfInfo[turf][zOwned], turf); care face sa puna masinile pe turf la factiunea care a atacat si la factiunea care a fost atacata.
  16. Like
    DiBlaine got a reaction from NoPulseJrrs in [REZOLVAT] Problema war dispar masinile.   
    Acum am observat, la tine in imagine ai factiunea "None" ceea ce inseamna ca factionid = 0 din
    stock FactionName(fid) { new string[35]; if(fid == 0) string = "None"; else format(string, sizeof(string), DynamicFactions[fid][fName]); return string; } Astfel de aia atacatorului nu ii seteaza masinile factiunii pe turf, decat factiunii atacate. Daca ai adaugat tu o mafie, asigura-te ca ai creeat factiunea in baza de date + in gamemode.
  17. Upvote
    DiBlaine got a reaction from Matt in [REZOLVAT] Ajutor   
    Eh... eu unul nu am intampinat o asemenea eroare, am aberat si eu cu ce am spus acolo dar am incercat sa ajut... nu m-am uitat exact la cod, a fost chiar usor de vazut problema dar daca nu esti atent nu iti poti da seama :)), scuze hai sa nu mai facem free chat.
  18. Upvote
    DiBlaine got a reaction from Matt in [REZOLVAT] Ajutor   
    Ce mi-ai explicat tu? 5 posibile numere(0,1,2,3,4) dar niciodata nu va putea fi numarul 5.
  19. Upvote
    DiBlaine got a reaction from iulik in [REZOLVAT] comandă pe buton   
    Ai aici tastele pe care poti sa pui un bind(o executare de comanda), ca defapt asta e: http://wiki.sa-mp.com/wiki/Keys
    Alege-ti tu din link-ul de mai sus o tasta favorita, si dupa aceea pui acest script in gamemode-ul tau la public OnPlayerKeyStateChange:
    new params[128]; if (newkeys & KEY_INLOCUIESTI TU AICI) return cmd_work(playerid, params); Incearca sa vezi daca iti merge, nu am testat.
  20. Upvote
    DiBlaine got a reaction from equin0x in [REZOLVAT] Problema panel   
    E legat de skinul jucatorului, de exemplu tu ai pModel in baza ta de date si pe panel este pChar, asta e un exemplu, acolo e buba 80% sau nu ai skinu ala in panel si iti apare asa deoarece nu are ce sa iti afiseze, verifica-ti pagina respectiva si aia e. 
     
    P.S: Nu are legatura cu nicio locatie cum zicea @@Fuhrer mai sus.
  21. Downvote
    DiBlaine got a reaction from Filip in [REZOLVAT] Comanda pe buton   
    Prietene, nu e comanda( CMD:blabla(playerid, params[]) ), in cazul asta nu folosesti parantezele patrate.
×
×
  • Create New...