Üdv, fórumózó(k)!
Mint írtam a \"Modern Házrendszer\" témába, hogy készíteni fogok egy \"Házépítés\" rendszert, hát ezt meg is valósítottam.
Ez még csak a 0.1 verzió, ugyanis csak 10 falat lehet még lerakni, de ugyan úgy menti a falakat is a \"Falak.txt\" -be.
A \"Falak.txt\"-t nem kell létrehozni!! Magától létrehozza.
A falakat lehet bõvíteni... Pár nap múlva kb. kedden már több fal lesz és lesznek ablak,ajtó készletek a házépítéshez.
Elkészítési idõ:
16 perc (Evéssel,ivással,teszteléssel :D)
Teszt:
Megvolt, mûködik.Használat:
/hazepites
#include <a_samp>
#include <zcmd>
#include <streamer>
#include <foreach>
#include <sscanf2>
#include <YSI/y_ini>
#pragma tabsize 0
new Object;
new oModel;
new FalObjektek[][]={ // Jelenleg 10 van, de lehet bõvíteni...
\"Fal\\n\",
\"Tapéta féle fal\\n\",
\"Kõfal\\n\",
\"Szikla színû fal\\n\",
\"Csupasz fehér fal\\n\",
\"Fal\\n\",
\"Csupasz krém színû fal\\n\",
\"Padló\\n\",
\"Fal\\n\",
\"Kõfal\"
};
#define OBJECT_FILE_NAME \"Falak.txt\"
#define MENU 1000
#define NEXT 1001
public OnFilterScriptInit()
{
print(\"\\n--------------------------------------\");
print(\" Házépítés sikeresen betöltve \");
print(\"--------------------------------------\\n\");
AddObjectFromFile(OBJECT_FILE_NAME);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == MENU)
{
if(!response)
{
return 1;
}
switch(listitem)
{
case 0:
{
new FalakString[1600];
format(FalakString,sizeof FalakString,\"%s%s%s%s%s%s%s%s%s%s\",FalObjektek[0],FalObjektek[1],FalObjektek[2],FalObjektek[3],FalObjektek[4],FalObjektek[5],FalObjektek[6],FalObjektek[7],FalObjektek[8],FalObjektek[9]);
ShowPlayerDialog(playerid, NEXT, DIALOG_STYLE_LIST,\"{FFFF00}* FALAK\",FalakString,\"Ez kell\",\"Kilépés\");
}
}
return 1;
}
if(dialogid == NEXT)
{
if(!response)
{
return 1;
}
switch(listitem)
{
case 0:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19353;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19353, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 1:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19354;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19354, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 2:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19355;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19355, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 3:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19356;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19356, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 4:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19357;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19357, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 5:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19358;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19358, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 6:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19359;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19359, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 7:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19360;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19360, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 8:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19361;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19361, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
case 9:
{
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ;
GetPlayerPos(playerid, OX, OY, OZ);
oModel = 19362;
ORX = 0.0;
ORY = 0.0;
ORZ = 0.0;
Object = CreateObject(19362, OX+2, OY, OZ, ORX, ORY, ORZ);
EditObject(playerid, Object);
}
}
}
return 1;
}
stock AddObjectFromFile(DFileName[])
{
if(!fexist(DFileName)) return 0;
new File:ObjectFile, Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT, oTotal, Line[128];
ObjectFile = fopen(DFileName, io_read);
while(fread(ObjectFile, Line))
{
if(Line[0] == \'/\' || isnull(Line)) continue;
unformat(Line, \"ffffffiii\", OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT, oModel);
CreateDynamicObject(oModel, Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT, -1, 200.0);
oTotal++;
}
fclose(ObjectFile);
return oTotal;
}
stock AddObjectToFile(DFileName[], Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT)
{
new File:ObjectFile, Line[128];
format(Line, sizeof(Line), \"%f %f %f %f %f %f %i %i %i\\r\\n\", OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT, oModel);
ObjectFile = fopen(DFileName, io_append);
fwrite(ObjectFile, Line);
fclose(ObjectFile);
return 1;
}
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
new Float:oldX, Float:oldY, Float:oldZ,
Float:oldRotX, Float:oldRotY, Float:oldRotZ;
GetObjectPos(objectid, oldX, oldY, oldZ);
GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
new Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT;
if(!playerobject)
{
if(!IsValidObject(objectid)) return;
MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
}
if(response == EDIT_RESPONSE_FINAL)
{
OVW = GetPlayerVirtualWorld(playerid);
OINT = GetPlayerInterior(playerid);
GetObjectPos(objectid, OX, OY, OZ);
GetObjectRot(objectid, ORX, ORY, ORZ);
AddObjectToFile(OBJECT_FILE_NAME, OX, OY, OZ, ORX, ORY, ORZ, OVW, OINT);
SendClientMessage(playerid, -1, \"{33AA33}Fal mentve.\");
CreateDynamicObject(oModel, Float:OX, Float:OY, Float:OZ, Float:ORX, Float:ORY, Float:ORZ, OVW, OINT, -1, 200.0);
DestroyObject(Object);
}
if(response == EDIT_RESPONSE_CANCEL)
{
if(!playerobject)
{
SetObjectPos(objectid, oldX, oldY, oldZ);
SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
}
else
{
SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ);
SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ);
}
}
}
CMD:hazepites(playerid, params[])
{
ShowPlayerDialog(playerid, MENU, DIALOG_STYLE_LIST, \"{FFFF00}* HÁZÉPÍTÉS\", \"Falak (Össz. 10)\", \"Választ\", \"Kilépés\");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
Képek:
Menü:

Falak menü:

Mozgatás:
U.I: Jó szórakozást!
jónak néz ki így a képet alapján :) ment a +
de ez nekem nincs meg :( #include <YSI/y_ini> kellene minél gyorsabban :) :)
Ezt várom már :)
[hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_cpy08g9ox6.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_w1hrnti2kp.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_475ni89hv0.jpg[/hs]
itt mindneki ilyen pro vagy megállt az órátok
16 perc[/quote]
ne vicceljünk
egyébként ismerõs nekem a script de nem akarok vádaskodni bizonyíték nélkül, ha te csináltad szép
itt mindneki ilyen pro vagy megállt az órátok
16 perc
ne vicceljünk
egyébként ismerõs nekem a script de nem akarok vádaskodni bizonyíték nélkül, ha te csináltad szép
[/quote]
Ja, see feelingû :D õk csinálták ilyen módon és igazat megvallva 2 ember aligha gondolkozik ugyan azon a módon.
(fõleg, hogy a másik témába slot-os mentést említette, pont ahogy Seen van. :) )
De csak szólok, ha jól tudom már a Seen is más módon van mert mikor én kipróbáltam találtam benne hibát és aszem ez eljutott hozzájuk is :D ( a mód méret 1.5x-re nõtt, ez csak akkor ha házrendszerrel egybeírod )
Ezt várom már :)
[hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_cpy08g9ox6.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_w1hrnti2kp.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_475ni89hv0.jpg[/hs]
ezt hol láttad? mikor lesz? :DD
Én azt reméltem hogy majd Te megírod. :D (verseny társ)
itt mindneki ilyen pro vagy megállt az órátok
16 perc
ne vicceljünk
egyébként ismerõs nekem a script de nem akarok vádaskodni bizonyíték nélkül, ha te csináltad szép
[/quote]
egyébként ismerõs nekem a script de nem akarok vádaskodni bizonyíték nélkül\' date=\' ha te csináltad szép[/quote\']
Az elõzõ bútorrendszerbõl csináltam.. de a bútorrendszernél leírtam,honnan van az alap script aminek a készítõjét sem tom :D
Csak ott volt a gépemen és megcsináltam rendesre :D
Dupla hozzászólás automatikusan összefûzve. ( 2012. december 30. - 21:36:04 )
verseny társ? o.o ???
Dupla hozzászólás automatikusan összefûzve. ( 2012. december 30. - 21:41:56 )
Én azt reméltem hogy majd Te megírod. :D (verseny társ)
[/quote]
Meg is írom de valahonnan szerezhetted a képet :DD
[/quote]
Ez már jó egy v2-es verzióhoz :)
Amúgy a képet szereztem, de az alapján én már megcsináltam :)
Jó lett!
Kösz :D
V2? nincs korán még az? :DD
Sok minden terveztem bele..
Jó lett! :thumbsup:
Tetszik, de tényleg, nagyon. :D
Szep mar varom az uj updateket.+!
Nagyon szép végre ami még nincs a fórumon :D de mostmár van :) ;)
Ezt várom már :)
[hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_cpy08g9ox6.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_w1hrnti2kp.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_475ni89hv0.jpg[/hs]
Ilyet már lehet csinálni. :D
Szia!
Szép, felhasználom, ment a + :D
A te néhány nappal ezelõtt felrakott bútorrendszeredhez hozzáadtam ezt is, egybe sokkal jobb szerintem.
Letölthetõ: http://www.solidfiles.com/d/a8e9f8569e/ pár perc volt, magamnak raktam egybe a szerómra, de azért ide kirakom nektek, hogy ne kelljen egyberaknotok - habár pár perc alatt megvan. Mûködik.
Parancsok
/haz vagy /hazepites - Megnyitod az ablakot, ahol már egyebe vannak a bútorok és a falak. (butor helyett)
/object - Ha már objectet szeretnétek lerakni. (fbutor helyett)
Remélem nem baj, hogy egyberaktam :D Használjátok egészséggel, és még egyszer köszi hasznos :D
Nekem, tetszik nagyon szép lett ment a +!
Egyébként, megtaníthatnál ilyet scriptelni ha nem gond :D
Nálam kifagy tõle a szerver! Nem tudjátok miért? :\'( :\'( :\'(
Mert a módod nem ZCMD-s vagy keverednek a dialog id-k.
És ha a dialog id meg oldható attól aza gond fenn állhogy Nem ZCMDS a módom?
átírod a házépítés parancsát olyan feldolgozóval,amilyen a modod.
Error:
---------------------------------------------(1047) : error 017: undefined symbol \"params\"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Sor:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/haz\", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, \"{00FF00}Házépítés\", \"{FF0000}Kanapék\\n{FFA600}Ágyak\\n{33AA33}Asztalok\\n{FFFF99}TVk\\n{008ACF}PCk\\n{DDDDDD}WCk\\n{00FF00}Kádak\\n{FF00FF}Konyhai bútorok\\n{00FFFF}Egyéb\\n{FFFF00}Hifik\\n{FFFFFF}Falak\", \"Választ\", \"Kilépés\");
return 1;
}
if (strcmp(\"/hazepit\", cmdtext, true, 10) == 0)
{
ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, \"{00FF00}Házépítés\", \"{FF0000}Kanapék\\n{FFA600}Ágyak\\n{33AA33}Asztalok\\n{FFFF99}TVk\\n{008ACF}PCk\\n{DDDDDD}WCk\\n{00FF00}Kádak\\n{FF00FF}Konyhai bútorok\\n{00FFFF}Egyéb\\n{FFFF00}Hifik\\n{FFFFFF}Falak\", \"Választ\", \"Kilépés\");
return 1;
}
Ha ez van a FS-ben akkor is ki fagy a szerver miért?
Nem rossz, de szerintem nem fogom használni :D (Csak, hogy ne minden komment ugyanaz legyen :D)
Ezt várom már :)
[hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_cpy08g9ox6.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_w1hrnti2kp.jpg[/hs] [hs width=300 height=200]http://www.kephost.com/images4/2012/12/30/a1_2012_12_30_475ni89hv0.jpg[/hs]
Ilyet már lehet csinálni. :D
[/quote]
Még szép, hogy vannak már ilyenek, 0.3e elejétõl fogva bent vannak, anno Pacificen a házak 90% ezekkel volt megcsinálva, csak bezártuk az ajtókat, és így tádá, exterioros lakóház, ami sokkal RP-sebb mint a többi. De mi voltunk az egyetlenek, akik minden újítást fel is használtak :D (Bocs a kis nosztalgiáért, de nem tudom elfelejteni Pacit :( )
Error: