-
Posts
2,200 -
Joined
-
Last visited
-
Days Won
118
Content Type
Profiles
Forums
News
Documentation
Posts posted by WopsS
-
-
Pune la amandoua o verificare sa vezi daca a introdus sau nu parola.
[pawn]if(strlen(inputtext) == 0)
ShowPlayerDialog(playerid, 702, DIALOG_STYLE_INPUT, "text", "text", "optinea 1", "optiunea 2");[/pawn]
-
Iar ai aratat doar o parte ... Acolo ai o "}" in plus, vreau sa vad de unde vine aia.
-
Locked.
-
Uite aici, o comanda, trebuie sa mearga si pe MySQL si pe Dini.
[pawn] if(strcmp(cmd, "/leaderchat", true) == 0 || strcmp(cmd, "/lc", true) == 0)
{
new sendername[MAX_PLAYER_NAME], idx;
if(PlayerInfo[playerid][pLeader] <= 1)
return SendClientMessage(playerid, COLOR_ERROR, "Not a game master");
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[182];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
return SendClientMessage(playerid, COLOR_SYN, "Syntax: (/lc)leaderchat <text>");
if (PlayerInfo[playerid][pLeader] >= 1)
format(string, sizeof(string), "{Leader - %s[%d]: %s", sendername, playerid , result);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[pLeader] >= 1)
{
SendClientMessage(i, 0xC0C0C0FF, string);
}
}
}
return 1;
}[/pawn]
-
Arata-ne tot ShowStats, nu doar o parte ...
-
Deci pana la urma ce pot face?
Sa-mi raspunzi la intrebare ...
Deci, trebuie sa-i faci update.
Cand le incarci din baza de date, trebuie sa-i puna un ID, ceva HouseLabel, sau cum e acolo, nu?
-
Pai nu am incercat .. dar cineva poate da ban la playeri si are sts 0
Pune acolo, pe la inceput:
[pawn]if(PlayerInfo[playerid][pAdmin] < 1)
return SendClientMessage(playerid, -1, "Nu ai admin!");[/pawn]
La tine oricine poate sa baneze orice player ...
-
Eroarea "Invalid memory access" inseamna ca acceseaza un vector (string, in cazul asta) peste limitele lui, adica vectorul este de 5 caractere si el are 7 spre exemplu'. Da-ne si cod-ul.
-
Respecta Modelu' !
Topic Closed!
-
incearca sa o anulezi pe a 2-a, pare mai completa prima.
Create3DTextLabel(string, 0xFFFFFFFF, HouseInfo[Total_House_Created][hPosX], HouseInfo[Total_House_Created][hPosY], HouseInfo[Total_House_Created][hPosZ]+0.2, 20.0, HouseInfo[Total_House_Created][hWorld]); iti creaza tie textul.
Iar cand dai Buy prin tasta F sau ce mai faci tu acolo, inainte de noul text 3D sa pui DeletePlayer3DTextLabel(HouseLabel[Total_House_Created]);
Adica sa-l stearga pe cel vechi si sa-l adauge pe cel nou.
Asta o sa ii stearga label-ul la casa cu ID-ul "Total_House_Created", care poate fi 32,10,100 etc..
-
Respecta Modelu' !
Topic Closed!
-
if(HouseInfo[Total_House_Created][hWorld] == 0) HouseIcon[Total_House_Created] = CreateDynamicMapIcon(HouseInfo[Total_House_Created][hPosX], HouseInfo[Total_House_Created][hPosY], HouseInfo[Total_House_Created][hPosZ], 31, -1, 0, 0, -1, 50.0);
Am gasit 2-a
HousePickup[Total_House_Created] = CreatePickup(1273, 1, HouseInfo[Total_House_Created][hPosX], HouseInfo[Total_House_Created][hPosY], HouseInfo[Total_House_Created][hPosZ], HouseInfo[Total_House_Created][hWorld]);
HousePickup1[Total_House_Created] = CreatePickup(1273, 1, HouseInfo[Total_House_Created][hPosX1], HouseInfo[Total_House_Created][hPosY1], HouseInfo[Total_House_Created][hPosZ1], Total_House_Created);
if(HouseInfo[Total_House_Created][hUpgradeLock] != 13) format(string, sizeof(string), "{00BC00}De vanzare!\nNume: {F6F6F6}-\n{00BC00}Detinator: {F6F6F6}-\n{00BC00}Pret: {F6F6F6}$%s\n{00BC00}Nivel: {F6F6F6}%d\n{00BC00}ID-ul proprietatii: {F6F6F6}%d", FormatNumber(HouseInfo[Total_House_Created][hValue]), HouseInfo[Total_House_Created][hLevel], Total_House_Created);
else format(string, sizeof(string), "{00BC00}De inchiriat!\nNume: {F6F6F6}-\n{00BC00}Detinator: {F6F6F6}-\n{00BC00}Pret: {F6F6F6}$%s\n{00BC00}Nivel: {F6F6F6}%d\n{00BC00}ID-ul proprietatii: {F6F6F6}%d", FormatNumber(HouseInfo[Total_House_Created][hValue]), HouseInfo[Total_House_Created][hLevel], Total_House_Created);
HouseLabel[Total_House_Created] = Create3DTextLabel(string, 0xFFFFFFFF, HouseInfo[Total_House_Created][hPosX], HouseInfo[Total_House_Created][hPosY], HouseInfo[Total_House_Created][hPosZ]+0.2, 20.0, HouseInfo[Total_House_Created][hWorld]);
if(strmatch("Unbought", HouseInfo[houseid][hOwner]))
{
if(HouseInfo[houseid][hUpgradeLock] != 13) { format(string, sizeof(string), "{00BC00}De Vanzare!\n{00BC00}Detinator: {F6F6F6}-\n{00BC00}Pret: {F6F6F6}$%d\n{00BC00}Nivel: {F6F6F6}%d\n{00BC00}ID casa: {F6F6F6}%d", HouseInfo[houseid][hValue], HouseInfo[houseid][hLevel], houseid); HouseInfo[houseid][hOwned] = 0; }
else { format(string, sizeof(string), "{00BC00}De inchiriat!\n{00BC00}Detinator: {F6F6F6}-\n{00BC00}Pret: {F6F6F6}$%d\n{00BC00}Nivel: {F6F6F6}%d\n{00BC00}ID casa: {F6F6F6}%d", HouseInfo[houseid][hValue], HouseInfo[houseid][hLevel], houseid); HouseInfo[houseid][hOwned] = 0; }Deci, trebuie sa-i faci update.
Cand le incarci din baza de date, trebuie sa-i puna un ID, ceva HouseLabel, sau cum e acolo, nu?
-
Nici un plugin , este bagat in gm de forma aceasta Database = db_open("Accounts.db");
Ohohoho! Nu e bine, in primul rand pentru ca este vechi ... In al doilea rand, n-ai parola la el, asa-i?
E gen un SQL Compact?
Incearca sa treci la MySQL R38, este mai sigur. Ai SQL escape acolo, aici sincer nu te pot ajuta, sincer, si nimeni nu cred ca stie, pentru ca este vechi... In fine, acolo ai un SQL escape, si iti poate manipula baza de date cum vrea el.
-
In primul rand ge SQL plugin folosesti?
-
Da folosesc. Imi cer scuze dar nu vreau din adins sa fac spam
Uite:
[pawn]CMD:newname(playerid, params)
{
new NumeNou[MAX_PLAYER_NAME];
if(sscanf("s[30]", NumeNou))
return SendClientMessage(playerid, -1, "Introdu numele nou.");
SetPlayerName(playerid, NumeNou);
// De aici adaugi tu tot ce trebuie sa-i updateze numele in baza de date!
return 1;
}[/pawn]
-
}
for(new i = 0; i < MAX_HOUSES; i++)
{
CheatTimer[playerid] = 3;
//if(CPTimer[playerid] > 0) return 1;
if(PlayerToPoint(1.5, playerid, HouseInfo[i][hPosX], HouseInfo[i][hPosY], HouseInfo[i][hPosZ]))
{
if(HouseInfo[i][hOwned] == 0)
{
//new string[256];
if(GetPlayerCash(playerid) >= HouseInfo[i][hValue])
{
format(string, sizeof(string), "{F6F6F6}Vrei sa cumperi aceasta casa pentru {00BC00}$%d{F6F6F6}?", HouseInfo[i][hValue]);
ShowPlayerDialog(playerid, 300, DIALOG_STYLE_MSGBOX, "{00BC00}Meniul {F6F6F6}Casei", string, "Cumpara", "Pleaca");
HouseRequested[playerid] = i;
//CPTimer[playerid] = 3;
}
}
else
{
if(strmatch(HouseInfo[i][hOwner], pName(playerid)) || PlayerInfo[playerid][pPhousekey] == i)
{
SetPlayerInterior(playerid, HouseInfo[i][hInt]);
SetPlayerPos(playerid, HouseInfo[i][hPosX1], HouseInfo[i][hPosY1], HouseInfo[i][hPosZ1]);
SetPlayerVirtualWorld(playerid, i);
EnteredHouse[playerid] = i;
//CPTimer[playerid] = 3;
return 1;
}
if(HouseInfo[i][hLock] == 0)
{
SetPlayerInterior(playerid, HouseInfo[i][hInt]);
SetPlayerPos(playerid, HouseInfo[i][hPosX1], HouseInfo[i][hPosY1], HouseInfo[i][hPosZ1]);
SetPlayerVirtualWorld(playerid, i);
EnteredHouse[playerid] = i;
}
else if(HouseInfo[i][hLock] != 0 && HouseInfo[i][hPrice] != 0)
{
HouseRequested[playerid] = i;
ShowPlayerDialog(playerid, 314, DIALOG_STYLE_LIST, "{00BC00}Meniul {F6F6F6}Casei", "{00BC00}1. {F6F6F6}Cumpara casa\n{00BC00}2. {F6F6F6}Intra prin efractie", "Alege", "Iesi");
House[playerid] = i; //return ShowPlayerDialog(playerid, 313, DIALOG_STYLE_MSGBOX, "{F6F6F6}Incuietoarea este slabita..", "{F6F6F6}Ai fortat usa dar n-ai putut sa intri.\n{F6F6F6}Sunt sanse sa poti intra in casa prin efractie. Vrei sa intri?", "Intra", "Pleaca");
}
else if(HouseInfo[i][hLock] != 0 && HouseInfo[i][hPrice] == 0)
{
House[playerid] = i; return ShowPlayerDialog(playerid, 313, DIALOG_STYLE_MSGBOX, "{F6F6F6}Poti intra prin efractie..", "{F6F6F6}Ai incercat clanta usii si ai observat ca se poate distruge usor.\n{F6F6F6}Sunt sanse sa poti intra prin efractie. Esti sigur ca vrei sa faci asta?", "Da", "Nu");
}
}
}
}
for(new i = 0; i < MAX_HOUSES; i++)
{
CheatTimer[playerid] = 3;
if(PlayerToPoint(3.0, playerid, HouseInfo[i][hPosX1], HouseInfo[i][hPosY1], HouseInfo[i][hPosZ1]))
{
if(GetPlayerVirtualWorld(playerid) != 0)
{
EnteredHouse[playerid] = 0;
if(HouseInfo[i][hUpgradeLock] != 13) SetPlayerInterior(playerid, 0); else SetPlayerInterior(playerid, 1);
if(PlayerToPoint(3.0, playerid, 2282.9983, -1139.7643, 1050.8984)) { SetPlayerInterior(playerid, 1); SetPlayerPos(playerid, HouseInfo[GetPlayerVirtualWorld(playerid)][hPosX], HouseInfo[GetPlayerVirtualWorld(playerid)][hPosY], HouseInfo[GetPlayerVirtualWorld(playerid)][hPosZ]); SetPlayerVirtualWorld(playerid, 1); return 1; }
SetPlayerPos(playerid, HouseInfo[GetPlayerVirtualWorld(playerid)][hPosX], HouseInfo[GetPlayerVirtualWorld(playerid)][hPosY], HouseInfo[GetPlayerVirtualWorld(playerid)][hPosZ]);
if(HouseInfo[i][hUpgradeLock] != 13) SetPlayerVirtualWorld(playerid, 0); else SetPlayerVirtualWorld(playerid, HouseInfo[i][hForSale]);
return 1;
}
}Acum da-ne si functia care creeaza noul text 3d. Cauta "De vanzare" in gamemode-ul tau.
-
Si ce trebuie sa-i fac?
Sa il updatezi sau sa il stergi, da-ne comanda cand dai F s-o cumperi ...
-
Exista o comanda si cand dai buy, chiar daca e F sau /buy. Acolo e problema ca pick-ul tau vechi nu se actualizeaza, si se creeaza altul nou.
-
Folosesc ZCMD da nu am facut backup
SSCANF folosesti? :)
-
Am sters ce am incercat pt ca mi-a zis cineva ca nu e bine
Pai tie nu ti se salveaza in baza de date?
Ce folosesti, ZCMD sau STRCMP?
-
Da-ne liniile / codul. Nu iti face nimeni comanda.
-
Pune acolo inainte de "GetPlayerName" asta:
[pawn]new pName[MAX_PLAYER_NAME];
new filename[128];[/pawn]
-
Pune [pawn]UsePlayerPedAnims();[/pawn] la [pawn]public OnGameModeInit()[/pawn]
-
Bravo tie, pentru primul tau script, felicitari :)
Problema comanda /stats
in Arhivă probleme
Posted
Ce spun eu, ce raspunzi tu. Eu iti spun sa-mi arati tot CODUL sa vad de unde ai "}" care e in plus in ce mi-ai dat tu!