Szerző Téma: Eldobható jegyzetek  (Megtekintve 1576 alkalommal)

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Eldobható jegyzetek
« Dátum: 2014. július 27. - 17:04:42 »
+6 Show voters
Sziasztok!
 
Igazából nem emlékszem, hogy régebben még inaktívságom elõtt publikáltam-e szkriptet a fórumra, de szerintem még nem :D Pedig már rég illet volna, hisz nem ma kezdtem el :)
Unalmamban készítettem egy rövid kis szkriptet. A lényege, hogy /jegyzet parancsal tudsz létrehozni egy kis üzenetet, amit el tudsz dobni. Ha eldobtad, más játékosok(vagy akár te is) a /megnez parancsal meg tudod lesni. Ott található 2 opció: Vagy visszarakod a földre, vagy eltünteted.
Készítõ: BackUP
Verzió: v0.1
Elkészítési idõ: 10perc + tesztelgetés + fórumozás + tesztelgetés alatti baromkodás :D
Egyelõre nem menti el szerver restartkor az eldobott jegyzeteket, de majd szerkesztem a témát, és lesz egy dinivel írt változat, hogy kezdõk ha szeretnék fel tudják használni, valamint egy MySQL r39-re épülõ változat, szimplán tanulás céljából. :)
PWN: http://www.solidfiles.com/d/5b35d39e3c/jegyzetek.pwn
AMX: http://www.solidfiles.com/d/5a0890d74a/jegyzetek.amx
Spoiler for forráskód:
Aki nem szeretné letölteni, annak ide is kiírom:
 
#if defined keszito
------------------------------------ [ KÉSZÍTETTE: BACKUP ] -------------------------------------
#endif
 
