CP Keveredés

Indította ninjo98, 2013. augusztus 22. - 14:43:42

Előző téma - Következő téma

ninjo98

Üdv!
Csinálgatok egy munka fs-t...
Elkezdem a munkát a megszokott parancsal mikor elõször csinálom meg a 2 munkát minden tökéletesen mûködik, mikor másodjára próbálom a cp-k teljesen egymásba keverednek azaz mikor kukás vagyok uttisztito cp-k jelennek meg ez miért van?  :shurg:
 
new UttJob[MAX_PLAYERS];
new KukaJob[MAX_PLAYERS];
public OnPlayerCommandText(playerid, cmdtext[])
   {
   if(!strcmp(\"/munka\",cmdtext))
   {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 2102.7422,-1804.0856,13.5547))
    {
        KukaJob[playerid] = 1;
        SetPlayerCheckpoint(playerid,1843.8240,-1306.3604,13.3899,3);
    }
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 1939.0388,2155.0005,10.8203))
    {
        UttJob[playerid] = 1;
        SetPlayerCheckpoint(playerid,1927.9983,2163.2249,10.6719,3);
    }
   
   
public OnPlayerEnterCheckpoint(playerid)
{
       if(UttJob[playerid] == 1){
            UttJob[playerid] = 2;
            SetPlayerCheckpoint(playerid,1927.9983,2163.2249,10.6719,3);
            return 1;
         }
        if(UttJob[playerid] == 2){
            UttJob[playerid] = 3;
            SetPlayerCheckpoint(playerid,1866.2133,2173.1252,10.6719,3);
            return 1;
         }
        if(UttJob[playerid] == 3){
            UttJob[playerid] = 4;
            SetPlayerCheckpoint(playerid,1739.3602,2173.3799,10.6935,3);
            return 1;
         }
        if(UttJob[playerid] == 4){
            UttJob[playerid] = 5;
            SetPlayerCheckpoint(playerid,1707.4702,2136.3660,10.6719,3);
            return 1;
            }
       
            if(UttJob[playerid] == 5){
            UttJob[playerid] = 0;
            DisablePlayerCheckpoint(playerid);
            GivePlayerMoney(playerid,5000);
    return 1;
        }
//=======================================================================================//
//=======================================================================================//
//=======================================================================================//
//=======================================================================================//
if(KukaJob[playerid] == 1){
            KukaJob[playerid] = 2;
            SetPlayerCheckpoint(playerid,1843.8240,-1306.3604,13.3899,3);
            return 1;
         }
        if(KukaJob[playerid] == 2){
            KukaJob[playerid] = 3;
            SetPlayerCheckpoint(playerid,1742.1877,-1302.0734,13.4688,3);
            return 1;
         }
        if(KukaJob[playerid] == 3){
            KukaJob[playerid] = 4;
            SetPlayerCheckpoint(playerid,1612.0052,-1317.0580,17.2955,3);
           
            return 1;
         }
        if(KukaJob[playerid] == 4){
            KukaJob[playerid] = 5;
            SetPlayerCheckpoint(playerid,1641.9424,-1438.4219,13.3828,3);
            return 1;
         }
         if(KukaJob[playerid] == 5){
            KukaJob[playerid] = 0;
            DisablePlayerCheckpoint(playerid);
            GivePlayerMoney(playerid,5000);
          return 1;
}
return 1;
}

 

Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 22. - 19:08:08 )

Az esetleg nem lehet jogy valamit rosszul zártam le és azért keveredik?  :hmmm:

BoOy

Idézetet írta: ninjo98 date=1377175422\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"41694\" data-ipsquote-contentclass=\"forums_Topic
Dupla hozzászólás automatikusan összefûzve. ( 2013. augusztus 22. - 19:08:08 )

Az esetleg nem lehet jogy valamit rosszul zártam le és azért keveredik?  :hmmm:
 
a-a az nem lehet, talán összekeverted a kordinátákat! :) próbáld meg újra felvenni ingame-ben is és a skzriptben-is.
U.I: Egyszerûbb lenne a ++ megoldás ha az étékeket eggyel feljebb akarod tenni mindig.
 

UttJob[playerid] = 1;
helyett:
UttJon[playerid]++;

Pajd Tamás

