Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-02-19, 16:27


B!4CK

Never give UP!






Wiek: 32
Na forum: 5809 dni
Posty: 1047
Nick w MP: John

Piwa: 1891

Respekt: 124,2
Respekt: 124,2

Cze?? podobno mo?na zrobi? dynamiczny system obiekt?w.

Chcia?bym go zrobi? ten skrypt ale nie wiem czy by?o by mo?na u?y? tego kodu :

Kod:

CMD:abrama(playerid, cmdtext[])
{
if(!ToAdminLevel(playerid,5)) return 0;
new tmp[64],idx;
tmp = strtok(cmdtext, idx);
if(isnull(tmp))
{
GuiInfo(playerid,""BIALY"U?yj: "ADMIN"/abrama (opcja)\n1 - stw?rz bram?\n2 - lista bram\n3 - usu? bram?\n4 - teleportuj...\n5 - anuluj tworzenie");
return 1;
}
new opcja = strval(tmp);
if(opcja==1)
{
if(BramaTworzenie==false&&BramaPkt[playerid]==0)
{
GuiInfo(playerid,""ADMIN"Aktualnie kto? u?ywa ju? ten panel, poczekaj!");
return 1;
}
switch(BramaPkt[playerid])
{
case 0:
{
dShowPlayerDialog(playerid,230,DIALOG_STYLE_MSGBOX,""MAPA"Brama [1/5]",""ADMIN"Czy to ma by? miejsce stania bramy?","Tak","Nie");
return 1;
}
case 1:
{
dShowPlayerDialog(playerid,231,DIALOG_STYLE_INPUT,""MAPA"Brama [2/5]",""ADMIN"Podaj id obiektu bramy:\nPrzyk?adowe obiekty:\nDrzwi: 977, 1566, 1495, 1496, 1497, 1498, 1506, 1533, 1535, 1536, 1557, 1569, 1567, 2930 (kraty)\nBramy: 2933, 971, 975, 980, 985, 988, 989, 2990 (wi?zienna), du?e:\n10184, 10246, 11327, 11360, 16773, 8378","Dalej","");
return 1;
}
case 2:
{
tmp = strtok(cmdtext, idx);
if(isnull(tmp))
{
GuiInfo(playerid,""BIALY"U?yj: "ADMIN"/abrama 1 (nr) (warto??)\n1 - pos x | 2 - pos y | 3 - pos z | 4 - rot x | 5 - rot y | 6 - rot z\n7 - kolejny krok");
return 1;
}
new numer = strval(tmp);
tmp = strtok(cmdtext, idx);
new Float:wartosc = floatstr(tmp);
if(numer==1)
{
new nr=BramaID[playerid];
BramaInfo[nr][bPosX]+=wartosc;
SetObjectPos(Brama[nr],BramaInfo[nr][bPosX],BramaInfo[nr][bPosY],BramaInfo[nr][bPosZ]);
return 1;
}
else if(numer==2)
{
new nr=BramaID[playerid];
BramaInfo[nr][bPosY]+=wartosc;
SetObjectPos(Brama[nr],BramaInfo[nr][bPosX],BramaInfo[nr][bPosY],BramaInfo[nr][bPosZ]);
return 1;
}
else if(numer==3)
{
new nr=BramaID[playerid];
BramaInfo[nr][bPosZ]+=wartosc;
SetObjectPos(Brama[nr],BramaInfo[nr][bPosX],BramaInfo[nr][bPosY],BramaInfo[nr][bPosZ]);
return 1;
}
else if(numer==4)
{
new nr=BramaID[playerid];
BramaInfo[nr][bRotX]+=wartosc;
SetObjectRot(Brama[nr],BramaInfo[nr][bRotX],BramaInfo[nr][bRotY],BramaInfo[nr][bRotZ]);
return 1;
}
else if(numer==5)
{
new nr=BramaID[playerid];
BramaInfo[nr][bRotY]+=wartosc;
SetObjectRot(Brama[nr],BramaInfo[nr][bRotX],BramaInfo[nr][bRotY],BramaInfo[nr][bRotZ]);
return 1;
}
else if(numer==6)
{
new nr=BramaID[playerid];
BramaInfo[nr][bRotZ]+=wartosc;
SetObjectRot(Brama[nr],BramaInfo[nr][bRotX],BramaInfo[nr][bRotY],BramaInfo[nr][bRotZ]);
return 1;
}
else if(numer==7)
{
BramaPkt[playerid]=3;
GuiInfo(playerid,""ADMIN"Pozycja bramy ustalona!\nPrzejd? do kolejnego kroku!");
return 1;
}
}
case 3:
{
dShowPlayerDialog(playerid,232,DIALOG_STYLE_LIST,""MAPA"Brama [4/5]",""ADMIN"G?ra/D??\n"ADMIN"Obr?t o 90 stopni","Dalej","");
return 1;
}
case 4:
{
dShowPlayerDialog(playerid,233,DIALOG_STYLE_LIST,""MAPA"Brama [5/5]",""ADMIN"Frakcja\n"ADMIN"Biznes\n"ADMIN"Dom","Dalej","");
return 1;
}
case 5:
{
new nr=BramaID[playerid];
BramaInfo[nr][bAktywny]=true;
BramaStatus[nr]=true;
ZapiszBrame(nr);
GuiInfo(playerid,""ADMIN"Brama utworzona poprawnie!");
BramaTworzenie=true;
BramaPkt[playerid]=0;
BramaID[playerid]=9999;
return 1;
}
}
return 1;
}
else if(opcja==2)
{
format(String,sizeof(String),"*** Istniej?ce bramy [MAX %d]:",LIMIT_BRAM);
SendClientMessage(playerid,KOLOR_ADMIN,String);
for(new nr = 0; nr < LIMIT_BRAM; nr++)
{
if(BramaInfo[nr][bAktywny]==true)
{
format(String,sizeof(String),"*** [%d]",nr);
SendClientMessage(playerid,KOLOR_ADMIN,String);
}
}
return 1;
}
else if(opcja==3)
{
tmp = strtok(cmdtext, idx);
if(isnull(tmp))
{
GuiInfo(playerid,""BIALY"U?yj: "ADMIN"/abrama 3 (id bramy)");
return 1;
}
new numer = strval(tmp);
if(BramaInfo[numer][bAktywny]==true)
{
BramaInfo[numer][bAktywny]=false;
DestroyObject(Brama[numer]);
ZapiszBrame(numer);
GuiInfo(playerid,""ADMIN"Brama zosta?a usuni?ta!");
return 1;
}
else
{
GuiInfo(playerid,""ADMIN"Nie poprawne id bramy!");
}
return 1;
}
else if(opcja==4)
{
tmp = strtok(cmdtext, idx);
if(isnull(tmp))
{
GuiInfo(playerid,""BIALY"U?yj: "ADMIN"/abrama 4 (id bramy)");
return 1;
}
new nr = strval(tmp);
if(BramaInfo[nr][bAktywny]==true)
{
SetPlayerPos(playerid,BramaInfo[nr][bPosX]+1,BramaInfo[nr][bPosY]+2,BramaInfo[nr][bPosZ]);
GuiInfo(playerid,""ADMIN"Teleportowa?e? si? do bramy!");
return 1;
}
else
{
GuiInfo(playerid,""ADMIN"Nie poprawne id bramy!");
}
return 1;
}
else if(opcja==5)
{
if(BramaTworzenie==false&&BramaPkt[playerid]==0)
{
GuiInfo(playerid,""ADMIN"Nie u?ywasz panelu tworzenia w tej chwili!");
return 1;
}
if(BramaTworzenie==true)
{
GuiInfo(playerid,""ADMIN"Mo?na u?ywa? panelu, poniewa? nie rozpocz?to ?adnej pracy!");
return 1;
}
GuiInfo(playerid,""ADMIN"Praca w panelu zosta?a anulowana!");
if(BramaPkt[playerid]>=1) DestroyObject(Brama[BramaID[playerid]]);
BramaTworzenie=true;
BramaPkt[playerid]=0;
BramaID[playerid]=9999;
return 1;
}
return 1;
}


