-
Hello
Nekem olyan scriptem van, most lett kész, hogy bemész kocmsáb azt megnézed az árlistát és iszol..
igenám, de minden italnak más az ára...
pl vodka 250 ft...
és azt h lehetne megcsinni h ha beirja ugye h a vodkát veszi akkor leveszi a 250Ft-ot?
De neugy h akármennyi pénze van akkor minusz 250re állitja hanem pl a meglévö pénzéböl veszi el...
Lécci help 8)
-
Mikor megveszi:
if (GetPlayerMoney(playerid) > 249)
{
GivePlayerMoney(playerid, -250);
// ide azt írd, hogy mi történik, ha megveszi(van rá pénze)!
}
Ezzel ellenorizzük, van e rá pénze (ha a pénze több mint 249 dollár, akkor van 250 dollárja! :) ) , ha van akkor adunk neki -250 dollárt, ami azt jelenti, hogy 250 dollár \"levonódik\" a pénzébol.
else SendClientMessage(playerid, szin, \"Nincs rá pénzed! ($250)\");
Hogyha nincs neki 250 dollárja, akkor jelezzük neki és nem kapja meg a vodkát. Ha gond van szólj!
-
ÁÁHHHÁÁÁÁ
és mondjuk ha az ital 345 forint és neki annyinak kell lennie akkor meg igynézki?
if (GetPlayerMoney(playerid) > 344)
{
GivePlayerMoney(playerid, -345);
bebaszik xD
}
-
Igen, de az \"else\" részt is tedd be, mert nem tudja szegény miért nem piálhat. =(
-
igen igen aztmár megcsintam :D
Hát nagyon köszi :D:D
figyi még egy kérésem lenne.. de már nemnyitok több topicot:
azkéne h ha beirja h :D vagy xD akkor proxdetector modjára kiirja h röhög...
mint pl a sima beszédnél:
(az onplayertextnél)
public OnPlayerText(playerid, text[])
{
new string[256];
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string),\"%s mondja: %s\",sendername,text);
ProxDetector(10.0, playerid, string, COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3);
return 0;
}
-
Tess:
public OnPlayerText(playerid, text[])
{
new string[128];
new sendername[MAX_PLAYER_NAME];
if (strfind(text, \"XD\", true) != -1)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, 128,\"* %s nevet.\",sendername);
ProxDetector(10.0, playerid, string, COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3);
return 0;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string),\"%s mondja: %s\",sendername,text);
ProxDetector(10.0, playerid, string, COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3,COLOR_GRAD3);
return 0;
}
A strfind függvénnyel rákeresünk az \"XD\"-re (nem függ kis és nagybetuktol tehát lehet xd, xD, Xd stb), ha benne van, azaz a visszatérési érték nem egyenlo -1el (a visszatérési érték a karakterláncon belüli pozíció, -1 ha nem található benne). Ha hiba van szólj és átcsekkolom! :)
-
tökéletesen müködik, ez alapján megcsináltam csomoot.
már csak egy kellene...
ha beirja h /s és a szöveg akkor távolabbra mennyen a szöveg.. azt megtom csinni h távolabbra, de oooo
h h kell h parancsos legyen..
én igy probálkoztam :angel:
ha nemjo kérlek javitsatok ki:
if (strfind(text, \"/s\", true) != -1)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, 128,\"%s ordítja: %s\",sendername,text);
ProxDetector(30.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
return 0;
}
pawnoban lefut, serveren viszont unnamed command ..
ooo
meg més egy xD
csináltam adminszöveget..
csak admin tudja irni mindnekinek...
de amint beirom plh /parancs hi
akkor igy adja ki:
Admin Zsoma: hi
Unnamed command!
:O lécci segitsetek ebben a 2-ben még :-\\
-
Ha parancsot szeretnél akkor strcmp függvény kell. Az OnPlayerCommandText-hez tedd be ne másik parancsba és a legvégén lévo \"return 0;\" fölé.
if (!strcmp(cmdtext, \"/s\", true))
{
new plname[24];
GetPlayerName(playerid, plname, 24);
format(string, 128,\"%s ordítja: %s\", sendername, cmdtext[3]);
ProxDetector(60.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
Így ha minden igaz muködik, de ha csak annyit ír be, hogy /s, nem fogja \"elmondani\" a játékosnak h használat stb.. Ha az is kell, akkor megírom sscanf-al.
-
most suliba vagyok de biztosan joo :D
nagyon köszönöm iceaac! nagyon sokat segitettél most nekem... :)
és ha mást akarok pl akarok ilyet h suttogás akkor ugyanezt akkor azt alá?
pligy:
public OnPlayerCommandText(blabla)
{
if (!strcmp(cmdtext, \"/s\", true))
{
new plname[24];
GetPlayerName(playerid, plname, 24);
format(string, 128,\"%s ordítja: %s\", sendername, cmdtext[3]);
ProxDetector(60.0, playerid,colorcolorcolorcolorcolor...);
}
if (!strcmp(cmdtext, \"/w\", true))
{
new plname[24];
GetPlayerName(playerid, plname, 24);
format(string, 128,\"%s suttogja: %s\", sendername, cmdtext[3]);
ProxDetector(60.0, playerid,colorcolorcolorcolorcolor...);
}
-
Igen, de a ProxDetectornál a 60.0-t írd át! Ez a távolság.. Sima beszédnél 30, ordítás 60.. Suttogás 10 körül lehetne sztem. :)
-
mert az kb mekkora érték?
pl a 10?
az h nézzem meg h mekkora? :D:D:D
pl az 10 lépés gyalog vagy mi?
-
mert az kb mekkora érték?
pl a 10?
az h nézzem meg h mekkora? :D:D:D
pl az 10 lépés gyalog vagy mi?
Asszem olyan 10 méter játékon belül.. :D Am úgy nézd, hogy ha sima beszéd 30, akkor a suttogás kb az 1 harmada lehet, hogy hallják is a közelben lévok.
-
ahaaa
köszi :D
most gondolkoztam h olyan van h a proxdetectornál 5 sziintkell megadni..
az nem az h amien távol vagyok annál söttebb a szin? amivel mutatja?
pl igy: elotte még van vmi... haverom mutatta, de nem értem :-\\
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
-
Igen, annyi az egész h a legvilágosabbtól sötétedik.. Így érzékelteti a távolságot, hogy honnan szóltak. Az alul lévo cucc felesleges hozzá.
-
ja akkor azmár alapbol olyan?
::|
-
ja akkor azmár alapbol olyan?
::|
Ahha. ;D
-
kis bibi:
modositanom kellett mert nemvolt definiálva a string meg ienek és mikor igy van:
if (!strcmp(cmdtext, \"/s\", true))
{
new plname[24];
new string[256];
GetPlayerName(playerid, plname, 24);
format(string, 128,\"%s ordítja: %s\", plname, cmdtext[3]);
ProxDetector(60.0, playerid, string, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
}
akkor beirom simán h /s akkor müködik csak de akkor is ugyadja kih:
Zsoma orditja: /s
Unnamed command vagymi...
vmit elszurtam?
-
Én szúrtam el, nemsoká lesz idom és megírom rendesen sscanf-al.
-
ja akkor azé\' :P ;)
köszi :D:D
szerk.: ja még annyi h van egy parancsom h /admond hi és akkor kiirja aztis h hi de azt is h
unnamed command :O
pedig jol le van zárva mindneütt :-\\
-
Kész! :)
Én még mindig a régi sscanf-ot használom amit 1 inc fájlba tettem, szóval a hsz végén adok egy linket ahonnan letöltheted és majd tedd be a pawno/include mappába.
Mód tetejére:
#include <sscanf>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, \"\")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
new strz[128];
Mód legaljára:
dcmd_s(playerid, params[])
{
new str[128], plname[24];
if (sscanf(params, \"s\", str)) return SendClientMessage(playerid, 0xFF0000FF, \"Használat: /s [szöveg]\");
GetPlayerName(playerid, plname, 24);
format(strz, 128,\"%s ordítja: %s\", plname, str);
ProxDetector(60.0, playerid, strz, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
return 1;
}
dcmd_w(playerid, params[])
{
new str[128], plname[24];
if (sscanf(params, \"s\", str)) return SendClientMessage(playerid, 0xFF0000FF, \"Használat: /w [szöveg]\");
GetPlayerName(playerid, plname, 24);
format(strz, 128,\"%s suttogja: %s\", plname, str);
ProxDetector(10.0, playerid, strz, COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE,COLOR_WHITE);
return 1;
}
dcmd_adminmond(playerid, params[])
{
new str[128], plname[24];
if (sscanf(params, \"s\", str)) return SendClientMessage(playerid, 0xFF0000FF, \"Használat: /adminmond [szöveg]\");
GetPlayerName(playerid, plname, 24);
format(strz, 128,\"Admin %s: %s\", plname, str);
SendClientMessageToAll(0xFF0000FF, strz);
return 1;
}
Ezek lesznek a parancsok, amiket dcmdvel csináltunk.. Ha nem értesz valamit belolük szólj.
És most az OnPlayerCommandText-nél \"használjuk\" a parancsokat:
dcmd(s, 1, cmdtext);
dcmd(w, 1, cmdtext);
dcmd(adminmond, 9, cmdtext);
Az elso paraméter a parancs neve idézojelek nélkül, a második pedig az, hogy hány karakterbol áll a parancs.
Szerk: Elfelejtettem feltölteni az inc fájlt, várj 1 percet.. :D
Szerk2: Itt a link!
Letöltés
-
TÖKÉLETES munka! TÖKÉLETES SEGITSÉG!
TÖKÉLETES segitökészség!
Ennyit mondok, barátom, hálásan köszi :laugh: