-
Posts
235 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
News
Documentation
Posts posted by Gawitkkk
-
-
Recomand 0ping, cea mai serioasă firmă. Aici îmi hostez de ani buni serverele, nu sunt probleme cu ei.
-
Nu recomand, nu am auzit niciodată despre această persoană.
-
La public OnPlayerDeath punei acolo unde acorda wanted:
if(PlayerInfo[playerid][pTeam] == 2 && PlayerInfo[playerid] == 3)
pui toate team-urile, inafară de id-ul în care se află polițiștii.
-
Te rog frumos să îmi prezinți erorile și liniile pentru a te putea ajuta.
Folosește pastebin.com, mulțumesc.
-
@SocialDisease™ după ultimul update, faci destul de ușor banii.. 200k se cumpără cu 2 euro, chiar 1..
-
exista IsTrailerAttachedToVehicle si verifici in checkpoint daca are sau nu remorca:
new carid = GetPlayerVehicleID(playerid); if(!IsTrailerAttachedToVehicle(carid)) return SendClientMessage(playerid, COLOR_RED, "Intoarce-te dupa remorca!");
Am făcut cum ai spus tu, uite rezultatul: https://www.youtube.com/watch?v=FvSkCj_R4PY&feature=youtu.be
Script-ul:
public OnTrailerHooked(playerid, vehicleid, trailerid) { if(PlayerInfo[playerid][pJob] == 10 && jobworking[playerid] == 0) { ShowPlayerDialog(playerid, DIALOG_TRUCKER, DIALOG_STYLE_LIST, "Mission Selection","Ocean Dock's (LS)\nDillimore (LS)\nLas Colinas (LS)\nSpinybed (LV)\nLVA Freight Depot (LV)\nRedsands West (LV)","Chose",""); } if(IsTrailerAttachedToVehicle(vehicleid)) { new carid = GetPlayerVehicleID(playerid); if(!IsTrailerAttachedToVehicle(carid)) { if(jobworking[playerid] == 1) SCM(playerid, COLOR_WHITE, "Trailer pierdut !"); } else if(IsTrailerAttachedToVehicle(carid)) { if(jobworking[playerid] == 1) SCM(playerid, COLOR_WHITE, "Trailer recuperat !"); } return 1; } return 1; }
APROPO, și cum pot face să se dezactiveze checkpoint-ul dacă pierd trailer-ul?
Și după ce îl iau înapoi, să apară checkpoint-ul..
-
Am o întrebare. Am creat job-ul Trucker, atașez remorca, toate frumoase. Cum pot face ca atunci când pierd remorca să îmi trimită un mesaj și să nu meargă să primesc banii dacă nu am remorca atașată? Un fel de protecție..
M-am gândit să fac ceva de genul următor.
Să creez o funcție "attached", după ce atașez remorca, acea funcție să fie egală cu 1. (attached[playerid] = 1), însă nu știu cum să fac ca după ce o pierd, această funcție să se execute.
-
Uite comanda
CMD:setskin(playerid,params[]) { if(playerVariables[playerid][pAdminLevel] >= 1) { new id, string[256], giveplayer[25],skin; if(sscanf(params, "ui", id,skin)) return SendClientMessage(playerid, COLOR_GREY, SYNTAX_MESSAGE"/setskin [playerid] [skin id]"); { if(id != INVALID_PLAYER_ID) { if(skin < 300 && skin >= 0) { GetPlayerName(id, giveplayer, sizeof(giveplayer)); format(string, sizeof(string), "You set %s's skin to %d.", giveplayer, skin); SendClientMessage(playerid, COLOR_WHITE, string); playerVariables[id][pSkin] = skin; SetPlayerSkin(id, skin); new wakaname[25]; GetPlayerName(id,wakaname,25); new str[128]; format(str,128,"UPDATE `playeraccounts` SET `playerSkin`='%d' WHERE `playerID`='%d'",skin,playerVariables[id][pInternalID]); mysql_tquery(handle,str); } } } } else return SendClientMessage(playerid, COLOR_WHITE, AdminOnly); return 1; }
Salut ! Uite, pune așa în gamemode și va merge:
CMD:setskin(playerid,params[]) { if(playerVariables[playerid][pAdminLevel] >= 1) { new id, string[256], giveplayer[25],skin; if(sscanf(params, "ui", id,skin)) return SendClientMessage(playerid, COLOR_GREY, SYNTAX_MESSAGE"/setskin [playerid] [skin id]"); { if(id != INVALID_PLAYER_ID) { if(skin < 311 && skin >= 0) { GetPlayerName(id, giveplayer, sizeof(giveplayer)); format(string, sizeof(string), "You set %s's skin to %d.", giveplayer, skin); SendClientMessage(playerid, COLOR_WHITE, string); playerVariables[id][pSkin] = skin; SetPlayerSkin(id, skin); new wakaname[25]; GetPlayerName(id,wakaname,25); new str[128]; format(str,128,"UPDATE `playeraccounts` SET `playerSkin`='%d' WHERE `playerID`='%d'",skin,playerVariables[id][pInternalID]); mysql_tquery(handle,str); } } } } else return SendClientMessage(playerid, COLOR_WHITE, AdminOnly); return 1; }
Problema era de la if(skin < 311 && skin >= 0), aceasta este o protecție ce nu te lasă să pui skin-uri cu ID-uri mai mare de 300. Acum numărul maxim este 311, numărul total de skin-uri.
-
Salut.Am incercat sa pun cuiva unul dintre noile skin-uri aparute in 0.3.7 dar nu functioneaza.
Cum ai încercat să îi setezi skin-ul?
Arată-ne te rog comanda /setskin (sau cum o ai tu definită), folosește
[//code]
-
Problema intalnita (descriere): Am o întrebare. Am creat job-ul Trucker, atașez remorca, toate frumoase. Cum pot face ca atunci când pierd remorca să îmi trimită un mesaj și să nu meargă să primesc banii dacă nu am remorca atașată? Un fel de protecție..
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu): -
Imagini / Video (optional): -
Ati incercat sa rezolvati singur?: Da, m-am tot gândit cum să fac, însă nu am nici-un fel de idee.M-am gândit să fac ceva de genul următor.
Să creez o funcție "attached", după ce atașez remorca, acea funcție să fie egală cu 1. (attached[playerid] = 1), însă nu știu cum să fac ca după ce o pierd, această funcție să se execute.
-
Deci dupa ce a raspuns la dialogul DIALOG_TRUCKER, creezi o variabila prin care arati daca a inceput misiunea. De exemplu: new startjob[MAX_PLAYERS];
Iar la OnPlayerConnect pui
startjob[playerid] = 0;
Iar la OnTRailerHooked
public OnTrailerHooked(playerid, vehicleid, trailerid) { if(PlayerInfo[playerid][pJob] == 10 && startjob[playerid] == 0) { ShowPlayerDialog(playerid, DIALOG_TRUCKER, DIALOG_STYLE_LIST, "Mission Selection","Ocean Dock's (LS)\nDillimore (LS)\nLas Colinas (LS)\nSpinybed (LV)\nLVA Freight Depot (LV)\nRedsands West (LV)","Chose",""); } return 1; }
Iar la dialogul DIALOG_TRUCLER pui startjob[playerid] = 1; si la sfarsitul misiunii pui startjob[playerid] = 0;
Funcționează, mersi frumos !
-
Problema intalnita (descriere): Selectez misiunea de la job-ul Trucker, iar dacă din întâmplare se întâmplă ca trailer-ul să părăsească tirul, atunci când îl iau din nou îmi apare iară dialog-ul, ceea ce nu ar trebui să apară, decât la începot. Mai pe scurt, nu vreau să apară decât după ce folosesc din nou comanda /work și atașez trailer-ul.
Ero(area / rile) / warning-(ul / urile): -
Liniile de cod / sursa / script-ul(obligatoriu):public OnTrailerHooked(playerid, vehicleid, trailerid) { if(PlayerInfo[playerid][pJob] == 10) { ShowPlayerDialog(playerid, DIALOG_TRUCKER, DIALOG_STYLE_LIST, "Mission Selection","Ocean Dock's (LS)\nDillimore (LS)\nLas Colinas (LS)\nSpinybed (LV)\nLVA Freight Depot (LV)\nRedsands West (LV)","Chose",""); } return 1; }
Imagini / Video (optional): https://www.youtube.com/watch?v=SUuwT3clwFk&feature=youtu.be
Ati incercat sa rezolvati singur?: Da, dar tot nu reușesc.. -
...
format(string, sizeof(string), "(Ocean Dock's (LS) %f km)", fDistance / 100.0);
Daca vrei sa afisezi doar 2 decimale pui %.2f in loc de %f.
Totul funcționează corect și perfect.
Îți mulțumesc FOARTE mult și frumos pentru tot timpul acordat. Îmi cer scuze dacă te-am deranjat stresându-te cu prostiile mele, încă învăț.. Mulțumesc WoopS, mulțumesc sa-mp.ro !
-
Nu are cum sa se actualizeze daca nu ii faci un timer care sa faca asta ...
Am făcut timer-ul, acum... cum rezolv problema cu km rămași? Știu că trebuie împărțiți la 1000, dar cum fac asta?
http://i.imgur.com/PmC6Bzx.png
-
Daca nu il ascunzi sau distrugi dupa ce l-ai aratat pe ecran jucatorului foloseste TextDrawSetString sa ii modifici scrisul.
format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance);
Aici in loc de %d trebuie %f, este float.
L-ai pus macar intr-un timer?
Nu, nu i-am setat timer..
Uite cum îmi arată acum: http://i.imgur.com/PmC6Bzx.png
Linia script-ului:
if(listitem == 0) { TextDrawHideForPlayer(playerid, Trucker1[playerid]); TextDrawHideForPlayer(playerid, Trucker2[playerid]); TextDrawShowForPlayer(playerid, Trucker1[playerid]); new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2), string[44]; format(string, sizeof(string), "(Ocean Dock's (LS) %f km)", fDistance); TextDrawSetString(Trucker2[playerid], string); TextDrawShowForPlayer(playerid, Trucker2[playerid]); }
-
Incearca sa pui asta in acel timer..
TextDrawHideForPlayer(playerid, Trucker1[playerid]); TextDrawHideForPlayer(playerid, Trucker2[playerid]); TextDrawShowForPlayer(playerid, Trucker1[playerid]); new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2); new string[44]; format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance); TextDrawSetString(Trucker2[playerid], string); TextDrawShowForPlayer(playerid, Trucker2[playerid]);
Am făcut cum ai spus tu, uite rezultatul: http://i.imgur.com/9XSupPI.png
1. Nu își face update numărul de km rămași.
2. Nu îmi arată în km, ci în metrii (cred).
@Punct. astea
TextDrawHideForPlayer(playerid, Trucker1[playerid]); TextDrawHideForPlayer(playerid, Trucker2[playerid]); TextDrawShowForPlayer(playerid, Trucker1[playerid]); TextDrawShowForPlayer(playerid, Trucker2[playerid]);
Nu e nevoie sa fie in timer, poate sa le foloseasca doar o data.Am făcut cum a spus Punct., mai sus am scris problemele rămase.
-
Arata-mi cum ai facut.
TextDrawShowForPlayer(playerid, Trucker1[playerid]); new Float: fDistance = GetPlayerDistanceFromPoint(playerid, 237.9, 115.6, 1010.2), string[44]; format(string, sizeof(string), "Ocean Dock's (LS) %d km", fDistance); TextDrawShowForPlayer(playerid, string[playerid]);
-
Trebuie sa actualizezi text-ul intr-un timer, foloseste-te de https://wiki.sa-mp.com/wiki/SetPlayerTime si https://wiki.sa-mp.com/wiki/GetPlayerDistanceFromPoint.
Am tot încercat toate prostiile, tot nu îmi iasă.. m-am folosit și de TextDrawSetString, toate prostiile.. tot nu am înțeles cum să fac..
-
Deci problema era ca tu nu ai creat textdraw-ul.
O marcam ca inchisa sau care mai este problema?
Tot nu am reușit să fac ca să îmi arate numărul de km rămași... să își facă update și toate cele, nu știu cum.. am tot încercat..
-
Pai si daca ii pui acum
TextDrawShowForPlayer(playerid, Trucker2[playerid]);
nu merge?
Ba da, dacă folosesc funcția asta, îmi arată.
-
Arata-mi tot ce tine de ele, unde le creezi si cum le folosesti, etc..
Le-am definit la începutul gamemode-ului:
new Text:Trucker1[MAX_PLAYERS]; new Text:Trucker2[MAX_PLAYERS];
După care le-am creat la public-ul OnGameModeInit:Trucker1[i] = TextDrawCreate(218.000000, 342.125000, "Drive the truck to the checkpoint."); TextDrawLetterSize(Trucker1[i], 0.348499, 1.582500); TextDrawAlignment(Trucker1[i], 1); TextDrawColor(Trucker1[i], -1); TextDrawSetShadow(Trucker1[i], 0); TextDrawSetOutline(Trucker1[i], 1); TextDrawBackgroundColor(Trucker1[i], 51); TextDrawFont(Trucker1[i], 1); TextDrawSetProportional(Trucker1[i], 1); Trucker2[i] = TextDrawCreate(231.000000, 367.937500, "(Ocean Dock's (LS) - %d km)"); TextDrawLetterSize(Trucker2[i], 0.449999, 1.600000); TextDrawAlignment(Trucker2[i], 1); TextDrawColor(Trucker2[i], -1); TextDrawSetShadow(Trucker2[i], 0); TextDrawSetOutline(Trucker2[i], 1); TextDrawBackgroundColor(Trucker2[i], 51); TextDrawFont(Trucker2[i], 1); TextDrawSetProportional(Trucker2[i], 1);
Iar acum, urmează să fie adăugate la job-uri.
După ce selectez ruta, trebuie (trebuia.. ) să apară textdraw-urile.
-
Asta este intr-o iteratie (adica un for) sau ... ?
Te referi la textdraw-uri? Daca da, acestea le-am pus la OnGameModeInit
-
Este gamemode-ul Saints Network (creat de către Pharell și SpriTes), mi-am dat seama după dealership.
-
Arata-mi cum ai facut.
new Text:Trucker1[MAX_PLAYERS]; new Text:Trucker2[MAX_PLAYERS];
Trucker1[i] = TextDrawCreate(218.000000, 342.125000, "Drive the truck to the checkpoint."); TextDrawLetterSize(Trucker1[i], 0.348499, 1.582500); TextDrawAlignment(Trucker1[i], 1); TextDrawColor(Trucker1[i], -1); TextDrawSetShadow(Trucker1[i], 0); TextDrawSetOutline(Trucker1[i], 1); TextDrawBackgroundColor(Trucker1[i], 51); TextDrawFont(Trucker1[i], 1); TextDrawSetProportional(Trucker1[i], 1); Trucker2[i] = TextDrawCreate(231.000000, 367.937500, "(Ocean Dock's (LS) - %d km)"); TextDrawLetterSize(Trucker2[i], 0.449999, 1.600000); TextDrawAlignment(Trucker2[i], 1); TextDrawColor(Trucker2[i], -1); TextDrawSetShadow(Trucker2[i], 0); TextDrawSetOutline(Trucker2[i], 1); TextDrawBackgroundColor(Trucker2[i], 51); TextDrawFont(Trucker2[i], 1); TextDrawSetProportional(Trucker2[i], 1);
Atâta am făcut, în rest.. nu am definit nimic la OnPlayerConnected sau altundeva.
Întrebare legată de restricție.
in Discuţii scripting
Posted
Up !