Tutaj reszta :


Kod:

//system bram

enum bramaInfo
{
bool:bAktywny,
bObiekt,
bTyp,
bTypID,
bOtwieranie,
Float:bPosX,Float:bPosY,Float:bPosZ,
Float:bRotX,Float:bRotY,Float:bRotZ,
};

new BramaInfo[LIMIT_BRAM][bramaInfo],
Brama[LIMIT_BRAM],bool:BramaStatus[LIMIT_BRAM]=true,
bool:BramaTworzenie=true,
BramaID[Max_Players],BramaPkt[Max_Players];



Wiem ,?e to si? robi podobnie ,ale jak zrobi? to dok?adnie??
Prosz? o dobre wyja?nienie

Podpis
Cześć
! :)


Projekt, który poruszy scenę platformy SA:MP!
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-19, 17:03


karol170396







Wiek: 33
Na forum: 5643 dni
Posty: 580
Nick w MP: Journey

Piwa: 1520

Respekt: -126,9

Ostrzeżeń: 100%
Widz?, ?e m?j pomys? na system obiekt?w szybko wyszed? na jaw. Nie ma to jak poinformowanie jakiej? papli :D
Tak mo?na u?y? tego kodu, jednak?e nie polecam :)

Podpis
"MłoteK" napisał/a:


Zając, idź kicać gdzie indziej, może w teletubisiach się miejsca zwolnią.
"zajacp1" napisał/a:

Wiele dzieci, które mi zazdroszczą, że mi się powodzi crashują mi serwer
Królik, Ty nigdy nie dorośniesz.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-19, 17:10


B!4CK

Never give UP!






Wiek: 32
Na forum: 5809 dni
Posty: 1047
Nick w MP: John

Piwa: 1891

Respekt: 124,2
Respekt: 124,2

up@ Akurat sam wpad?em na ten pomys? w trakcie robienia bram :)
A jaki kod lub spos?b polecasz ?Aby naj?atwiej i szybko zrobi? oraz dok?adno?? ?

Podpis
Cześć
! :)


Projekt, który poruszy scenę platformy SA:MP!
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-19, 17:44


karol170396







Wiek: 33
Na forum: 5643 dni
Posty: 580
Nick w MP: Journey

Piwa: 1520

Respekt: -126,9

Ostrzeżeń: 100%
"blackelegy" napisał/a:

up@ Akurat sam wpad?em na ten pomys? w trakcie robienia bram :)
A jaki kod lub spos?b polecasz ?Aby naj?atwiej i szybko zrobi? oraz dok?adno?? ?


sscanf i float do tego :)

Podpis
"MłoteK" napisał/a:


Zając, idź kicać gdzie indziej, może w teletubisiach się miejsca zwolnią.
"zajacp1" napisał/a:

Wiele dzieci, które mi zazdroszczą, że mi się powodzi crashują mi serwer
Królik, Ty nigdy nie dorośniesz.
Postaw piwo autorowi tego posta
 

 
Tagi: dynamiczny :: system :: obiektów
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku