#include
#define FEHER -1
i = integer,egész szám (-1, 15 stb)s = string,karakterlánc (\"a stringet mindig macskakörömbe kell rakni\", \"a string az adott szöveg\")d = Lásd: ia = array,Tömb,a következõ paraméter egy szám kell legyen,az a tömb mérete. (new tomb[12]; new masiktomb[24])b = bolean,tehát csak igaz/hamis érték lehet ( 0 - hamis, 1 - igaz)f = float,valós,lebegõpontos szám.(Tört,pl. 0.23)
SendClientMessage(playerid, -1, \"Idézõ jelbe leírtam, hogy stringet rakunk, azaz ez lesz a szöveg\");
Eljárás = Minden eljárás függvény,de nem minden függvény eljárás.Eljárásnak nevezzük azokat a függvényeket,amik public kulcsszóval kezdõdnek és általában egy értéket adnak vissza,feladatot látnak el.A beépített fügvények a megfelelõ alkalmakkor lépnek mûködésbe.Pl. OnPlayerText ha a játékos ír a chatbe,stb...[/quote]Ehhez csak annyit fûznék hozzá, hogy függvények és eljárások kölcsönös kombinációjával érhetjük el azt amit valóban szeretnénk a SA:MP-ban csinálni, és épp ez a legjobb ebben a nyelvben, hogy vajon hogyan kombinálj össze és milyen függvényeket ahhoz, hogy a végén meglegyen a kívánt kódod. És ha sikerül igazán Epic Win érzése van az embernek Boncolgathatnám a témát napestig meg mutathatnám példával, hogy hogyan kell kódokat kihozni de igazából ezt és mint minden programozási nyelvet úgy tudsz csak megtanulni, ha van türelmed leseggelsz a monitor elé megtanulod a függvényeket és eljárásokat és készítesz hozzájuk saját magad példákat és nem a Segítségkérésekben kérdezed meg az embereket. Ez csak így megy, személy szerint nekem 4 hónapomba került de nagyban segített, hogy függvények és eljárások 1/3-át én fordítottam le (140 db-ot kb), de van akinek ez 1 év is lehet akár.Minden esetre a fórum tagjai voltak annyira szorgalmasak és átfordították a vágyakozó szellemû tanulóknak magyarra az összes függvényt és eljárást ezzel is megkönnyítve a dolgotokat. Ezt a wikipédiát ide kattintva érhetitek el.Valamint Chuck Norris példái és magyarázatai is nagyon sokat segítenek amelyet itt tudtok elolvasni, ajánlom olvassátok át többször is akár, mert nagyon hasznos leírás.ElrendezésSokan azt gondolják akik még nem jártasak, hogy egy bizonyos \"séma\" alapján kell írni a PAWNO-ban ahol megvan szabva, hogy egy függvény például csak eljárás után következhet és ilyen dolgok. Elég téveszme, ugyanis szinte bárhogyan írhatjuk a kódunkat csak legelõször az includeot kell feltüntetni és utána már bármit írhatunk. Ez az írás személyfüggõ, mindenkinek van egy stílusa ami a sok gyakorlás után ki szokott alakulni az illetõben, de azért nem mindegy természetesen, hogy rendezetten helyezzük el dolgainkat vagy össze-vissza. Én általában akik ezeket szokták kérdezni tõlem ezt az elrendezési formát tanácsolom:1.Includeok2.Definálások3.Globális változók4.Stockok5.Forwardok6.Enumerátorok7. Függvények/Eljárások Én mindig így írom meg a kódom és így könnyedén vissza lehet követni bármit és nincs elveszve minden.Példaként az egyik filterscriptemet írnám le ugyanis példát láthattok defineokra, includeokra, stockokra globális változókra rendes változókra, PVar, logikai operátorok és hasonlók, valamint láthatjátok az elrendezést : parancsok, parancsokhoz tartozó függvények, függvények eljárásai.#include #include #include #include #include #pragma tabsize 0#define DIALOG_0 100#define DIALOG_1 101#define DIALOG_2 102#define DIALOG_3 103#define DIALOG_4 104#define S_MAX_OBJECTS 5000#define FILTERSCRIPTnew objectmodelid, bool:objectediteles[MAX_PLAYERS], bool:objecttorlese[MAX_PLAYERS], objectlista = mS_INVALID_LISTID;stock IsNumeric(const string[]){ for (new i = 0, j = strlen(string); i < j; i++) { if (string > \'9\' || string < \'0\') return 0; } return 1;}stock Objecttolt(filename[]){ if(!fexist(filename)) printf(\"Az adott fájl nem létezik, hozd létre ezzel a címmel (objectek - és txt legyen), ha nem hozza létre autómatikusan!\"); new buff[256], object, WorldID, IntID, Float: X,Y,Z, rX, rY, rZ, szamlalo, File:opened = fopen(\"objectek.txt\", io_read); if(opened) { while(fread(opened, buff)) { unformat(buff,\"dffffffdd\", object, X, Y, Z, rX,rY,rZ,WorldID, IntID); printf(\"%d, %f, %f, %f, %f, %f, %f, %d, %d\", object, X, Y, Z, rX,rY,rZ, WorldID, IntID ); CreateDynamicObject(object, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, WorldID, IntID, -1, 200.0); szamlalo++; } fclose(opened); } return 1;}stock Objectment(filename[],object,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ, WorldID, IntID){ new File:opened, sorok[256]; format(sorok,sizeof(sorok), \"%d %f %f %f %f %f %f %d %d \\r\\n\", object, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, WorldID,IntID); opened = fopen(filename, io_append); fwrite(opened, sorok); fclose(opened); return 1;}public OnFilterScriptInit(){ print(\"\\n--------------------------------------\"); print(\"Online Munka Készító FilterScript - by SnooP\"); print(\" Sikeresen betöltve\\n\" ); print(\" Minden eleme betöltve\\n\" ); print(\"--------------------------------------\\n\"); Objecttolt(\"objectek.txt\"); objectlista = LoadModelSelectionMenu(\"objmenu.txt\"); return 1;}CMD:parancsok(playerid,params[]){ if(IsPlayerAdmin(playerid)) { ShowPlayerDialog(playerid,DIALOG_0,DIALOG_STYLE_MSGBOX,\"Az összes parancs\",\"{3ba326}/ol {f70d0d}(Objectek létrehozása), {3ba326}/ot {f70d0d}(Objectek Törlése)\\n {3ba326}/oe {f70d0d}(Objectek editelése), {3ba326}/om {f70d0d}(Objectek másolása)\\n {3ba326}/ols {f70d0d}(Az összes object listája)\",\"Kilépek\",\"\"); } return 1;}CMD:ol(playerid,params[]){if(IsPlayerAdmin(playerid))ShowPlayerDialog(playerid,DIALOG_1,DIALOG_STYLE_INPUT,\"Object ID\",\"Kérlek írd be az általad válaszott Object ID-jét!\",\"Tovább\",\"Mégse\");return 1;}CMD:om(playerid,params[]){if(IsPlayerAdmin(playerid))objectediteles[playerid] = false;objecttorlese[playerid] = false;ShowPlayerDialog(playerid,DIALOG_2,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az object másolása igen egyszerû, kilépés után ki kellesz válaszd melyik objectet akarod másolni, majd beállítod, mint az object editelésénél a helyét\",\"OK\",\"\");return 1;}CMD:oe(playerid,params[]){if(IsPlayerAdmin(playerid))objectediteles[playerid] = true;objecttorlese[playerid] = false;ShowPlayerDialog(playerid,DIALOG_3,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az objectek editelése egyszerû feladat. Elõször válaszd ki az objectet amelyiket editelni akarod, majd a grafikus felületen szabd kedvedre!\",\"OK\",\"\");return 1;}CMD:ot(playerid,params[]){if(IsPlayerAdmin(playerid))objecttorlese[playerid] = true;objectediteles[playerid] = false;ShowPlayerDialog(playerid,DIALOG_4,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az object törlése igen egyszerû, csupán kattints arra az objectre amelyiket törölni szeretnéd.\",\"OK\",\"\");return 1;}CMD:ols(playerid,params[]){if(IsPlayerAdmin(playerid))ShowModelSelectionMenu(playerid, objectlista, \"Objectek\");return 1;}public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){if(dialogid == DIALOG_0) { if(!response) SendClientMessage(playerid,-1, \"{f70d0d}Kiléptél a dialogból!\"); }if(dialogid == DIALOG_1) { if(response) { if(IsNumeric(inputtext)) { new Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, stringg[60], IntID, WorldID; objectmodelid = strval(inputtext); format(stringg, sizeof(stringg), \"Sikeresen létrehoztad a %d Objectet\", objectmodelid); SendClientMessage(playerid, -1, stringg); GetPlayerPos(playerid,X,Y,Z); IntID = GetPlayerInterior(playerid); WorldID = GetPlayerVirtualWorld(playerid); GetDynamicObjectRot(objectmodelid, Float:rX, Float:rY, Float:rZ); CreateDynamicObject(objectmodelid,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ,WorldID,IntID, -1, 200.0); GetPVarInt(playerid, \"objectmodelid\"); SetPVarInt(playerid, \"omodelid\", objectmodelid); } else SendClientMessage(playerid,-1,\"Te egy betüt írtál be. Kérlek írj egy létezõ Objectnek az ID-jét\"); ShowPlayerDialog(playerid,DIALOG_1,DIALOG_STYLE_INPUT,\"Object ID\",\"Kérlek írd be az általad válaszott Object ID-jét!\",\"Tovább\",\"Mégse\"); } else SendClientMessage(playerid,-1,\"Kiléptél az Object Létrehozásából!\"); }if(dialogid == DIALOG_2) { if(response) SendClientMessage(playerid, -1, \"Kattints egy objectre annak másolásához\"); SelectObject(playerid); return 1; }if(dialogid == DIALOG_3) { if(response) SendClientMessage(playerid, -1, \"Kattints egy objectre annak editeléséhez!\"); SelectObject(playerid); return 1; }if(dialogid == DIALOG_4) { if(response) SendClientMessage(playerid, -1, \"Kattints a törölni való objectre!\"); SelectObject(playerid); return 1; }return 1;}public OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z){if(objectediteles[playerid] == false && objecttorlese[playerid] == false){new Float: rx, Float: ry, Float:rz, WorldID, IntID, objid;GetPlayerPos(playerid,x,y,z);IntID = GetPlayerInterior(playerid);WorldID = GetPlayerVirtualWorld(playerid);objid = CreateDynamicObject( modelid, Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,WorldID,IntID, -1, 200.0);SendClientMessage(playerid, -1, \" Sikeresen kiválasztottad az objectet, mostmár másolhatod\");EditDynamicObject(playerid, objid);}if(objectediteles[playerid] == true ){SendClientMessage(playerid, -1, \" Sikeresen kiválasztottad az objectet, mostmár editelheted\");EditDynamicObject(playerid,objectid);}if(objecttorlese[playerid] == true){new File:opened = fopen(\"objectek.txt\", io_append),sorok[128];DestroyDynamicObject(objectid);SendClientMessage(playerid, -1, \" Az object törölve a játékban és a fájlban is egyaránt (A fájlban a törölt object adatai helyett egy \'Törölt Object\' címszó lesz\"); if(opened) { { fread(opened, sorok); { new Float: rX, Float:rY, Float:rZ; new InteriorID, WorldID; GetDynamicObjectRot(objectid, Float:rX, Float:rY, Float: rZ); InteriorID = GetPlayerInterior(playerid); WorldID = GetPlayerVirtualWorld(playerid); if(sscanf(sorok, \"dffffffdd\" , modelid, Float:x, Float:y, Float:z, Float:rX, Float:rY, Float:rZ, WorldID, InteriorID)) { fwrite(opened, \"Törölt Object\\r\\n\"); } } } } fclose(opened);}return 1;}public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz){ new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:speed = 10.0, IntID, WorldID; GetDynamicObjectPos(objectid, Float:oldX, Float:oldY, Float:oldZ); GetDynamicObjectRot(objectid, Float:oldRotX, Float:oldRotY, Float:oldRotZ); if(response == EDIT_RESPONSE_CANCEL) { SetDynamicObjectPos(objectid, Float:oldX, Float:oldY, Float:oldZ); SetDynamicObjectRot(objectid, Float:oldRotX, Float:oldRotY, Float:oldRotZ); } if(response == EDIT_RESPONSE_UPDATE) { MoveDynamicObject( objectid, Float:x, Float:y, Float:z, Float:speed, Float:rX = -1000.0, Float:rY = -1000.0, Float:rZ = -1000.0 ); } if(response == EDIT_RESPONSE_FINAL) { SendClientMessage(playerid, -1, \"Sikeresen mentetted az objectet\"); GetDynamicObjectPos(objectid, Float:X, Float:Y, Float:Z); IntID = GetPlayerInterior(playerid); WorldID = GetPlayerVirtualWorld(playerid); GetDynamicObjectRot(objectid, Float:rX, Float:rY, Float:rZ); Objectment(\"objectek.txt\",GetPVarInt(playerid,\"omodelid\"),Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ,WorldID,IntID); } return 1;}public OnPlayerModelSelection(playerid, response, listid, modelid){ if(listid == objectlista) { if(response) { SendClientMessage(playerid, -1, \"Object lerakva\"); new Float:X, Float: Y, Float:Z; GetPlayerPos(playerid, Float:X, Float:Y, Float:Z); CreateDynamicObject(modelid, Float:X, Float:Y, Float:Z, 0.0, 0.0, 0.0, 0, 0); SetPVarInt(playerid, \"omodelid\", modelid); } else SendClientMessage(playerid, -1, \"Kiléptél az objectek listájából\"); return 1; }return 1;}public OnFilterScriptExit(){ print(\"\\n--------------------------------------\"); print(\"Online Munka Készító FilterScript - by SnooP\"); print(\" Leállt\\n\" ); print(\" Minden eleme mentve\\n\" ); print(\"--------------------------------------\\n\"); return 1;} Tehát még egyszer is hangsúlyoznám, az elrendezés ki fog alakulni idõvel mindenkibe, csak arra figyeljetek oda, hogy rendezett legyen és szépen felépített, higgyétek el sokat számít UtószóRemélem megértette a célközönség és hasznos volt számukra. Ha kérdésetek lenne akkor nyugodtan tegyétek fel komment formájában, esetlegesen ha hibákat véltek felfedezni kérlek szóljatok. Köszönöm annak akinek volt türelme és végigolvasta.ÜdvSnooP
1.Includeok2.Definálások3.Globális változók4.Stockok5.Forwardok6.Enumerátorok7. Függvények/Eljárások
#include #include #include #include #include #pragma tabsize 0#define DIALOG_0 100#define DIALOG_1 101#define DIALOG_2 102#define DIALOG_3 103#define DIALOG_4 104#define S_MAX_OBJECTS 5000#define FILTERSCRIPTnew objectmodelid, bool:objectediteles[MAX_PLAYERS], bool:objecttorlese[MAX_PLAYERS], objectlista = mS_INVALID_LISTID;stock IsNumeric(const string[]){ for (new i = 0, j = strlen(string); i < j; i++) { if (string > \'9\' || string < \'0\') return 0; } return 1;}stock Objecttolt(filename[]){ if(!fexist(filename)) printf(\"Az adott fájl nem létezik, hozd létre ezzel a címmel (objectek - és txt legyen), ha nem hozza létre autómatikusan!\"); new buff[256], object, WorldID, IntID, Float: X,Y,Z, rX, rY, rZ, szamlalo, File:opened = fopen(\"objectek.txt\", io_read); if(opened) { while(fread(opened, buff)) { unformat(buff,\"dffffffdd\", object, X, Y, Z, rX,rY,rZ,WorldID, IntID); printf(\"%d, %f, %f, %f, %f, %f, %f, %d, %d\", object, X, Y, Z, rX,rY,rZ, WorldID, IntID ); CreateDynamicObject(object, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, WorldID, IntID, -1, 200.0); szamlalo++; } fclose(opened); } return 1;}stock Objectment(filename[],object,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ, WorldID, IntID){ new File:opened, sorok[256]; format(sorok,sizeof(sorok), \"%d %f %f %f %f %f %f %d %d \\r\\n\", object, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, WorldID,IntID); opened = fopen(filename, io_append); fwrite(opened, sorok); fclose(opened); return 1;}public OnFilterScriptInit(){ print(\"\\n--------------------------------------\"); print(\"Online Munka Készító FilterScript - by SnooP\"); print(\" Sikeresen betöltve\\n\" ); print(\" Minden eleme betöltve\\n\" ); print(\"--------------------------------------\\n\"); Objecttolt(\"objectek.txt\"); objectlista = LoadModelSelectionMenu(\"objmenu.txt\"); return 1;}CMD:parancsok(playerid,params[]){ if(IsPlayerAdmin(playerid)) { ShowPlayerDialog(playerid,DIALOG_0,DIALOG_STYLE_MSGBOX,\"Az összes parancs\",\"{3ba326}/ol {f70d0d}(Objectek létrehozása), {3ba326}/ot {f70d0d}(Objectek Törlése)\\n {3ba326}/oe {f70d0d}(Objectek editelése), {3ba326}/om {f70d0d}(Objectek másolása)\\n {3ba326}/ols {f70d0d}(Az összes object listája)\",\"Kilépek\",\"\"); } return 1;}CMD:ol(playerid,params[]){if(IsPlayerAdmin(playerid))ShowPlayerDialog(playerid,DIALOG_1,DIALOG_STYLE_INPUT,\"Object ID\",\"Kérlek írd be az általad válaszott Object ID-jét!\",\"Tovább\",\"Mégse\");return 1;}CMD:om(playerid,params[]){if(IsPlayerAdmin(playerid))objectediteles[playerid] = false;objecttorlese[playerid] = false;ShowPlayerDialog(playerid,DIALOG_2,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az object másolása igen egyszerû, kilépés után ki kellesz válaszd melyik objectet akarod másolni, majd beállítod, mint az object editelésénél a helyét\",\"OK\",\"\");return 1;}CMD:oe(playerid,params[]){if(IsPlayerAdmin(playerid))objectediteles[playerid] = true;objecttorlese[playerid] = false;ShowPlayerDialog(playerid,DIALOG_3,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az objectek editelése egyszerû feladat. Elõször válaszd ki az objectet amelyiket editelni akarod, majd a grafikus felületen szabd kedvedre!\",\"OK\",\"\");return 1;}CMD:ot(playerid,params[]){if(IsPlayerAdmin(playerid))objecttorlese[playerid] = true;objectediteles[playerid] = false;ShowPlayerDialog(playerid,DIALOG_4,DIALOG_STYLE_MSGBOX,\"Használat\",\"Az object törlése igen egyszerû, csupán kattints arra az objectre amelyiket törölni szeretnéd.\",\"OK\",\"\");return 1;}CMD:ols(playerid,params[]){if(IsPlayerAdmin(playerid))ShowModelSelectionMenu(playerid, objectlista, \"Objectek\");return 1;}public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){if(dialogid == DIALOG_0) { if(!response) SendClientMessage(playerid,-1, \"{f70d0d}Kiléptél a dialogból!\"); }if(dialogid == DIALOG_1) { if(response) { if(IsNumeric(inputtext)) { new Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, stringg[60], IntID, WorldID; objectmodelid = strval(inputtext); format(stringg, sizeof(stringg), \"Sikeresen létrehoztad a %d Objectet\", objectmodelid); SendClientMessage(playerid, -1, stringg); GetPlayerPos(playerid,X,Y,Z); IntID = GetPlayerInterior(playerid); WorldID = GetPlayerVirtualWorld(playerid); GetDynamicObjectRot(objectmodelid, Float:rX, Float:rY, Float:rZ); CreateDynamicObject(objectmodelid,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ,WorldID,IntID, -1, 200.0); GetPVarInt(playerid, \"objectmodelid\"); SetPVarInt(playerid, \"omodelid\", objectmodelid); } else SendClientMessage(playerid,-1,\"Te egy betüt írtál be. Kérlek írj egy létezõ Objectnek az ID-jét\"); ShowPlayerDialog(playerid,DIALOG_1,DIALOG_STYLE_INPUT,\"Object ID\",\"Kérlek írd be az általad válaszott Object ID-jét!\",\"Tovább\",\"Mégse\"); } else SendClientMessage(playerid,-1,\"Kiléptél az Object Létrehozásából!\"); }if(dialogid == DIALOG_2) { if(response) SendClientMessage(playerid, -1, \"Kattints egy objectre annak másolásához\"); SelectObject(playerid); return 1; }if(dialogid == DIALOG_3) { if(response) SendClientMessage(playerid, -1, \"Kattints egy objectre annak editeléséhez!\"); SelectObject(playerid); return 1; }if(dialogid == DIALOG_4) { if(response) SendClientMessage(playerid, -1, \"Kattints a törölni való objectre!\"); SelectObject(playerid); return 1; }return 1;}public OnPlayerSelectDynamicObject(playerid, objectid, modelid, Float:x, Float:y, Float:z){if(objectediteles[playerid] == false && objecttorlese[playerid] == false){new Float: rx, Float: ry, Float:rz, WorldID, IntID, objid;GetPlayerPos(playerid,x,y,z);IntID = GetPlayerInterior(playerid);WorldID = GetPlayerVirtualWorld(playerid);objid = CreateDynamicObject( modelid, Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz,WorldID,IntID, -1, 200.0);SendClientMessage(playerid, -1, \" Sikeresen kiválasztottad az objectet, mostmár másolhatod\");EditDynamicObject(playerid, objid);}if(objectediteles[playerid] == true ){SendClientMessage(playerid, -1, \" Sikeresen kiválasztottad az objectet, mostmár editelheted\");EditDynamicObject(playerid,objectid);}if(objecttorlese[playerid] == true){new File:opened = fopen(\"objectek.txt\", io_append),sorok[128];DestroyDynamicObject(objectid);SendClientMessage(playerid, -1, \" Az object törölve a játékban és a fájlban is egyaránt (A fájlban a törölt object adatai helyett egy \'Törölt Object\' címszó lesz\"); if(opened) { { fread(opened, sorok); { new Float: rX, Float:rY, Float:rZ; new InteriorID, WorldID; GetDynamicObjectRot(objectid, Float:rX, Float:rY, Float: rZ); InteriorID = GetPlayerInterior(playerid); WorldID = GetPlayerVirtualWorld(playerid); if(sscanf(sorok, \"dffffffdd\" , modelid, Float:x, Float:y, Float:z, Float:rX, Float:rY, Float:rZ, WorldID, InteriorID)) { fwrite(opened, \"Törölt Object\\r\\n\"); } } } } fclose(opened);}return 1;}public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz){ new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:speed = 10.0, IntID, WorldID; GetDynamicObjectPos(objectid, Float:oldX, Float:oldY, Float:oldZ); GetDynamicObjectRot(objectid, Float:oldRotX, Float:oldRotY, Float:oldRotZ); if(response == EDIT_RESPONSE_CANCEL) { SetDynamicObjectPos(objectid, Float:oldX, Float:oldY, Float:oldZ); SetDynamicObjectRot(objectid, Float:oldRotX, Float:oldRotY, Float:oldRotZ); } if(response == EDIT_RESPONSE_UPDATE) { MoveDynamicObject( objectid, Float:x, Float:y, Float:z, Float:speed, Float:rX = -1000.0, Float:rY = -1000.0, Float:rZ = -1000.0 ); } if(response == EDIT_RESPONSE_FINAL) { SendClientMessage(playerid, -1, \"Sikeresen mentetted az objectet\"); GetDynamicObjectPos(objectid, Float:X, Float:Y, Float:Z); IntID = GetPlayerInterior(playerid); WorldID = GetPlayerVirtualWorld(playerid); GetDynamicObjectRot(objectid, Float:rX, Float:rY, Float:rZ); Objectment(\"objectek.txt\",GetPVarInt(playerid,\"omodelid\"),Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ,WorldID,IntID); } return 1;}public OnPlayerModelSelection(playerid, response, listid, modelid){ if(listid == objectlista) { if(response) { SendClientMessage(playerid, -1, \"Object lerakva\"); new Float:X, Float: Y, Float:Z; GetPlayerPos(playerid, Float:X, Float:Y, Float:Z); CreateDynamicObject(modelid, Float:X, Float:Y, Float:Z, 0.0, 0.0, 0.0, 0, 0); SetPVarInt(playerid, \"omodelid\", modelid); } else SendClientMessage(playerid, -1, \"Kiléptél az objectek listájából\"); return 1; }return 1;}public OnFilterScriptExit(){ print(\"\\n--------------------------------------\"); print(\"Online Munka Készító FilterScript - by SnooP\"); print(\" Leállt\\n\" ); print(\" Minden eleme mentve\\n\" ); print(\"--------------------------------------\\n\"); return 1;}
Köszönöm, igyekeztem [/quote]Tökéletes leírás, kiemelést érdemelne. Ilyen leírás az igazi, szép munka!
new tomb[128]
new tomb[24], tombe[32]; new vegeredmeny = tomb[12]+tombe[24]; printf(\"Vegeredmeny: %d\", vegeredmeny);