#include <a_samp>
#include <zcmd>
#define ALAPX 96542
#define maxjegyzet 100
#pragma tabsize 0
enum JegyzetInfok
{
Float:jX,
Float:jY,
Float:jZ,
Text3D:jLabel,
jText[400+1],
jCim[50+1]
};
new jInfo[maxjegyzet][JegyzetInfok];
// =========== DIALOG =========== //
#define eldobdia 7777
#define megnezdia 8888
#define tartalom 6666
// ============================== //
new Float:version = 0.1;
new EztNezi[MAX_PLAYERS];
new Cime[MAX_PLAYERS][50+1];
public OnFilterScriptInit() { printf(\"==== Jegyzet szkript betöltve!! v%.1f\",version); return 1;}
public OnFilterScriptExit() { for(new a; a < maxjegyzet; a++){Delete3DTextLabel(jInfo[a][jLabel]);}return 1;}
CMD:jegyzet(playerid, params[])
{
ShowPlayerDialog(playerid, eldobdia, DIALOG_STYLE_INPUT, \"Jegyzet\",\"Kérlek írd be, hogy mi lesz a címe! Max. 50 karakter\",\"Ok\",\"\");
return 1;
}
CMD:megnez(playerid, params[])
{
//new jid;
for(new jid; jid < MAX_PLAYERS; jid++)
{
    if(IsPlayerInRangeOfPoint(playerid,1.3,jInfo[jid][jX],jInfo[jid][jY],jInfo[jid][jZ]))
    {
        ShowPlayerDialog(playerid,megnezdia,DIALOG_STYLE_MSGBOX,jInfo[jid][jCim],jInfo[jid][jText], \"Eldob\",\"Kidob\");
        EztNezi[playerid] = jid;
    }
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
    case eldobdia:
    {
        if(!response) return 0;
        if(response)
        {
            if(strlen(inputtext) > 50) return ShowPlayerDialog(playerid, eldobdia, DIALOG_STYLE_INPUT, \"Jegyzet\",\"Kérlek írd be, hogy mi lesz a címe! Max. 50 karakter\",\"Ok\",\"\");
            ShowPlayerDialog(playerid, tartalom, DIALOG_STYLE_INPUT, \"Jegyzet\",\"Kérlek írd be, hogy mi legyen a tartalma Max. 400 karakter!\",\"Ok\",\"\");
      format(Cime[playerid],51,\"%s\",inputtext);
   }
}
case tartalom:
{
    if(strlen(inputtext) > 400) return ShowPlayerDialog(playerid, tartalom, DIALOG_STYLE_INPUT, \"Jegyzet\",\"Kérlek írd be, hogy mi legyen a tartalma Max. 400 karakter!\",\"Ok\",\"\");
   new jid;
   for(new i; i < maxjegyzet;i++)
   {
       if(jInfo[jX] == ALAPX) jid = i;
   }
   //if(jid == 0) return SendClientMessage(playerid,0xff0000AA,\"HIBA!! A szerver elérte a maximum eldobható jegyzetek számát!\");
   format(jInfo[jid][jText], 401, \"{ffffff}%s\", inputtext);
   format(jInfo[jid][jCim], 51, \"{ff0000}%s\", Cime[playerid]);
   GetPlayerPos(playerid,jInfo[jid][jX],jInfo[jid][jY],jInfo[jid][jZ]);
   SendClientMessage(playerid, -1, \"Eldobtál egy jegyzetet.\");
   jInfo[jid][jLabel] = Create3DTextLabel(\"Jegyzet\\nV\\nV\\nV\\nv\", 0xff0000AA, jInfo[jid][jX],jInfo[jid][jY],jInfo[jid][jZ], 5.0, 0, 1);
}
case megnezdia:
{
    if(!response)
    {
        SendClientMessage(playerid, -1, \"Kidobtad a jegyzetet a kukába.\");
        new d = EztNezi[playerid];
      Delete3DTextLabel(jInfo[d][jLabel]);
      jInfo[d][jX] = ALAPX;
                jInfo[d][jY] = ALAPX;
                jInfo[d][jZ] = ALAPX;
    } else if(response){
        SendClientMessage(playerid, -1, \"Visszaraktad a jegyzetet ahol volt.\");
    }
}
}
return 1;
}

 
 
Tesztelve, mûködik!
Nem tudom, hogy ilyen szkript lett e publikálva már a fórumon, ezt saját kezeimmel, és ujjaimmal írtam! Nem loptam, nem letöltöttem. Nyugodtan fel lehet használni, és nyugodtan módosítható.

Nem elérhető Hörry

  • 835
    • Profil megtekintése
Eldobható jegyzetek
« Válasz #1 Dátum: 2014. július 27. - 17:35:20 »
0 Show voters
Szép nekem tetszik ment a +! :)

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Eldobható jegyzetek
« Válasz #2 Dátum: 2014. július 27. - 17:36:15 »
0 Show voters
Köszönöm :)

Nem elérhető EntoX

  • 195
    • Profil megtekintése
Eldobható jegyzetek
« Válasz #3 Dátum: 2014. július 27. - 18:34:56 »
0 Show voters
Szép munka!

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Eldobható jegyzetek
« Válasz #4 Dátum: 2014. július 27. - 18:40:44 »
0 Show voters
Köszönöm, de tényleg csak unalomûzõnek készült :D

Nem elérhető Mate.

  • 223
  • Advertising Designer. Video Editor. Ex-Mapper.
    • Profil megtekintése
Eldobható jegyzetek
« Válasz #5 Dátum: 2014. július 27. - 23:16:14 »
0 Show voters
Szép! \"+\"

Eldobható jegyzetek
« Válasz #6 Dátum: 2014. július 29. - 23:02:10 »
0 Show voters
Nekem tetszik lehet, h felhasználom :)

Nem elérhető Rupert

  • 2301
    • Profil megtekintése
Eldobható jegyzetek
« Válasz #7 Dátum: 2014. július 29. - 23:05:17 »
0 Show voters
Szépnek szép, de miért nem ment? Az lenne az igazi. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal