Szerző Téma: [GM] Kalandozások - interaktív  (Megtekintve 2892 alkalommal)

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[GM] Kalandozások - interaktív
« Dátum: 2012. október 26. - 11:44:13 »
+2 Show voters
Helló!
Ezt a módot kb egy éve kezdtem el, céltalanul.
Ez a mód félkész, nincs idõm befejezni, szervert indítani (ott a másik projectem is...).
Nekem elég sok dolgom van ezen kívül is, úgy gondoltam hogy elérhetõvé teszem nektek, hátha tudtok valamit kihozni ebbõl.
Eléggé bonyolult, igazából írjátok le majd mit nem értetek, stb és azt leírom. Egy tesztküldetést mellékeltem.
Lényege: Kalandokat tudsz létrehozni, szinte akármilyen témában, és úgy alakíthatod ahogy szeretnéd. Gondolkodtató, izgalmas, stb.
Az lett volna a célja, hogy saját magad írányítsd a játékmenetet (te döntessz arról hogy a karakter melyik irányba sodródjon, a jóba, vagy a rosszba). Ez lenne az alapötlet, ami befejezetlen.
Igazából ennyi az, amit írni tudok róla, amit nem értetek, vagy kérdésetek van vele, komi.
Elég lefordítani a main.pwn-t!
Funkciók nagyrésze,Maga a játékmód:
[dload]
TARTALMAZ EGY RÉSZLETESEBB LEÍRÁST HOGY IS MÛKÖDIK
Mellékelt küldetés:
http://pastebin.com/Wn7gc5xP
U.I. A sztori ingame maker nincs kész, csak az alapját próbálgattam.
« Utoljára szerkesztve: 2012. október 26. - 22:46:07 írta ChuckNorris »

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
[GM] Kalandozások - interaktív
« Válasz #1 Dátum: 2012. október 26. - 12:56:48 »
0 Show voters
[mod]Kérlek töltsd fel code tag-ek közé is.[/mod]

Nem elérhető Dead

  • 2045
    • Profil megtekintése
[GM] Kalandozások - interaktív
« Válasz #2 Dátum: 2012. október 26. - 15:28:34 »
0 Show voters
#include <a_samp>
#include <dini>
new bool:update[MAX_PLAYERS] = true;
new kuldik;
#include \"functions.pwn\"
main(){}
 
