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: kriszrap - 2010. március 23. - 19:54:07

Cím: jail
Írta: kriszrap - 2010. március 23. - 19:54:07
hellosztok jail problémám van berakok egy játékost a  börtön be be irja hogy kill és nem rakja vissza börtönbe pedig ki irja hogy börtön ben vagy
:
 

public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pPrison] != 0)
{
    ResetPlayerWeapons(playerid);
GameTextForPlayer(playerid, \"~r~Bortonben vagy!\", 3000, 3);
SetPlayerInterior(playerid, 3);
SetPlayerPos(playerid, 198.5319,162.3093,1003.0300);
SetTimerEx(\"UnJail\", PlayerInfo[playerid][pPrisonTime]*1000, 0, \"i\", playerid);
}
return 1
}
Cím: jail
Írta: Vampesz - 2010. március 23. - 20:20:17
Egyszeru amikor berakod jailba írd oda mondjuk, h:
 
PlayerInfo[playerid][pPrison] = 1;

 
A változó akármi lehet :)
Cím: jail
Írta: kriszrap - 2010. március 23. - 20:43:02
azt hogy lehet ki küszöbölni hogy valakit börtön berakok és be irja hogy /kill és akkor nem rakja vissza a börtönbe?
Cím: jail
Írta: death - 2010. március 24. - 18:36:48
Vagy szedd ki a /kill-t vagy a setplayerspawnhoz tegyél be egy ilyet( szerintem, ha nem jó akkor bocsi, nem tudom milyen módod van):
Ha a pPrison már be van rakva oda ahova írni fogom, akkor ne rakd be, mert errort fogsz kapni!
enum pInfo-hoz:
 
pPrison, //ha nem a végére másolod, csak akkor rakj vesszot!

 
public OnPlayerConnect-hez
 
PlayerInfo[pPrison] = 0;

 
A /jail parancsba tedd bele valahova, mind Vampesz már mondta:
 
PlayerInfo[playerid][pPrison] = 1;

 
Ezt a SetPlayerSpawn-hoz:
 
