GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: idk28 - 2016. Augusztus 15. - 19:47:10

Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 15. - 19:47:10
Sziasztok. Egy kérdésem lenne, hogy lehet megcsinálni, hogy szerverre [ nem mysql ] lehessen NPC t létrehozni, úgy hogy resi után ott maradjon?
Cím: NPC hozzáadás
Írta: sza23 - 2016. Augusztus 16. - 20:32:19
Magyarúl:
https://sampforum.hu/index.php?topic=9872.0
Angolul:
http://forum.sa-mp.com/showthread.php?t=95034
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 17. - 03:32:22
ha csak sima álló NPC-t akarsz akkor az könnyedén megoldható
ha mozgót az már durcább
melyik kéne?
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 17. - 09:04:16
sima álló NPC kéne :D
Cím: NPC hozzáadás
Írta: Flash - 2016. Augusztus 17. - 09:58:26
Idézetet írta: idk28 date=1471417456\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62667\" data-ipsquote-contentclass=\"forums_Topic
sima álló NPC kéne :D
 
Akkor ajánlom az Actor-t ami slotot se foglal és tudsz neki adni egy állandó animációt is. Ha komolyabb szándékaid vannak vele akkor tényleg NPC kell és akkor kövesd azokat a leírásaokat amit sza23 linkelt
Actorokról:
http://forum.sa-mp.com/showthread.php?p=3445806
Vagy a jó öreg wikipédia: https://wiki.sa-mp.com/wiki/CreateActor
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 17. - 11:25:50
hát ez nem müködik :/
Ha esetleg valakinen annyi ideje van hogy egy példát irjon :/
[bocsánat, nem tudom: ezáltal senkit nem akarok csicskáztatni]
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 17. - 15:25:35
Ez jó lesz? -> Ez
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 17. - 15:51:08
6 error van benne :(
Cím: NPC hozzáadás
Írta: blackdog476 - 2016. Augusztus 17. - 19:32:03
Idézetet írta: idk28 date=1471441868\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62667\" data-ipsquote-contentclass=\"forums_Topic
6 error van benne :(
 
és most mire vársz?
írd le az errorokat, vagy akármit, amin elindulhatunk..
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 17. - 19:37:32

#include <a_samp>
#include <a_actor>
#include <dini>
#define MAX_ACTOR 50
enum Actorenum
{
aID,
Float:aX,
Float:aY,
Float:aZ,
Float:aRot,
aSkin,
aActor,
aIDLefoglalva
}
new ActorInfo[MAX_ACTOR][Actorenum];
stock ActorBetoltes()
{
new filenev[64];
for( new i=0; i < MAX_ACTOR; i++ )
{
format(filenev,sizeof(filenev),\"NPC_K/%d.ini\",i);
if(dini_Exists(filenev) )
{
   ActorInfo[aID] = i;
   ActorInfo[aX] = dini_Float(filenev, \"X\" );
   ActorInfo[aY] = dini_Float(filenev, \"Y\" );
   ActorInfo[aZ] = dini_Float(filenev, \"Z\" );
   ActorInfo[aRot] = dini_Int(filenev,\"Rot\");
   ActorInfo[aSkin] = dini_Int(filenev,\"Skin\");
   ActorInfo[aActor] = CreateActor(ActorInfo[aSkin], ActorInfo[aX], ActorInfo[aY], ActorInfo[aZ], ActorInfo[aRot]);
   ActorInfo[aIDLefoglalva] = 1;
}
}
printf(\"Actorok betöltve!\");
}
stock ActorTorles(playerid,ID)
{
if(ActorInfo[iD][aIDLefoglalva] == 0)
{
SendClientMessage(playerid,-1,\"Nincs ilyen actor!\");
return 1;
}
new filenev[64];
format(filenev,sizeof(filenev),\"NPC_K/%d.ini\",ID);
dini_Remove(filenev);
ActorInfo[iD][aID] = -1;
ActorInfo[iD][aX] = 0;
ActorInfo[iD][aY] = 0;
ActorInfo[iD][aZ] = 0;
ActorInfo[iD][aRot] = 0;
ActorInfo[iD][aSkin] = 0;
DestroyActor(ActorInfo[iD][aActor]);
ActorInfo[iD][aIDLefoglalva] = 0;
SendClientMessage(playerid,-1,\"Sikeresen törölted az Actort!\");
return 1;
}
stock ActorLetrehozas(playerid,Skin)
{
new id = -1;
for(new i=0;i<MAX_ACTOR;i++)
{
if(ActorInfo[aIDLefoglalva] == 0)
{
   id = i;
   break;
}
}
if(id == -1)
{   
SendClientMessage(playerid,-1,\"Nem tudsz többet lerakni!\");
return 1;
}
new Float:X,Float:Y,Float:Z,Float:R,filenev[64];
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,R);
format(filenev,sizeof(filenev),\"NPC_K/%d.ini\",id);
if(!dini_Exists(filenev))
{
dini_Create(filenev);
dini_FloatSet(filenev, \"X\", X);
dini_FloatSet(filenev, \"Y\", Y);
dini_FloatSet(filenev, \"Z\", Z);
dini_FloatSet(filenev, \"Rot\", R);
dini_IntSet(filenev, \"Skin\", Skin);
ActorInfo[id][aID] = id;
ActorInfo[id][aX] = X;
ActorInfo[id][aY] = Y;
ActorInfo[id][aZ] = Z;
ActorInfo[id][aRot] = R;
ActorInfo[id][aSkin] = Skin;
ActorInfo[id][aActor] = CreateActor(ActorInfo[id][aSkin], ActorInfo[id][aX], ActorInfo[id][aY], ActorInfo[id][aZ], ActorInfo[id][aRot]);
ActorInfo[id][aIDLefoglalva] = 1;
SendClientMessage(playerid,-1,\"Actort Sikeresen létrehoztad!\");
SetPlayerPos(playerid,X,Y+2,Z);
}
return 1;
}
public OnFilterScriptInit()
{
ActorBetoltes();
return 1;
}
public OnFilterScriptExit(){return 1;}

 
Tessék.
Annyi feladatod van hogy írni két parancsot
1 ikkel törlöd
a másikkal lerakod
 

ActorLetrehozas(playerid,SKINID);
ActorTorles(playerid,ACTORID);

 
ezt a két függvényt kell használd csak ezzel kapcsolatban szerintem
MŰKÖDIK!!!!
Csak csinálj egy NPC_K nevű mappát a scriptfilesbe.
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 17. - 20:05:50
az inc-et le kell töltsem? :D
és mit ajánlasz filterscript vagy modba irjam?
 UI. NAGYON KÖSZÖNÖM  <3
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 17. - 22:27:03
hát jah.
módba írd.
nincs mit azért csináltam
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 18. - 09:47:54
Egy hülye kérdés.. Netet össze vissza jártam de sehol semmi...
Includet hogy szerzem be?
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 18. - 10:29:31
a_samp megkell legyen alapból
a_actor megvan úgyszintén
a dini incet kell csak szerintem megkeresd
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 18. - 19:24:17
Szia modba így ahogy van beírtam, includeok megvannak.
ActorLetrehozas(playerid,SKINID);
ActorTorles(playerid,ACTORID);
ezt nem tudom hová tenni. nem raktam be gondolom azért nem müködik
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 18. - 19:33:24
Kezdjük elöről akkor.
Van az a script amit kiraktam.
Na ahhoz már csak annyi feladatod van hogy meg írj 2 parancsot amivel törölni akarod meg amivel lerakod. ennyi.
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 18. - 19:47:46
:wall:
error 010: invalid function or declaration
 
   if(strcmp(cmd, \"/actorletrehoz\", true) == 0 || strcmp(cmd, \"/actorlétrehoz\", true) == 0)
{
stock ActorLetrehozas(playerid,Skin)
{
        new id = -1;
        for(new i=0;i<MAX_ACTOR;i++)
        {
                if(ActorInfo[aIDLefoglalva] == 0)
                {
                        id = i;
                        break;
                }
        }
        if(id == -1)
        {
                SendClientMessage(playerid,-1,\"Nem tudsz többet lerakni!\");
                return 1;
        }
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 18. - 20:01:52
használ a módod sscanfot?
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 18. - 20:17:41
Igen használ
Cím: NPC hozzáadás
Írta: blackdog476 - 2016. Augusztus 18. - 21:27:47
Idézetet írta: idk28 date=1471542466\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62667\" data-ipsquote-contentclass=\"forums_Topic
:wall:
error 010: invalid function or declaration
 
   if(strcmp(cmd, \"/actorletrehoz\", true) == 0 || strcmp(cmd, \"/actorlétrehoz\", true) == 0)
{
stock ActorLetrehozas(playerid,Skin)
{
        new id = -1;
        for(new i=0;i<MAX_ACTOR;i++)
        {
                if(ActorInfo[aIDLefoglalva] == 0)
                {
                        id = i;
                        break;
                }
        }
        if(id == -1)
        {
                SendClientMessage(playerid,-1,\"Nem tudsz többet lerakni!\");
                return 1;
        }

 

figyelj, ezt te halál komolyan gondoltad?
a stockot nem kell semmi alá berakni, full külön kell...
egy parancsot kell csinálnod, amiben összvissz EGYETLEN EGY sor van, mégpedig az ActorLetrehozas.
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 18. - 21:52:38

CMD:actor(playerid, params[])
{
new param[32];
if(sscanf(params, \"s[32]{}\", param)) return SendClientMessage(playerid,-1, \"/actor [letrehoz / torol]\");
if(egyezik(param, \"letrehoz\"))
{
    new skin;
if(sscanf(params, \"{s[32]}d\", skin)) return SendClientMessage(playerid,-1, \"/actor letrehoz [skinID]\");
if(skin < 0 || skin > 311) return SendClientMessage(playerid,-1,\"0-311 között\");
ActorLetrehoz(playerid,skin);
return 1;
}
else if(egyezik(param, \"torol\"))
{
    new id;
if(sscanf(params, \"{s[32]}d\", id)) return SendClientMessage(playerid,-1,\"/actor torol [ActorID]\");
ActorTorles(playerid,id);
}
return 1;
}

 
remélem van benne ,,egyezik\" stock és ZCMD-t használsz...
Cím: NPC hozzáadás
Írta: blackdog476 - 2016. Augusztus 20. - 00:10:27



Idézetet írta: Kyosuke_Hiroshi date=1471549958\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"62667\" data-ipsquote-contentclass=\"forums_Topic
remélem van benne ,,egyezik\" stock és ZCMD-t használsz...
 
Az előző példát nézve kétlem
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 20. - 11:57:53
az actor nem igazán müködik. lefut rendesen..
Spoilert meg nem tudom mengyinit blackdog
Cím: NPC hozzáadás
Írta: Kyosuke_Hiroshi - 2016. Augusztus 20. - 12:21:18
h-h nem működik?
Cím: NPC hozzáadás
Írta: idk28 - 2016. Augusztus 21. - 08:01:28
minden fájl megvan, mindent beraktam a modba amit irtál.
lefut rendesen
de ha /actorletrehoz vagy mi a parancsa, nem észleli.. RCON-ban pedig bentvagyok
Cím: NPC hozzáadás
Írta: blackdog476 - 2016. Augusztus 21. - 10:17:30
vannak az onplayercommandtexten belul parancsok?
mert ha igen a zcmd nem fog menni