Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3179 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

(redaguota)

Sveiki, reikia pagalbos, iškart prie esmės, komanda turi nuimti direktorių atsijungusiui žaidėjui, kodas toks:

CMD:nuimtidrkoff(playerid, params[])
{
    if(!playerDB[playerid][dpkt] && !playerDB[playerid][superadmin]) return 1;
    new t[25], q[102];
    if(sscanf(params, "s[25]", t)) return SendClientMessage(playerid, -1, "Nurodykite pilną nick'ą");
    mysql_format(mysql_handle, q, 102, "SELECT * FROM `users` WHERE `Vardas` = '%s'", t, t);
    mysql_function_query(mysql_handle, q, true, "Lead", "d", playerid);
    return 1;
}

forward Lead(playerid);
public Lead(playerid)
{
    new rows, fields, q[60], vardas[25];
    cache_get_data(rows, fields);
    if(rows)
    {
        cache_get_field_content(0, "Vardas", vardas, .max_len = 25);
        mysql_format(mysql_handle, q, 60, "UPDATE players SET `Lead` = '0' WHERE `Vardas` = '%s'", vardas);
        mysql_tquery(mysql_handle, q, "", "");
        SendClientMessage(playerid, -1, "Žaidėjui nuimtos pareigos.");
    }
    else
    {
        SendClientMessage(playerid, -1, "Žaidejas neturi ir taip pareigų.");
    }
    return 1;
}
 

Viska sukompiliuoja gerai, serveryje parašai komandą ir rašo, kad nusiėmė direktorius, bet realiai jis nenusijama ir palieka kaip buvęs.

Redaguota , nario Reklameris1
Redaguota: Pakeistas pavadinimas.
(redaguota)

Debug'ink ir ieškok problemos.

Aš pradėčiau su vardu - tikrinčiau, ar gauna teisingą string'ą:

cache_get_field_content( 0, "Vardas", vardas, .max_len = 25 );
SendClientMessage( playerid, -1, "%s", vardas );

Paskui bandyčiau paleisti SQL kodą per phpMyAdmin ir žiūrėti, ar viskas veikia. Tikrinčiau, ar gerai prisijungiama prie DB (jei ne - vėl debug'inčiau).

Redaguota , nario Memories
Prieš 1 valandą, Memories parašė:

Debug'ink ir ieškok problemos.

Aš pradėčiau su vardu - tikrinčiau, ar gauna teisingą string'ą:


cache_get_field_content( 0, "Vardas", vardas, .max_len = 25 );
SendClientMessage( playerid, -1, "%s", vardas );

Paskui bandyčiau paleisti SQL kodą per phpMyAdmin ir žiūrėti, ar viskas veikia. Tikrinčiau, ar gerai prisijungiama prie DB (jei ne - vėl debug'inčiau).

Galiu garantuot, kad jis visiškai nesuprato.

avataras.png

(redaguota)
prieš 8 valandas(-ų), MartynasK parašė:

Į Lead funkciją vardą perduok, o ne playerid. Jis gi atsijungęs, tai kaip jis gali turėt savo playerid. 

Viskas ten gerai, tą playerid naudoja ne atsijungusiam žaidėjui, o tam, kuris CMD suveda.

@Juodas Angelas, problema greičiausiai tame, kad suformatuota eilutė nesutilpdavo į kintamąjį. Visa kita atrodo kaip ir ok, o ir iš tavo pranešimo eina suprast, kad kodas vykdomas. Dar pastebėjimas, CMD formate naudojai 2 kartus tą patį kintamąjį, nors išvesdavai tik vieną iš jų, ir q masyvas, nėra prasmės naudot tokio dydžio, bet tai netrukdo kodo vykdymui. Jeigu mano variantas nepadės, žiūrėk MySQL log'ą.

CMD:nuimtidrkoff(playerid, params[])
{
	if(!playerDB[playerid][dpkt] && !playerDB[playerid][superadmin]) return 1;
	new t[25], q[62];
	if(sscanf(params, "s[25]", t)) return SendClientMessage(playerid, -1, "Nurodykite pilną nick'ą");
	mysql_format(mysql_handle, q, 62, "SELECT * FROM users WHERE Vardas = '%s'", t);
	mysql_function_query(mysql_handle, q, true, "Lead", "d", playerid);
	return 1;
}

forward Lead(playerid);
public Lead(playerid)
{
	new rows, fields, q[72], vardas[25];
	cache_get_data(rows, fields);
	if(rows)
	{
		cache_get_field_content(0, "Vardas", vardas, .max_len = 25);
		mysql_format(mysql_handle, q, 72, "UPDATE players SET Lead = '0' WHERE Vardas = '%s'", vardas);
		mysql_tquery(mysql_handle, q, "", "");
		SendClientMessage(playerid, -1, "Žaidėjui nuimtos pareigos.");
	}
	else
	{
		SendClientMessage(playerid, -1, "Žaidejas neturi ir taip pareigų.");
	}
	return 1;
}

Taip pat siūlyčiau paskaityti šią pamoką.

 

Redaguota , nario ES.^

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3179 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...