Idézetet írta: BoOy date=1377198091\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"41694\" data-ipsquote-contentclass=\"forums_Topic

UttJob[playerid] = 1;
helyett:
UttJon[playerid]++;

 



Uttjon[playerid]++;
helyett nem:
Uttjob[playerd]++;
? :D

Bloody44

#3
Megtaláltam :D
 

       if(UttJob[playerid] == 5)
       {
              UttJob[playerid] = 0; // ITT A BAJ :)
       }

 
A változóval van a gond.. mégpedig:
A végénél 0-ra teszed, és ez hiba.. miért? Mert a lekérdezésednél 1-rõl indulnak a dolgok...
 

       if(UttJob[playerid] == 1) //Ha ez 1.. és a változód 0.. akkor
                                     //össze fog keveredni, a
       {                                            //munkavégzésnél..
              UttJob[playerid] = 2;
       }

 
Megoldás: az 5.cp-nél az \"UttJob = 0\"-t áttenni 1-re ;)
Mért? Mert ha 0-van .. és 1-rõl indul.. nem stimt :D
Edit: Ugyan ez a kuka job-nál, és a többinél is!

ninjo98

Tobbszor ujracsinaltam ... :/ de ezt a ++ megoldast nem ismertem de az az erdekes hogy a tobbi munka mindig az elsohelyen levo munkaval keveredik ossze :/

Zsolesszka

Nem lehet túl bonyolult a hiba, csak a logikáját nem érted.
Használj információ megjelenítést (hiba keresést / debug) hogy lásd mi történik a szkriptedben és az alapján talán rájössz mi a hiba és talán ki is tudod javítani.
Egyébként elég nehéz sõt szinte lehetetlen kettõ munkát elvállalni egyszerre mivel csak egy checkpoint jeleníthetõ meg egy idõben.
 
