Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Üzenetek - Zsolesszka

Oldalak: 1 ... 69 70 [71] 72 73 ... 136
1051
Archívum / Kódkezelési lehetõségek
« Dátum: 2012. április 30. - 18:16:01 »
Ok rendben, csak én nem tettem elé a kettõs kereszt jelet ezért nem vettem észre hogy színezi.
Én régóta Notepad++- t használok, sokkal elõnyösebb funkciói vannak mint a sima pawno-nak, és nálam a native és a Float: is színezve vannak és megszoktam hogy azok is kék színben virítanak.  :D

1052
Segítségkérés / Akkor adjunk neki fegyvert ha megadott helyre megy hogyan?
« Dátum: 2012. április 30. - 15:16:28 »
new
Circle; // Global változó

 

//OnGameModeInit alá
Circle = CreateDynamicCircle(Float:x, Float:y, Float:size);  //  x y koordináta size kör átmérõje tesztnek próbáld 2.00

 

public
OnPlayerEnterDynamicArea(playerid, areaid)
{
if(Circle == areaid)
{
SendClientMessage(playerid, -1, \"Beléptél a területre.\");
}
return 1;
}
public
OnPlayerLeaveDynamicArea(playerid, areaid)
{
if(Circle == areaid)
{
SendClientMessage(playerid, -1, \"Kiléptél a területrõl.\");
}
return 1;
}

1053
Archívum / Kódkezelési lehetõségek
« Dátum: 2012. április 30. - 13:08:16 »
pawn code tag  kék színnel ellátott foglalt szavai közül hiányzik a:
 

native
Float:
float
include
assert
line
pragma
define
defined
undef
emit
endif
endinput
error

1054
Segítségkérés / Akkor adjunk neki fegyvert ha megadott helyre megy hogyan?
« Dátum: 2012. április 30. - 12:58:31 »
Incognito Streamer pluginját esetleg használod-e?
Ha igen abban létre lehet hozni különbözõ területeket akár gömb kör négyzet vagy sokszög alakú területet, és vissza hívásai is vannak, ha belép oda valaki és kilép onnan.
 

native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicCube(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worldid = -1, interiorid = -1, playerid = -1);
native DestroyDynamicArea(areaid);
native IsValidDynamicArea(areaid);
native TogglePlayerDynamicArea(playerid, areaid, toggle);
native TogglePlayerAllDynamicAreas(playerid, toggle);
native IsPlayerInDynamicArea(playerid, areaid);
native IsPlayerInAnyDynamicArea(playerid);
native AttachDynamicAreaToPlayer(areaid, playerid);
native AttachDynamicAreaToVehicle(areaid, vehicleid);
native DestroyAllDynamicAreas();
native CountDynamicAreas();

 
Az összes native funkció ezt a célt szolgálja, létrehozni egy adott területet különbözõ alakúakat, ellenõrizni van-e benn játékos hány darab area van tudjon mozogni a játékos vagy sem stb.
Ezek meg a visszahívásaik:
 

forward OnPlayerEnterDynamicArea(playerid, areaid);
forward OnPlayerLeaveDynamicArea(playerid, areaid);

 
Értelem szerûen (enter) ha belép (leave) ha elhagyja a megadott területet a játékos.

1055
Segítségkérés / Kocsi jobbrább tétele
« Dátum: 2012. április 27. - 22:02:41 »
Így már sokkal világosabb a dolog és a pont az a megoldás amit elsõnek javasoltam.
De megpróbálhatod úgyis hogy nem figyelsz a szög értékekre hogy kisebb-e mint 0 vagy nagyobb-e mint 360 fok. A samp belsõleg kezeli ezeket, ki próbálhatod SetVehicleZAngle(vehicleid, 520.00); majd lekérdezed a szög adatot.
Edit:
De ebben az utolsóban lehet hogy tévedek mert pontos szög adat kelhet floatsin és floatcos szögfüggvényekhez.
Edit:
Ugyanaz amit írtál csak kicsit átláthatóbb.
 
new Float:zangle;
GetVehicleZAngle(vehicleid,zangle);
zangle -= 90.0000;
zangle = (zangle < 0.0) ? (360.0 + zangle) : zangle);
x += (2 * floatsin(-zangle, degrees)); // 2=táv az elmozdításhoz
y += (2 * floatcos(-zangle, degrees)); //ugyanez

 
Akkor a jobbra irány az óramutató járásával ellentétes irányba lenne 90 fokkal?
Hát ezt majd meglesem, most fogalmam sincs hogy jobbra vagy balra vannak-e a fok beosztások sa-mp -ben.  ;D

1056
Segítségkérés / Kocsi jobbrább tétele
« Dátum: 2012. április 27. - 20:02:07 »
A trigonometria nekem se az erõsségem de azt se tudom mi akar lenni ami a képen van.
Valami életszerû példa rá talán?
Most azt írod hogy a jármûvet már megfelelõ pozícióba állítja és a játékost kellene a kocsi jobb oldalára tenni?
Elsõ kérdésben meg azt vettem ki hogy a jármûveket kell jobbra tenni.
Újra átolvastam és ezt vettem ki belõle:
Valami olyasmit szeretnél hogy halad egy gépjármû egy sávban és hirtelen át dobná a másik sávba, ami tõle jobbra helyezkedik el?
Ha azt mondod hogy neked sikerült az a \"not like that\" akkor csak az elfordulási szöggel van a probléma.
Az igazság az hogy nincs ötletem hogy mire is jó ez az egész.  :angel:

1057
Segítségkérés / Kocsi jobbrább tétele
« Dátum: 2012. április 27. - 17:30:04 »
Próbáld ezt átalakítani jármûvekhez:
 
// ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ [ GetXYInFrontOfPlayer ] ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤ // Created by Y_Less
stock
GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
new
    Vehicle_ID = GetPlayerVehicleID(playerid),
Float:a;
if(Vehicle_ID)
{
    GetVehiclePos(Vehicle_ID,x,y,a);
    GetVehicleZAngle(Vehicle_ID, a);
} else {
GetPlayerPos(playerid, x, y, a);
GetPlayerFacingAngle(playerid, a);
}
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
}

 
Ez vissza adja elég pontosan egy jármû vagy egy játékos elõtti pozíció-t.
A jobb és bal oldali irányt meg a szög (angle) 90 vagy 270 fokkal történõ növelésével tudnád behatárolni.
Ha feltételezed hogy a 0 fok irányába nézel akkor az óramutató járásával megegyezõ irányba 90 fokra van a jobb oldal és 270 fokkal növelve van a bal oldal, 180 fokkal a hátrafelé.
Kísérletezz.  :D