new
KalandLista[4][] =
{
\"Segítség, hol vagyok?\",
\"Eltûnt a kocsim! \" ,
\"Az egy UFO volt?\",
\"Eredj utána, de gyorsan!\"
},
Kaland[768]
;
public OnGameModeInit()
{
SetGameModeText(\"Adventure\");
for(new i; i < sizeof(KalandLista); ++i)
{
strcat(Kaland, KalandLista);
strcat(Kaland, \"\\n\");
}
kuldik = sizeof KalandLista;
printf(\"Küldetések száma: %d\", kuldik);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
    Textdraw1[playerid] = TextDrawCreate(11.000000, 429.000000, FixGameString(\"Mód verzió: 1.203!\"));
TextDrawBackgroundColor(Textdraw1[playerid], 255);
TextDrawFont(Textdraw1[playerid], 1);
TextDrawLetterSize(Textdraw1[playerid], 0.219999, 1.100000);
TextDrawColor(Textdraw1[playerid], -16776961);
TextDrawSetOutline(Textdraw1[playerid], 0);
TextDrawSetProportional(Textdraw1[playerid], 1);
TextDrawSetShadow(Textdraw1[playerid], 1);
TextDrawUseBox(Textdraw1[playerid], 1);
TextDrawBoxColor(Textdraw1[playerid], 255);
TextDrawTextSize(Textdraw1[playerid], 676.000000, 83.000000);
    TextDrawShowForPlayer(playerid, Textdraw1[playerid]);
ShowPlayerDialog(playerid, 10000, DIALOG_STYLE_LIST, \"Válassz kalandot! :)\", Kaland, \"Mehet!\", \"\");
return 1;
}
public OnPlayerConnect(playerid)
{
    select[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
//ShowPlayerDialog(playerid,1010,2,\"Sztori kezelése\",\"Sztori létrehozás\",\"Oké\",\"\");
if (strcmp(\"/restart\", cmdtext, true) == 0)
{
StartKaland(playerid, GetKaland(playerid));
return 1;
}
if (strcmp(\"/d\", cmdtext, true) == 0)
{
new asd[30];
format(asd, sizeof asd, \"%d\", dialogkell[playerid]);
msg(playerid, asd);
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
 
public OnPlayerUpdate(playerid)
{
    if(update[playerid] == true)
{
        new
   fajl[64],
   cpIDstr[32],
   cpTEXT[64],
   rPOS[5][64],
   selectTEXT[256],
   cutselect[3][64],
   sel[64],
   tort_S[64],
   tort_F[512]
;
format(fajl, sizeof fajl, \"kalandok/%d.txt\", GetKaland(playerid));
format(cpIDstr, sizeof cpIDstr, \"range(%d)(%d)\", kuldiid[playerid]-1, select[playerid]);
format(cpTEXT, sizeof cpTEXT, \"%s\", dini_Get(fajl, cpIDstr));
split(dini_Get(fajl, cpIDstr), rPOS, \',\');
if(IsPlayerInRangeOfPoint(playerid, 3.00, floatstr(rPOS[0]), floatstr(rPOS[1]), floatstr(rPOS[2])))
{
    if(dialogkell[playerid] == false)
   {
       if(strval(rPOS[4]) == 0)
       {
           format(tort_S, sizeof tort_S, \"tortenet(%d)\", kuldiid[playerid]);
         format(tort_F, sizeof tort_F, \"%s\", dini_Get(fajl, tort_S));
         dialogkellU[playerid] = false;
                ShowPlayerDialog(playerid, kuldiid[playerid], 0, \"Történet\", tort_F, \"Oké\", \"\");
                update[playerid] = false;
      }
   }
   else
   {
       if(strval(rPOS[4]) == 1)
       {
         //dialogkell[playerid] = false;
          format(sel, sizeof sel, \"select(%d)\", kuldiid[playerid]);
         split(dini_Get(fajl, sel), cutselect, \',\');
          format(selectTEXT, sizeof selectTEXT, \"%s\\n%s\\n%s\", cutselect[0], cutselect[1], cutselect[2] );
          dialogkellU[playerid] = true;
          ShowPlayerDialog(playerid, kuldiid[playerid], 2, \"Válassz!\", selectTEXT, \"Oké\", \"\");
          update[playerid] = false;
      }
   }
}
}
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
#define kuldi 2020
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(response)
{
    switch(dialogid)
    {
        case 10000:
        {
            if(0 <= listitem < sizeof(KalandLista))
      {
         SetPVarInt(playerid, \"KalandID\", listitem);
         static szStr[128];
         if(!listitem)
         {
            format(szStr, sizeof(szStr), \"[iNFO] Kiválasztott kaland: %s\", KalandLista[listitem]);
            SendClientMessage(playerid, 0xFFFFFFFF, szStr);
            StartKaland(playerid, listitem);
         }
         else
            {
            format(szStr, sizeof(szStr), \"[iNFO] Kiválasztott kaland: %s\", KalandLista[listitem]);
            SendClientMessage(playerid, 0xFFFFFFFF, szStr);
            StartKaland(playerid, listitem);
             }
      }
        }
        /*
        case 1010:
        {
            if(response)
         {
            if(listitem==0) //Küldetés létrehozása
         {
             ShowPlayerDialog(playerid,1010+1,0,\"Sztori létrehozása\",\"Ez legyen a sztoridnak a pozíciója?\",\"Igen\",\"Nem\");
         }
      } else ShowPlayerDialog(playerid,1010,2,\"Sztori kezelése\",\"Sztori létrehozás\",\"Oké\",\"\");
        }
        case 1011: //Létrehozás
        {
            kuldik++;
            new
                Float:X,
                Float:Y,
                Float:Z,
                Float:A
      ;
      new kuldetesid[64];
            format(kuldetesid, sizeof kuldetesid, \"kalandok/%d.txt\", kuldik);
      dini_Create(kuldetesid);
      GetPlayerFacingAngle(playerid, A);
      GetPlayerPos(playerid, X, Y, Z);
      new f[64];
      format(f, sizeof f, \"%f,%f,%f,%f\", X, Y, Z, A);
            dini_Set(kuldetesid, \"spawnpos\", f);
            ShowPlayerDialog(playerid,1010+2,0,\"Sztori létrehozása\",\"Add meg a küldetésed címét:\",\"Oké\",\"\");
        }
   case 1012:
   {
       new kuldetesid[64];
       format(kuldetesid, sizeof kuldetesid, \"kalandok/%d.txt\", kuldik);
      dini_Set(kuldetesid, \"Cím\", inputtext);
      msg(playerid, \"/k <szöveg> <CPKell-e> - így tudsz létrehozni szöveget az adott helyen\");
   }*/
}
}
if(dialogid == kuldiid[playerid] && response)
{
    if(dialogkellU[playerid] == true)
    {
    switch(listitem)
   {
        case 0:
        {
            select[playerid]=0;
         NextKuldi(playerid);
         msg(playerid, \"NextKüldi elküdve0\");
        }
      case 1:
      {
          select[playerid]=1;
          NextKuldi(playerid);
          msg(playerid, \"NextKüldi elküdve1\");
      }
      case 2:
      {
          select[playerid]=2;
          NextKuldi(playerid);
          msg(playerid, \"NextKüldi elküdve2\");
      }
   }
}
else
{
    select[playerid] = 0;
    NextKuldi(playerid);
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}

 tessékittvanneked :D csak kimásolod pasterõl, aztkész:D
ám, jó  lenne ebbõl egy server :D
« Utoljára szerkesztve: 2012. október 26. - 15:45:36 írta zeteni »

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
[GM] Kalandozások - interaktív
« Válasz #3 Dátum: 2012. október 26. - 15:49:29 »
0 Show voters
Nem nekem kell, hanem a szabályzatnak... De ha már ennyit \"fáradtál\" vele, beleírtam + még az elõtagot is kiraktam :DD

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[GM] Kalandozások - interaktív
« Válasz #4 Dátum: 2012. október 26. - 18:17:46 »
0 Show voters
Idézetet írta: zeteni date=1351259369\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"29052\" data-ipsquote-contentclass=\"forums_Topic
Nem nekem kell, hanem a szabályzatnak... De ha már ennyit \"fáradtál\" vele, beleírtam + még az elõtagot is kiraktam :DD
 
Frissítve, a functions.pwn-t is beraktam code tagek közé, hisz az is kell hogy fusson a mód.

Nem elérhető Amf

  • 1459
    • Profil megtekintése
[GM] Kalandozások - interaktív
« Válasz #5 Dátum: 2012. október 26. - 21:31:17 »
0 Show voters
Ma nem, de holnap tesztelem, szépnek tûnik! Grat. :)

Nem elérhető Zharko

  • 1955
  • Future House <3
    • Profil megtekintése
[GM] Kalandozások - interaktív
« Válasz #6 Dátum: 2012. október 26. - 23:33:23 »
0 Show voters
Hali. Bocsi, Chuck, beraknád a Functions.pwn-t is a kódtárba, az is elengedhetetlen a játékmód futtatásához. Köszi elõre is, jóccak!
 
Idézetet írta: AmF date=1351279877\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"29052\" data-ipsquote-contentclass=\"forums_Topic
Ma nem, de holnap tesztelem, szépnek tûnik! Grat. :)
 
Sok sikert! Egyébként köszi :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal