Jump to content

Matt

VIP
  • Posts

    555
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by Matt

  1. loop-ul este o structura repetitiva. for, while, foreach.
  2. break se foloseste ca sa intrerupi loop-ul.
  3. Poti de asemenea sa opresti loop-uri care si-au indeplinit scopul. Spre exemplu: foreach(new x : Player) { if(x == PLAYER_UL_PE_CARE_IL_CAUTAI) { SCM(playerid, -1, "Acesta este jucatorul pe care il cautai."); break; } } Asa, loop-ul nu va mai continua executia.
  4. Eu folosesc: http://forum.sa-mp.com/showthread.php?t=554805 (are si Offset editor)
  5. Un integer poate sa fie maxim +2,147,483,647 | -2,147,483,647, el vrea sa depaseasca aceasta limita, nu are vreo interdictie in GM. Cat despre acel include, nu te pot ajuta deoarece nu l-am folosit niciodata, sorry.
  6. Pentru a atasa un obiect de un vehicul trebuie sa iei in calcul urmatoarele: new obiect = CreateObject(19419, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); // obiectul trebuie sa fie creat (19419 e sirena) new vehicle = GetPlayerVehicleID(playerid); // vehiculul pe care vrem sa atasam obiectul. (in cazul nostru, e vehiculul in care se afla jucatorul) AttachObjectToVehicle(obiect, vehicle, 0.010000, -0.060000, 0.689999, 0.000000, 0.000000, 0.000000); // atasam obiectul definit de variabila 'obiect' si il atasam de vehiculul definit de variabila 'vehicle' (dupa sunt coordonatele offset, rotatia) Daca tot nu te descurci arata si codul.
  7. Te poti folosi de: https://wiki.sa-mp.com/wiki/SetPlayerAttachedObject Btw, coordonatele Offset (cele pe care le folosesti ca sa atasezi obiectul de player) nu sunt aceleasi cu cele din Map Editor. Vei avea nevoie de un editor special de coordonate. Iti recomand: http://forum.sa-mp.com/showthread.php?t=554805 (are si Offset editor)
  8. stock GetClosestVehicle2(playerid, Float:dis) { new Float:X, Float:Y, Float:Z; if(GetPlayerPos(playerid, X, Y, Z)) { new vehicleid = INVALID_VEHICLE_ID; for(new v, Float:temp, Float:VX, Float:VY, Float:VZ; v != MAX_VEHICLES; v++) { if(GetVehiclePos(v, VX, VY, VZ)) { VX -= X, VY -= Y, VZ -= Z; temp = VX * VX + VY * VY + VZ * VZ; if(temp < dis) dis = temp, vehicleid = v; } } dis = floatpower(dis, 0.5); return vehicleid; } return INVALID_VEHICLE_ID; } Luata din GM Bigzone.
  9. CMD:fnc(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] < 1) ..... // verificarea de admin new id; if(sscanf(params, "u", id)) return SCM(playerid, -1, "/fnc <PlayerID/PartOfName>"); if(!IsPlayerConnected(id)) .... // daca jucatorul nu e pe server. (cel introdus ca parametru) ShowPlayerDialog(id, DIALOG_CHANGENAME, ......); // ca dialogul de mai sus doar ca pentru id, nu pentru playerid return 1; }
  10. Pai arata-ne una din comenzile alea multe ca sa stim si noi despre ce e vorba...
  11. ShowPlayerDialog(playerid, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, "Nume", "Introdu mai jos numele nou:", "OK", "Cancel"); Si sub OnDialogResponse: case DIALOG_CHANGENAME: { if(!response) return 1; mysql_format(SQL, query, 256, "UPDATE `users` SET `Name`='%s' WHERE `ID`=%d", inputtext, PlayerInfo[playerid][pSQLID]); mysql_tquery(SQL, query, "", ""); format(PlayerInfo[playerid][pName], MAX_PLAYER_NAME, inputtext); SetPlayerName(playerid, inputtext); SCM(playerid, -1, "Ti-ai schimbat numele cu succes."); }
  12. Inlocuieste: GetClosestVehicle2(playerid, 100000); Cu: GetClosestVehicle2(playerid);
  13. Probabil ai in gm functia 'GetClosestVehicle2(parametru1)', tu ai folosit 2 parametrii. Lasa o poza si cu functia daca nu te descurci mai departe.
  14. Poti pune un if fara acolade atat timp cat vrei sa fie executata doar o instructiune. if(PlayerInfo[playerid][pAdmin] > 0) GivePlayerCash(playerid, 1000); este echivalent cu: if(PlayerInfo[playerid][pAdmin] > 0) { GivePlayerCash(playerid, 1000); } Dar nu este la fel cu: if(PlayerInfo[playerid][pAdmin] > 0) GivePlayerCash(playerid, 1000); SetPlayerHealth(playerid, 100); ==> if(PlayerInfo[playerid][pAdmin] > 0) { GivePlayerCash(playerid, 1000); } SetPlayerHealth(playerid, 100);
  15. Poti crea NPC-uri, care ocupa un slot pe server dar nu apar in TAB din cate stiu, le poti schimba si numele...
  16. Creezi o variabila care stocheaza de cate ori a murit jucatorul pana sa ia respawn. new PlayerDeaths[MAX_PLAYERS]; Cresti variabila cand jucatorul moare: public OnPlayerDeath(playerid, killerid, reason) { PlayerDeaths[playerid]++; if(PlayerDeaths[playerid] > 1) { // kick, mesaj, are fake-kill } return 1; } Si resetezi variabila cand jucatorul se spawneaza: public OnPlayerSpawn(playerid) { PlayerDeaths[playerid] = 0; return 1; }
×
×
  • Create New...