if(PlayerInfo[playerid][pPrison] == 1)
{
   SetPlayerInterior (playerid, 6);//Ez az LSPD interiorja, tehát ez az LSPD-re rakja be
   PlayerInfo[playerid][pInt] = 6 //Ide is elvileg az interior id kell
   SetPlayerPos(playerid,264.6288,77.5742,1001.0391);//Ez a rendorségen belül a zárt cella poziciója
   SendClientMessage(playerid, COLOR_RED, \"Letöltetlen Jail büntetésed van, vissza kerültél a börtönbe!\");
   return 1;
}

 
Az a rész, amikor kiírja, hogy Letöltetlen... azt kiszedheted, ha nem akarod hogy kiírja, attól még muködni fog!
És ez csak akkor fog muködni, ha pPrison definiálva van!
Ennek elvileg jónak kell lennie, kivéve akkor, ha a /jail rosszul van megcsinálva! Mindenesetre, ha valami hibát láttok, kérlek szóljatok! Ha nem muködik és valaki szerint a /jail-el van a gond írjatok és feltöltök 1-et!
Cím: jail
Írta: kriszrap - 2010. március 24. - 19:33:48
nagyon jó semmi hiba nálam de az kérdezném  miért van ha újra inditom aszerót akkor lennulázodik pPrison és jailTime?
Cím: jail
Írta: death - 2010. március 24. - 19:46:53
A szerveredbe van regisztráció nem? Csak mert szerintem csak akkor menti le, ha van regisztráció és akkor minden játékosnak külön jegyez fel minden infót a neve szerint... ez miat nullázódik le szerintem, mert ha újrainditod a szervert akkor nem menti le, hogy melyik játékos mit csinállt. Szerintem szerezz egy regisztrációt! Vagy scriptet, vagy egy rp szerverét alakítsd át és azt rakd be!
( Ez a megoldás szerintem, ha nem akkor javítsatok :D )
Cím: jail
Írta: kriszrap - 2010. március 24. - 19:52:43
nem mert van regisztrácioós bele jetzi meg minden még az atomatikus login ba is és sima login ba is ugy hogy nem tom mi a baj
Cím: jail
Írta: death - 2010. március 24. - 21:22:40
Az admin scriptben van meg, vagy pedig a szerverbe van? Ha scriptbe, , akkor nem tudom a megoldást, ha módban , akkor lehet, hogy tudok segíteni....
Cím: jail
Írta: kriszrap - 2010. március 25. - 16:01:04
admin script de az miért van hogy adog egy gyereknek 60 másodpercet és kilép és belép le nullázódik?
Cím: jail
Írta: kriszrap - 2010. március 29. - 17:55:26
elnézést a dupla post ért  irja tok létszi ide
Cím: jail
Írta: death - 2010. március 29. - 21:29:41
A /jail parancsal lehet a baj, mert ha úgy csináltál mindent ahogy mondtam, akkor nem történhet meg.... Vagyis megtörténhet, ez azért van, mert nincs a mód ráállva teljesen a regisztrációra.... Így nem ment le dolgokat a játékosokról, csak ami bele van írva a scriptbe, azt menti le.... Ezért van az, ha lelép nullázódik... Szerintem, ha megy a scriptelés, próbálj átmásolni egyet RP szeróból a te szerveredbe, akkor minden funkció elérheto lesz....
Cím: jail
Írta: kriszrap - 2010. március 30. - 17:38:38
ráállva teljesen a regisztrációra ezt hogy lehet (ha erre nem tudsz megoldás akkor honnét tok letölteni iylen rp jailt meik modot szedejmel?)
Cím: jail
Írta: death - 2010. március 31. - 09:09:19
Elmagyarázom.... Van a scriptben egy OnPlayerConnect meg OnPlayerRegister stb. ezeknél benne van, hogy mittom én pValami és akkor ezt mentse bele abba a fileba, amibe a játékosok admin szintjét is lementi stb.... És ez a scriptben van benne.... Tehát azt a pPrison-t nem fogja lementeni a játékosok adatai mellé, mert nincs ráállítva a scriptre.... Nem tudom máshogy magyarázni... És neked nem egy rp Jai-re van szükséged, hanem egy RP regisztrációra.... Mert ahoz teljes hozzáférésed van és csak akkor tudod majd dialogosra ( arra a kis ablakra gondolok amit egy másik topicban kérdeztél ) csinállni, ha saját regisztrációt csinálsz... Szóval keress rá az eredeti fórumon (angol fórumon) egy GF RP módra és nézd át az OnPlayerConnectet stb-t, ha már haladó scripter vag menni fog.... És utána kezdj csak neki a jailnek... addig ezt kell elfogadnod, a szervered nem ment le így adatokat a játékosokról....
Cím: jail
Írta: kriszrap - 2010. március 31. - 13:25:55
ja értem de elmenti a ini fájlban a addig rendben csak le nullázza ha érted ugy van jail=0 és ha jtákos nak adok 50 másodpercet  akkor ini jail=50 és ha lelép és ujra belép akkor ez lesz jail=0
Cím: jail
Írta: Vampesz - 2010. március 31. - 15:36:25
Nem menti rendesen Vagy a OnPlayerDisconnect-nél van levíve 0-ra...
Cím: jail
Írta: kriszrap - 2010. március 31. - 21:24:31
sikerült köszönöm de még egy kérdés
hogy a jaltimét másodpercenként frissitse azt hogy lehet ?
Cím: jail
Írta: Vampesz - 2010. március 31. - 21:35:38
SetTimer :)
Cím: jail
Írta: kriszrap - 2010. március 31. - 21:49:12
és azt hogy mert nekem pPrisonTime azt hogy tudom
Cím: jail
Írta: Vampesz - 2010. március 31. - 21:58:19
SetTimer(playerid, függvény amit meghívsz, ido, ismétlés(false(0) or true(1) ) );

 
De azé még tessék:

http://wiki.sa-mp.com/wiki/SetTimer

Pl Fügvénybe ciklussal megírod, h:

 
forward bortonido();

 

public bortonido()
{
      for(new i = 0; i < MAX_PLAYERS; i++)
      {
             if(PlayerImfo[pPrisonTime] > 1)
             {
                   PlayerInfo[pPrisonTime]--;
             }
      }
      return 1;
}

 
És az OnGameModeInit alá:
 
SetTimer(playerid, \"bortonido\", 60000, 1);

 
És csinsz ez alapján egy másikat ami ha a pPrisonTime = 0-val akkor respawnolja vagy hova rakja :)
Cím: jail
Írta: kriszrap - 2010. április 01. - 11:04:07
sikerült és hogy lehet meg állitani hogy ne számoljón továb mert ha lelép a játékos ugyan ugy számól
Cím: jail
Írta: Vampesz - 2010. április 01. - 11:51:53
a for-al kezdodo sor után írsz egy:


if(IsPlayerConnected(i))

 

de rem. érted, h h kell :)
Cím: jail
Írta: kriszrap - 2010. április 01. - 12:54:39
nagyon szépen köszönöm bogy hogy ilyen hülye voltam elnézést és lenn egy kérdésem i mit helyetesít?
Cím: jail
Írta: Vampesz - 2010. április 01. - 13:56:39
az i az a palyerid helyén van

De ciklussal van megcsinálva tehát végig megy minden játékoson...az i az összes játékost helyettesíti :)