public OnPlayerEnterCheckpoint(playerid)
{
new
    str[128];
format(str, sizeof str, \"Út: %d, Kuka: %D\", UttJob[playerid], KukaJob[playerid]);
SendClientMessage(playerid, -1, str);
if(UttJob[playerid] == 1){ ........

ninjo98

Es hogy oldjam meg hogy egyidoben tobb is megjelenitheto legyen ?? Es meg mindig kicsit homalyos a hiba  :wall:

BoOy

õõ olyat azt hiszem nem lehet :(..

ninjo98

Es most akkor hogy csinaljak munka fst mert mostmar vegkepp semmi otletem :( valaki ismer valamilyen megvalositasi dolgot ???

Pajd Tamás

mi az hogy hogy csinálj? ..
itt van pl egy ötlet valaki beír egy parancsot az elteleportálja kocsikhoz és megjelenít egy cpt belemegy abba az adott cpbe megjeleníti a másikat.. stbstb

ninjo98

Ha nem latnad ezen vagyok  :wall: csak a cpk kivitelezese fuccsolt be es nem tudom hogy folytassam erre kertem segitseget :tantrum:

Pajd Tamás

próbáld meg úgy hogy ne lehessen egyszerre mind a kettõt felvenni valamint akkor se lehessen ha már épp munkában van.
valamint nullázás
 

CMD:felmond(playerid,params[]) {
    KukaJob = 0;
    UttJob = 0;
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,-1,\"Felmondtál\");
    return 1;
}

 
valamint... ez most komoly????
 

public OnPlayerCommandText(playerid, cmdtext[])
   {
   if(!strcmp(\"/munka\",cmdtext))
   {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 2102.7422,-1804.0856,13.5547))
    {
        KukaJob[playerid] = 1;
        SetPlayerCheckpoint(playerid,1843.8240,-1306.3604,13.3899,3);
    }
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 1939.0388,2155.0005,10.8203))
    {
        UttJob[playerid] = 1;
        SetPlayerCheckpoint(playerid,1927.9983,2163.2249,10.6719,3);
    }
   
   
public OnPlayerEnterCheckpoint(playerid)

 
itt hol van valamilyen lezárás??:O csoda hogy nemkaptál errort

ninjo98

Mert gyors kivettem a parancsot es lemaradt a lezaras de nyugodj meg az fsbe benne van .......

BoOy

new UtCP[][] =
{
//Ezeket majd írd át.
{x,y,z}, // Elsõ út CP
{x,y,z}, //Második út CP
{x,y,z} //Harmadik út CP
};
new KukaCP[][] =
{
{x,y,z}, // Elsõ kuka CP
{x,y,z}, //Második kuka CP
{x,y,z} //Harmadik kuka CP
};
new UttJob[MAX_PLAYERS];
new KukaJob[MAX_PLAYERS];
CMD:munka(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 5.0, 2102.7422,-1804.0856,13.5547))
    {
        KukaJob[playerid] = 1;
        SetPlayerCheckpoint(playerid,KukaCP[KukaJob[playerid]-1][0],KukaCP[KukaJob[playerid]-1][1],KukaCP[KukaJob[playerid]-1][2],3);
        SendClientMessage(playerid,-1,\"Gratulálunk! Elkezdted az kukás munkát!\");
}
    else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1939.0388,2155.0005,10.8203))
    {
        UttJob[playerid] = 1;
        SetPlayerCheckpoint(playerid,UtCP[uttJob[playerid]-1][0],UtCP[uttJob[playerid]-1][1],UtCP[uttJob[playerid]-1][2],3);
        SendClientMessage(playerid,-1,\"Gratulálunk! Elkezdted az úttisztitó munkát!\");
    }
    else return SendClientMessage(playerid,-1,\"Nem vagy munkahelynél\");
return 1;
}
CMD:felmond(playerid)
{
if(UttJob[playerid] != 0)
{
SendClientMessage(playerid,-1,\"Felmondtál az úttisztító munkából!\");
        UttJob[playerid] = 0;
DisablePlayerCheckpoint(playerid);
}
if(KukaJob[playerid] != 0)
{
SendClientMessage(playerid,-1,\"Felmondtál a kukás munkából!\");
        UttJob[playerid] = 0;
DisablePlayerCheckpoint(playerid);
}
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
switch(UttJob[playerid])
{
    case 1:
    {
       SetPlayerCheckpoint(playerid,UtCP[uttJob[playerid]-1][0],UtCP[uttJob[playerid]-1][1],UtCP[uttJob[playerid]-1][2],3);
   UttJob[playerid]++;
}
case 2:
    {
       SetPlayerCheckpoint(playerid,UtCP[uttJob[playerid]-1][0],UtCP[uttJob[playerid]-1][1],UtCP[uttJob[playerid]-1][2],3);
   UttJob[playerid]++;
}
case 3:
    {
       UttJob[playerid] = 0;
   DisablePlayerCheckpoint(playerid);
}
}
switch(KukaJob[playerid])
{
    case 1:
    {
           SetPlayerCheckpoint(playerid,KukaCP[KukaJob[playerid]-1][0],KukaCP[KukaJob[playerid]-1][1],KukaCP[KukaJob[playerid]-1][2],3);
          KukaJob[playerid]++;
}
case 2:
    {
           SetPlayerCheckpoint(playerid,KukaCP[KukaJob[playerid]-1][0],KukaCP[KukaJob[playerid]-1][1],KukaCP[KukaJob[playerid]-1][2],3);
          KukaJob[playerid]++;
}
case 1:
    {
           KukaJob[playerid] == 0;
           DisablePlayerCheckpoint(playerid);
}
}
return 1;
}

ninjo98

Jó csak Warningokat ír és nem tudom miért...
Hibák:
 
D:\\SZERVER\\filterscripts\\levelsystem.pwn(10) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(10) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(10) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(11) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(11) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(11) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(12) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(12) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(12) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(16) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(16) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(16) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(17) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(17) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(17) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(18) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(18) : warning 213: tag mismatch
D:\\SZERVER\\filterscripts\\levelsystem.pwn(18) : warning 213: tag mismatch

 
Hibásnak vélt sorok..
 
    new UtCP[][] =
    {
            //Ezeket majd írd át.
            {1927.9983,2163.2249,10.6719}, // Elsõ út CP
            {1866.2133,2173.1252,10.6719}, //Második út CP
            {1739.3602,2173.3799,10.6935} //Harmadik út CP
    };
    new KukaCP[][] =
    {
            {1935.5259,-1885.7679,13.5344}, // Elsõ kuka CP
            {1846.3779,-1886.4840,13.4317}, //Második kuka CP
            {1878.2389,-1737.6797,13.3552} //Harmadik kuka CP
    };