Gabb04
-
Posts
29 -
Joined
-
Last visited
Never
Content Type
Profiles
Forums
News
Documentation
Posts posted by Gabb04
-
-
Cauti in GM : public OnPlayerKeyStateChange(playerid, oldkeys, newkeys)
Inauntrul asteia adaugi :
if((newkeys & KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid)) { RepairVehicle(GetPlayerVehicleID(playerid)); SendClientMessage(playerid, COLOR_WHITE, "Your vehicle was succesfully repaired."); }
Ar trebui sa-ti mearga.
-
In script e ceva gresit..vezi la liniile in care serverul merge in scriptfiles si salveaza anumite chestii. Adica cand are contact cu scriptfiles. ( gen salveaza conturile , adauga in loguri , salveaza casele , bizurile ).
-
Folosesti GF ? Daca da :
Sterge asta :
new count; while(text[count]==' ')count++; text[count] = toupper(text[count]);
-
Nu stii sa inlocuiesti ? prin vehicle_id si vehicle3dtext ti-ai definit masina si textu care urmeaza sa atasezi.
Attach3DTextLabelToVehicle(numele3dtext, masinapecarepui, 0.0,0.0,0.0);
Dar ca sa nu mai scrii tu , sa te chinui sa cauti vehicleid de fiecare data o definesti prin vehicle_id. Mare branza..
-
Ba iti zic eu ca la asta te refereai , ala de pe raven's roleplay e rahat rau , sistemu de tuning.
Spui ca nu la asta te refereai ; eu ti-am dat un impuls , un mic ajutor , tu daca stii pawno , faci mai departe.
-
Te folosesti de SetPlayerVirtualWorld si mai creezi o variabla new InHouse[MAX_PLAYERS] , sau cum vrei tu sa se numeasca , asta e cel mai simplu mod cred..
Eu cel putin asta folosesc.. Cand intra playerul in casa sa-i puna virtualworld 'x' si InHouse[playerid] = houseid;
Iar atunci cand scrie /exit sa verifice :
if (PlayerToPoint(3, playerid,HouseInfo[i][hExitx], HouseInfo[i][hExity], HouseInfo[i][hExitz]) && InHouse[playerid] == i)
Ti-am scris pe scurt ideea , ar trebui sa te descurci mai departe.
-
D-apoi ai de lucru la tuning...
Trebuie sa creezi cate un
new exhaust[][0] = { ... };
Pentru fiecare componenta de tuning... Vents , Exhaust , front bumper , nos , etccc.... vezi SA-MP.com Iar in fiecare acel :new exhaust[][0] = { ... };
Adaugi toate exhaust care apar pe SA-MP Wiki... Exemplu :new exhaust[28][0] = { {1018}, {1019}, {1020}, {1021}, {1022}, {1028}, {1029}, {1037}, {1043}, {1044}, {1045}, {1046}, {1059}, {1064}, {1065}, {1066}, {1089}, {1092}, {1104}, {1105}, {1113}, {1114}, {1126}, {1127}, {1129}, {1132}, {1135}, {1136} };
Aici sunt toate Exhaust-urile.
Si-asa mai departe ,dupa ce definesti fiecare componenta trebuie sa adaugi aceste componente sa se salveze la fiecare masina personala in fisierul in care se si incarca masinile,
-
Joint , ai copiat si tu din GM tau .. de unde ai scos tu oldColor[playerid]... iti imaginezi ca o sa-i dea eroare la compile fiindca el nu are new oldcolor[MAX_PLAYERS], nu ?
Mai zici ca ai facut-o pe loc si n-ai testat..
-
Pe la linia aia.. 5197 , aranjeaza si tu putin acoladele..
-
Eu cred ca cel mai bine e sa descarci textdraw editor. si-ti editezi apoi un textdraw , si-l pozitionezi cum iti place tie direct din joc.
Baga-l in folderul Filterscripts : http://www.girlshare.ro/1736540.3
In joc folosesti /text si /edit , astea-s cele 2 comenzi. Iar dupa ce termini de editat.. salvezi tot din joc textdraw-ul si-l vei gasi in scriptfiles.
-
if(!PlayerToPoint(6.0, playerid, 1525.9470, -1678.3567, 5.6114) || (PlayerToPoint(6.0, playerid, X, Y, Z))
Tu observi ca la primul playertopoint ai un '!' in fata ?
if(!PlayerToPoint(6.0, playerid, 1525.9470, -1678.3567, 5.6114) - acel '!' inseamna negatie , adica : Daca nu e la coordonatele acelea.
Sterge acel '!' si vezi apoi.
-
Te duci si iei niste coordonatele pt locul in care sa stea camera.. acele coordonate le pui la SetPlayerCameraPos.
Iar acum , faci ca (,) camera sa se uite inspre ceva anume. Si faci asa : Te duci la locul inspre care vrei sa se uite camera si dai /save , iar coordonatele de-aici le pui la SetPlayerCameraLookAt.
-
omg. Pluginul se cheama Controllable NPC.
Vezi pe sa-mp.com : http://forum.sa-mp.com/showthread.php?t=174671
Pluginul asta poate face un NPC sa moara , sa traga si multe alte functii , citeste si tu acolo.
-
Cu trecerea pe 0.3b , s-a adaugat un nou parametru pt crearea obiectelor , anume : DrawDistance..
Probabil tu ai obiectele in genu asta
CreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0);
Ceea ce inseamna : CreateObject(modelid, X, Y, Z, RotationX, RotationY, RotationZ); Din Sa-mp 0.3b s-a adaugat si DrawDistance si CreateObject va fi : CreateObject(modelid, X, Y, Z, RotationX, RotationY, RotationZ, DrawDistance); AdicaCreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0, 100.0);
Astfel obiectul se va vedea de la 100 metri distanta.
Sper ca te-am lamurit , nu stiu. in concluzie ... la fiecare CreateObject adauga 100.0 la sfarsit.
-
Nu ar trebui sa creezi un : new RandomSpawns[x][3] = { }; ?
Intre acolade sa pui toate coordonatele pt randomspawn.
Exemplu :
new Float:RandomSpawns[4][3] = { {2458.0073,-2079.2607,13.5469}, {2802.9756,968.1823,10.7500}, {2367.6270,2754.8928,10.5280}, {1637.4083,2340.4880,10.0303} };
Dupa care mergi la OnPlayerSpawn si faci :if(BlockCommand[playerid] == 1) { new rand = random(sizeof(RandomSpawns)); SetPlayerPos(playerid, RandomSpawns[rand][0],RandomSpawns[rand][1],RandomSpawns[rand][2]); }
Daca te-am informat gresit , sorry.
-
new playername[64]; GetPlayerName(playerid,playername,64); if(!strcmp(playername,"BusRouteLS",true)) { SetSpawnInfo(playerid, 0, 61, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0 ); PutPlayerInVehicle(playerid, 286, 0); }
Adauga asta la OnPlayerSpawn(playerid) - in loc de BusRouteLS pune numele NPC-ului tau si modifica 'vehicleid' din PutPlayerInVehicle ( adica sa modifici 286 )
-
Decat sa umbli cu PlayerToPoint parerea mea este ca mai bine folosesti functia jocului IsPlayerInRangeOfPoint
-
Totusi cum adica
Eu trebuie sa gasesc coordonatele camerei(view) pentru a le pune in script si nu stiu cum sa fac asta
Adica , camera ta sa se uite inspre ceva anume ?
-
Totusi JoeMan specifica, sa-l dea de unde a ramas dupa ce a dat /q , dupa ce a luat crash , dupa ce a murit ?
-
Sub asta : RepairVehicle(GetPlayerVehicleID(playerid));
Adaugi : GivePlayerMoney(playerid, -x);
Unde "-x" inseamna suma de bani pe care vrei sa i-o scada.
Exemplu : GivePlayerMoney(playerid, -3000);
In exemplul de mai sus ii va scadea 3000 $.
Emanuell esti jalnic sincer , /reparatie auzi.
-
Da-ne totusi si un exemplu de obiect pus pe streamer din gm-ul tau.
-
if(strcmp(cmd, "/lay2", true) == 0) { ApplyAnimation(playerid,"SUNBATHE","Lay_Bac_in",3.0,0,1,1,1,0, 0); return 1; }
Ultimul parametru ( forcesync ) este 0. Ia inlocuieste cu 1 si va merge sigur.ApplyAnimation(playerid,"SUNBATHE","Lay_Bac_in", 3.0, 0, 1, 1, 1, 0, 1);
Daca citeai si ce inseamna forcesync si daca citeai si NOTE de pe sa-mp wiki, sigur nu mai aveai problema.
-
Cauta public OnPlayerLogin in GM...
Trebuie sa faci cam asa , sper sa intelegi..
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 ) { ..... aici sunt acele linii cu fread , care incarca tot detaliile despre player din scriptfiles } else { SendClientMessage(playerid, COLOR_WHITE, "SERVER: Password does not match your name."); return 1; }
Bineinteles , eu ti-am dat cel mai simplu exemplu pentru care sa-ti zica ca ai tastat parola gresit ; poti face sub forma de dialog , etc...
-
Chiar foarte usoara viata pe zcmd + sscanf.
1. Comenzile pe zcmd + sscanf au un timp de raspuns foarte rapid.
2. Reducerea liniilor in GM + ca ruleaza mult mai bine.
3. Parerea mea este ca pe sscanf + zcmd e mai ordonat.
Deci inainte de zcmd + sscanf aveam gm-ul la 35000 linii , iar acum dupa ce am trecut toate comenzile pe zcmd + sscanf ... 23500 linii, este totusi o economisire de linii.
Cum sa fac?
in Arhivă probleme
Posted
Toate astea trebuie sa le bagi sub :
Sigur is bagate inauntrul callback-ului astuia ?