1058
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 24. - 17:17:22 »
Köszönöm, említett helyesírási hiba javítva és a hangulatjel gond is.
Az strtok + (strval, floatstr) egyetlen egy integer vagy float típusú plusz paraméternél gyorsabb mint a sscanf plugin.
 
pl.:
használat : /wheater [index]
/wheater 12
A parancs megírásához strtok, strval használata javasolt.
 
[/quote]
A sscanf plugin gyorsasága a sokkal több információval rendelkezõ karakterláncok (parancsok) darabolásában mutatkozik meg.
 
pl.:
használat: /car [vehiclename/modelid] [color1] [color2]
/car infernus 124 234
A parancs megírásához sscanf plugin használata javasolt.
 
[/quote]

1059
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 23. - 23:16:16 »
Kösz.
Javítva.
Edit:
És még pár elírás is javítva.  ::|

1060
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 23. - 16:56:39 »
Idézetet írta: kurta999 date=1335183343\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"20541\" data-ipsquote-contentclass=\"forums_Topic
Szép leírás, nagyon könnyen meg lehet érteni.
Én már több, mind 3 éve scriptelek és még komolyabban a CNPC teszt scripten kívül máshol ezt nem használtam.
(Mivel kezdettõl sscanf-el kezdem, mert erre egy normális leírást sem találtam akkoriba :D)
 
Kösz, igyekeztem érthetõre írni, amúgy én is sscanf-et használok, csak van pár publikált filterscript amibe nem akartam azt használni.
(felesleges egy két parancsért egy plugin (sscanf.dll/so), ha meg lehet oldani másképp)
Így 90 százalék az esély arra, hogy még 3-4 év múlva is mûködõképes a publikált script amiben csak strtok van használva sscanf plugin helyett.  ;D

1061
Segítségkérés / Strtok
« Dátum: 2012. április 22. - 19:42:49 »
Írtam az strtok használatáról egy kis szösszenetet, ha gondolod olvasd el, hátha az én leírásom alapján könnyebben megérted használatát.
http://sampforum.hu/index.php?topic=24788.msg261637#msg261637

1062
Leírások/Útmutatók / [Leírás]strtok (használata)
« Dátum: 2012. április 22. - 19:40:39 »
Tudom létezik több száz leírás de írok egyet én is.
Az strtok nem más mint egy karakterlánc feldarabolására használatos eljárás.
A kód:
 
