Page 1 of 1

kaip pasidaryti?

Posted: 2011 Jun 01 12:12
by aurimasko
Kaip pasidaryti, kad teisingai atvaizduotų tą ką reikia?

Turiu kodą:

Code: Select all

 new vip[33], country[33]new vip2[500]new country2[500] switch(key)    {        case 1: { vip[id] = 1; }        case 2: { vip[id] = 2; }        case 3: { vip[id] = 3; }    }    switch(key)    {        case 0: { country[id] = 1; check_info(id); }        case 1: { country[id] = 2; check_info(id); }    } switch(country[id])    {        case 1: { country2[400] = "Lietuva"; }        case 2: { country2[400] = "Anglija"; }    }     switch(vip[id])    {        case 1: { vip2][400] = "V.I.P Bronze"; }        case 2: { vip2[400] = "V.I.P Silver"; }        case 3: { vip2[400] = "V.I.P Gold"; }    }     formatex(opcion, charsmax(opcion), "%L", LANG_PLAYER, "INFO_COUNTRY", country2[])    menu_additem(menu, opcion, "5")     formatex(opcion, charsmax(opcion), "%L", LANG_PLAYER, "INFO_STATUS", vip2[])    menu_additem(menu, opcion, "6") 
Bet mėto labai daug errorų... žinau kad čia daug klaidų, bet nežinau kaip ištaisyt.


P.S. Šis kodas nėra vienoje funkcijoje, vieni switch vienoje funkcijoje, kiti - kitoje.

Re: kaip pasidaryti?

Posted: 2011 Jun 01 12:53
by beast
Negali taip priskirt tekstinės eilutės:
country2[400] = "Lietuva"

reikia naudoti copy(country2, charsmax(country2), "Lietuva")

vip2][400]

country2[] -> country2
vip2[] > vip2

Re: kaip pasidaryti?

Posted: 2011 Jun 01 13:11
by aurimasko
beast wrote:Negali taip priskirt tekstinės eilutės:
country2[400] = "Lietuva"

reikia naudoti copy(country2, charsmax(country2), "Lietuva")

vip2][400]

country2[] -> country2
vip2[] > vip2

Code: Select all

    static vip2, country2     switch(country[id])    {        case 1: { copy(country2, charsmax(country2), "Lietuva"); }        case 2: { copy(country2, charsmax(country2), "Anglija"); }    }     switch(vip[id])    {        case 1: { copy(vip2, charsmax(vip2), "V.I.P Bronze"); }        case 2: { copy(vip2, charsmax(vip2), "V.I.P Silver"); }        case 3: { copy(vip2, charsmax(vip2), "V.I.P Gold"); }    }

ir ant case eilučių meta errorus argument type mismatch < argument 1 >


Beje o kaip padaryti, kad būtų ne vip2 ir ne country2, o vip2[id] ir country2[id] ?

Re: kaip pasidaryti?

Posted: 2011 Jun 01 15:15
by aaarnas
vip2[33][400]
country2[33][400]

O klaida dėl to, kad kopijuoji string į integer tipo kintamąjį. country2 turi būti masyvas.

Re: kaip pasidaryti?

Posted: 2011 Jun 02 12:10
by aurimasko
pasidariau

Code: Select all

new vip2[33][400], country2[33][400]
ir meta errorą ant :

Code: Select all

switch(country[id])    {        case 1: { copy(country2, charsmax(country2), "Lietuva"); }        case 2: { copy(country2, charsmax(country2), "Anglija"); }    }     switch(vip[id])    {        case 1: { copy(vip2, charsmax(vip2), "V.I.P Bronze"); }        case 2: { copy(vip2, charsmax(vip2), "V.I.P Silver"); }        case 3: { copy(vip2, charsmax(vip2), "V.I.P Gold"); }    } 
Erroras:

dimensions do not match

Re: kaip pasidaryti?

Posted: 2011 Jun 02 12:49
by beast
Nereikia tau čia dvimačio masyvo daryt. Tiesiog pasidaryk taip ir tiek:

Code: Select all

new vip[33], country[33], vip_str[64], country_str[64] switch(key){    case 1: { vip[id] = 1; }    case 2: { vip[id] = 2; }    case 3: { vip[id] = 3; }} switch(key){    case 0: { country[id] = 1; check_info(id); }    case 1: { country[id] = 2; check_info(id); }} switch(country[id]){    case 1: { copy(country_str, charsmax(country_str), "Lietuva"); }    case 2: { copy(country_str, charsmax(country_str), "Anglija"); }} switch(vip[id]){    case 1: { copy(vip_str, charsmax(vip_str), "V.I.P Bronze"); }    case 2: { copy(vip_str, charsmax(vip_str), "V.I.P Silver"); }    case 3: { copy(vip_str, charsmax(vip_str), "V.I.P Gold"); }} formatex(opcion, charsmax(opcion), "%L", LANG_PLAYER, "INFO_COUNTRY", country_str)menu_additem(menu, opcion, "5") formatex(opcion, charsmax(opcion), "%L", LANG_PLAYER, "INFO_STATUS", vip_str)menu_additem(menu, opcion, "6")

Re: kaip pasidaryti?

Posted: 2011 Jun 02 12:53
by aurimasko
na, bet man reikia, kad kiekvienam žaidėjui generuotų atskirai, nes kaip suprantu, jeigu žaidėjas sau prisikiria šalį Anglija, o ateina kitas ir pasirenka Lietuva, tai tam kuris pasirinko Anglija ką nors paspaudus tai jau rodys nebe Anglija, o Lietuva

Re: kaip pasidaryti?

Posted: 2011 Jun 02 12:56
by aaarnas
Na tai tada taip:

Code: Select all

new vip[33], country[33], vip_str[33][64], country_str[33][64] switch(key){    case 1: { vip[id] = 1; }    case 2: { vip[id] = 2; }    case 3: { vip[id] = 3; }} switch(key){    case 0: { country[id] = 1; check_info(id); }    case 1: { country[id] = 2; check_info(id); }} switch(country[id]){    case 1: { copy(country_str[id], 63, "Lietuva"); }    case 2: { copy(country_str[id], 63, "Anglija"); }} switch(vip[id]){    case 1: { copy(vip_str[id], 63, "V.I.P Bronze"); }    case 2: { copy(vip_str[id], 63, "V.I.P Silver"); }    case 3: { copy(vip_str[id], 63, "V.I.P Gold"); }}

Re: kaip pasidaryti?

Posted: 2011 Jun 02 13:00
by beast
Juk žinutė jau bus suformatuota ir meniu punktas pridėtas. Ir kiekvieną kartą iš naujo iškvietus funkciją, žinutė bus nukopijuojama ir performatuojama pagal country[id] ir vip[id] reikšmes.

Re: kaip pasidaryti?

Posted: 2011 Jun 02 14:08
by aurimasko
beast wrote:Juk žinutė jau bus suformatuota ir meniu punktas pridėtas. Ir kiekvieną kartą iš naujo iškvietus funkciją, žinutė bus nukopijuojama ir performatuojama pagal country[id] ir vip[id] reikšmes.
nu tikrai ;D gerai ačiū, abiem +karma.