Sveiki! Ši tema skirta dalintis jūsų/kitų žmonių sukurtomis funkcijomis. Kas kiek laiko atnaujinsiu šią temą su jūsų įkeltomis funkcijomis.
formattext credits: f0cus
stock formattext(divider, spacer[], text[])
{
new returnstr[1028], lines, tmp[512];
lines = floatround(strlen(text)/divider);
for(new x = 0; x <= lines; x++)
{
strmid(tmp, text, x*divider, (x+1)*divider);
if(x != lines) strcat(tmp, spacer);
format(returnstr, sizeof returnstr, "%s%s", returnstr, tmp);
}
return returnstr;
}
funkcijos:
divider - kiek simbolių gali būti sutalpinta į vieną eilutę
spacer - koks bus eilučių išskyrimo ženklas. Paskutinėje eilutėje jis nebus pridedamas.
text - tekstas, kurį skaidysite.
pvz.:
Funkis prieš 9 metus
Realiai, net nežinau kieno funkcija, bet ji yra gan naudinga man norint nustatyti "random" skaičių, skaičius.
stock randomEx(minnum = cellmin, maxnum = cellmax) return random(maxnum - minnum + 1) + minnum;
naudojimas:
new kintamasis = (randomEx(15,30))
GivePlayerMoney(playerid, kintamasis); // žaidėjas gaus nuo 15 iki 30 $$
Yohii prieš 9 metus
Greitesnins žaidėjo vardo išgavimo būdas (2ez).
stock playerName(playerid) {
playerN[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, playerN, MAX_PLAYER_NAME+1);
return playerN ;
}
Naudojimas paprastas, norint išgauti žmogaus vardą, arba formatuojant tekstą.
format(smght, sizeof(smght), "%s", playerName(playerid));
// or else
Infrox prieš 9 metus
stock Float:randomFloat(Float:min = 0.0,Float:max, dp = 4)
{
new
Float:mul = floatpower(10.0, dp),
imin = floatround(min * mul),
imax = floatround(max * mul);
return float(random(imax - imin) + imin) / mul;
}
Išgauna random float. dp - skaičių kiekis po kablelio.
Yiin prieš 9 metus
Dar greitesnis žaidėjo vardo išgavimo būdas
new playerName[MAX_PLAYERS][MAX_PLAYER_NAME];
public OnPlayerConnect(playerid) {
GetPlayerName(playerid, playerName[playerid], MAX_PLAYER_NAME);
}
public OnPlayerDisconnect(playerid, reason) {
playerName[playerid][0] = EOS;
}
naudojimas itin paprastas
CMD:saymyname(playerid) {
new message[50];
format(message, sizeof message, "Tavo slapyvardis yra %s", playerName[playerid]);
SendClientMessage(playerid, -1, message);
return true;
}
Yohii prieš 9 metus
GivePlayerScore(playerid, amount)
Funkcija padedanti prideti prie zaidejo +score, kiekviena karta nereikiant isgaudineti jo esamo score.
stock GivePlayerScore(playerid, amount) { SetPlayerScore(playerid, GetPlayerScore(playerid)+amount);
Naudojimas paprastas
cmd(kazkas, playerid, params[]) {
#pragma unused params
GivePlayerScore(playerid, 100); // pridesite 100 score +, galima padaryti komanda i kuria irasius bus pridedamas score
return 1;
}
f0cus prieš 9 metus
Šiai funkcijai reikalingas y_va įskiepis.
stock SendFormat(playerid, color, text[], va_args<>) {
new buffer[218];
va_format(buffer, sizeof buffer, text, va_start<3>);
return SendClientMessage(playerid, color, buffer);
}
naudojimas paprastas:
public OnPlayerConnect(playerid)
{
SendFormat(playerid, 0xBABABAFF, "Tavo laimingas skaičius: %d", random(30)+1);
}
Bičas prieš 9 metus
GetVehicleParam(vehicleid, param) {
new
params[7]
;
GetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
return params[param];
}
Gal kam pravers.
Funkis prieš 9 metus
SendDistanceMessage( playerid, String[ ],Radius,RadiusColor )
stock SendDistanceMessage( playerid, String[ ],Radius,RadiusColor )
{
new Float: Player[ 3 ];
GetPlayerPos( playerid, Player[ 0 ],Player[ 1 ],Player[ 2 ] );
for( new i = 0; i != MAX_PLAYERS; i++ )
{
if( !IsPlayerConnected( i ) ) continue;
if( IsPlayerInRangeOfPoint( i, Radius, Player[ 0 ],Player[ 1 ],Player[ 2 ] ) )
{
SendClientMessage( i, RadiusColor, String );
}
}
}
Britas prieš 9 metus
Galimybė žinutėje naudoti HEX spalvas rašant jas su # simboliu. Pavizdys: Sveiki #FF0000draugai!
new globalString[1024];
stock hexSifruote(tekstas[])
{
format(globalString, sizeof globalString, tekstas);
new findHEX = strfind(globalString, "#", true);
while(findHEX != -1)
{
strdel(globalString, findHEX, findHEX + 1);
strins(globalString, "{", findHEX);
strins(globalString, "}", findHEX + 7);
findHEX = strfind(globalString, "#", true);
}
return globalString;
}
f0cus prieš 9 metus
Integer apkeitimas.
stock IntegerSwitch(&value_1, &value_2) {
#emit LREF.S.PRI value_1
#emit LREF.S.ALT value_2
#emit SREF.S.PRI value_2
#emit SREF.S.ALT value_1
}
f0cus prieš 8 metus
stock GetObjectFrontVector(objectid, bool:dynamic, Float:distance, &Float:x, &Float:y)
{
new Float:object_z,
Float:object_a;
if((dynamic && GetDynamicObjectPos(objectid, x, y, object_z) && GetDynamicObjectRot(objectid, object_a, object_a, object_a))
|| (!dynamic && GetObjectPos(objectid, x, y, object_z) && GetObjectRot(objectid, object_a, object_a, object_a)))
{
x -= (distance * floatsin(-object_a, degrees));
y -= (distance * floatcos(-object_a, degrees));
return true;
}
return false;
}