stock strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= \' \'))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > \' \') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

 
Használata eléggé egyszerû: (fontos megjegyezni hogy ezen verzió maximálisan 20 karakternyi karakterláncokra darabolja a bevitt adatainkat. (new result[20];)
Példaként egy parancsot használnék, legyen a parancsunk a:
 
/nem fogod használni 1 percet sem ezt a parancsot

 
Ha mi ezt beírnánk játék közben akkor ez visszahívásként megjelenne nekünk az OnPlayerCommandText cmdtext[] változójában.
 

public
OnPlayerCommandText(playerid, cmdtext[])
{
new
PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, sizeof PlayerName);
printf(\"(%d %s) - %s\", playerid, PlayerName, cmdtext);
return 1;
}

 
Miután játék közben beírtuk a parancsot, a fenti kód sorozat az azonosító számunkat(playerid) a játékosnevünket(PlayerName) és a beírt parancsunkat(cmdtext[]) kiírja konzolba és menti a server_log.txt fájlba, a következõképp:
 
(0 Zsolesszka) - /nem fogod használni 1 percet sem ezt a parancsot

 
Innen láthatjuk hogy a használt parancsot a cmdtext[] változó tárolja számunkra.
Nekünk ezt fel kell darabolni hogy feltudjuk használni minden egyes paraméterét külön, konzolban egymás alá kifogjuk íratni a parancsunk elemeit, erre használhatjuk az strtok függvényt de erre a célra több eljárás is létezik, a legismertebb és a legtöbbet használt Y_Less sscanf pluginja által biztosított sscanf( ) eljárás.
Azt tudjuk már hogy a cmdtext[] változó tárolja a parancsot.
Ezt kell nekünk strcmp-vel le ellenõriztetnünk. Amirõl még nem ejtettem szót az az hogy az strtok az a space karakter mentén darabolja parancsukat.
Ezt persze meg is lehet változtatni, de alap esetben és legtöbbet a space-t használjuk még ebben a leírásban is a szavak elválasztására használom.  :laugh:
Az strcmp-hez szokás legelsõnek feldaraboltatni strtok-kal minden bejövõ adatot amit a (cmdtext[]) tárol, mert ha nem tennénk, akkor a következõ ellenõrzést hajtaná végre, ami hamis eredményhez vezethet.
 
strcmp(cmdtext, \"/nem\", true)
strcmp(\"/nem fogod használni 1 percet sem ezt a parancsot\", \"/nem\", true)

 
A cmdtext tartalmát behelyettesítettem az strcmp-be és így láthatjuk hogy az összehasonlítás nem megfelelõ számunkra. Mert csak a legelsõ résszel kellene össze hasonlítást végeztetnünk.
 
public
OnPlayerCommandText(playerid, cmdtext[])
{
new
idx = 0,
str[20];
str = strtok(cmdtext, idx);
if(strcmp(str, \"/nem\", true) == 0)
//   if(strcmp(\"/nem\", \"/nem\", true) == 0)
{
return 1;
}
return 0;
}

 
Az strtok vissza tért nekünk a \"/nem\" karakterekkel és elmentette az (str[20];) változóba, miközben a (cmdtext[]) még mindíg tárolja számunkra a komplett parancsunkat. Így már az strcmp egyezést fog találni és megfelelõ eredményt ad vissza ami a program futását megfelelõ írányba engedi tovább.
Az idx változó pedig tárolja a space karakterek pozicióját számunkra. (az str változónak 20-as értéket adtam meg, mert felesleges nagyobb a példában, mert az strtok is 20 karakternyi értékkel tér vissza (new result[20];).
A parancsunk többi paraméterét az strtok többszöri használatával tudjuk feldaraboltatni, amit egy komplett példával szemléltetnék.
 
public
OnPlayerCommandText(playerid, cmdtext[])
{
//   cmdtext = \"/nem fogod használni 1 percet sem ezt a parancsot\";  // Ezt tartalmazza a cmdtext változó
new
idx = 0, // space karakter poziciójának tárolása
str[20]; // Az strtok által visszatért adat tárolása 20 karakternyi az strtok maximálisan annyival tér vissza ami elég szokott lenni (new result[20];)
str = strtok(cmdtext, idx); // strtok által visszatért adat str = \"/nem\"  idx = 4; (a \"/nem\" karakterlánc utáni space vagy null karakter \'\\0\' pozíciója)
if(strcmp(str, \"/nem\", true) == 0) // strcmp(\"/nem\", /nem\", true);
{
printf(\"%s idx: %d\", str, idx); // nem
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 4);
printf(\"%s idx: %d\", str, idx); // fogod
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 10);
printf(\"%s idx: %d\", str, idx); // használni
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 20);
printf(\"%s idx: %d\", str, idx); // 1
printf(\"strval: %d\", strval(str));  // 1
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 22);
printf(\"%s idx: %d\", str, idx); // percet
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 29);
printf(\"%s idx: %d\", str, idx); // sem
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 33);
printf(\"%s idx: %d\", str, idx); // ezt
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 37);
printf(\"%s idx: %d\", str, idx); // a
str = strtok(cmdtext, idx); // strtok-nak küldött adat: strtok(\"/nem fogod használni 1 percet sem ezt a parancsot\", 39);
printf(\"%s idx: %d\", str, idx); // parancsot
return 1;
}
return 0;
}

 
Ebbõl láthatjuk hogy az idx változónk a space karakterek pozicióját tárolja.
A pawn nyelv 0-tól számol sok mindent, ezért a per jelünk (/) a nulladik karakter.
/nem(4)fogod(10)használni(20)1(22)percet(29)sem(33)ezt(37)a(39)parancsot(49)
Remélem így már kicsit érthetõbb lesz  pár személynek, az strtok használata.

1063
Segítségkérés / RUMTIME ERROR!!!!
« Dátum: 2012. április 21. - 21:32:34 »
:D
Az runtime és nem rumtime.
Futási(run) idõben(time) keletkezett hiba. (\"futás közbeni hiba\")
A rum-ot a kocsmában mérik, vagy boltban lehet megvenni.

1064
Fórum Archívum (Témák/Fórumok) / IG Bug reporter ( Fálj alapú )
« Dátum: 2012. április 19. - 18:43:19 »
Fail: http://sampforum.hu/index.php?topic=13658.msg157308#msg157308
Letöltöttem és mit látok benne?
 
/*
Tedd/csinálj a scriptfiles mappába egy  note  nevû jegyzettömböt!
Scriptet készítette: Mr.M[aa]rK
2010/7/19
*/
#include a_samp
#define bugdialog 23
#define red            0xFB0000FF
public OnFilterScriptInit(){
print(\"\\n--==================================--\");
print(\" Bug reporter by Mr.M[aa]rK\");
print(\"--==================================--\\n\");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[]){
if (strcmp(cmdtext, \"/bug\", true)==0){
if(!fexist(\"bug.txt\")) return SendClientMessage(playerid,red,\"Nincs jegyzet fájl! Próbáld meg késöbb!\");
ShowPlayerDialog(playerid,bugdialog,DIALOG_STYLE_INPUT,\"BUG/Hibák jelentése\", \"Kérlek írd le a problémát:\", \"Elküld\", \"Mégse\");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
if(dialogid == bugdialog && response){
    if(!inputtext[0]) return ShowPlayerDialog(playerid,bugdialog,DIALOG_STYLE_INPUT,\"BUG/Hiba jelentése\", \"Nem írtál be szöveget!\",\"Elküld\",\"Mégse\");
new string[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof name);
        new File:pos=fopen(\"bug.txt\", io_append);
//====Dátum=====
        new Year, Month, Day;
getdate(Year, Month, Day);
//====Idõ=====
new Hour, Minute, Second;
gettime(Hour, Minute, Second);
        format(string, 256, \"\\n\\r[Dátum: %02d/%02d/%d][idõ: %02d:%02d:%02d]  %s bejelentése: %s\\n\\r\",Day, Month, Year, Hour, Minute, Second, name, inputtext);
        fwrite(pos, string);
        fclose(pos);
SendClientMessage(playerid,0xFFFF00AA,\"Jelentés elküldve!\");
return 1;
}
return 1;
}

 
Kitiltás járna érte de 20 % figyelmeztetés kapsz.

1065
Archívum / [HUN] nHistory RolePlay - Egy új történet
« Dátum: 2012. április 16. - 15:14:31 »
Idézetet írta: Nocoxil date=1334516345\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"18503\" data-ipsquote-contentclass=\"forums_Topic
\"width=500http://a5.sphotos.ak.fbcdn.net/hphotos-ak-ash4/s720x720/305693_344418012282541_100001430360472_976616_652618390_n.jpg[/img]
Ha engem kérdeztek, ilyeneknek már sajnos felesleges mûködtetni a szervert...
Üdv. Nocoxil™
 
:laugh: :laugh:
Hát milyen admin mód van, hogy saját magát is kitudja tiltani (ban) az ember?

Oldalak: 1 ... 69 70 [71] 72 73 ... 136
SimplePortal 2.3.7 © 2008-2024, SimplePortal