/*** Progress Bar Creator* Copyright 2007-2010 Infernus\' Group,* Flávio Toribio (flavio_toribio@hotmail.com)** This is an add-on for the include Progress Bar* http://forum.sa-mp.com/index.php?topic=138556*/#include <a_samp>#include <progress>#if !defined SetPVarInt #error Version 0.3 R7 or higher of SA:MP Server requiered#endif#if _progress_version < 0x1310 #error Version 1.3.1 or higher of progress.inc required#endif#define DIALOG_BAR 1834#define DIALOG_COLOR 1835#define DIALOG_DONE 1836#define ITEM_MOVE 0#define ITEM_RESIZE 1#define ITEM_COLOR 2#define ITEM_DONE 3#define MOVE_NONE 0#define MOVE_POSITION 1#define MOVE_SIZE 2static Bars[MAX_BARS][e_bar];public OnFilterScriptInit(){ for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i)) { OnPlayerSpawn(i); } print(\"Progress Bar Creator by Flavio Toribio loaded\"); return 1;}public OnFilterScriptExit(){ for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i)) { OnPlayerDisconnect(i, 0); if(GetPVarInt(i, \"MovingBar\")) { TogglePlayerControllable(i, true); } if(GetPVarInt(i, \"CreatingBar\")) { DeletePVar(i, \"BarID\"); DeletePVar(i, \"MovingBar\"); DeletePVar(i, \"CreatingBar\"); } } print(\"Progress Bar Creator by Flavio Toribio unloaded\"); return 1;}public OnPlayerSpawn(playerid){ SendClientMessage(playerid, 0xFFF000AA, \"Use /bar to start making a progress bar!\"); return 1;}GetVars(index, &Float:x, &Float:y, &Float:w, &Float:h, &color){ x = Bars[index][pb_x]; y = Bars[index][pb_y]; w = Bars[index][pb_w]; h = Bars[index][pb_h]; color = Bars[index][pb_color];}UpdateVars(index, Float:x, Float:y, Float:w, Float:h, color){ Bars[index][pb_x] = x; Bars[index][pb_y] = y; Bars[index][pb_w] = w; Bars[index][pb_h] = h; Bars[index][pb_color] = color;}DeleteVars(index){ Bars[index][pb_x] = 0.0; Bars[index][pb_y] = 0.0; Bars[index][pb_w] = 0.0; Bars[index][pb_h] = 0.0; Bars[index][pb_color] = 0;}public OnPlayerUpdate(playerid){ if(GetPVarInt(playerid, \"MovingBar\")) { new keys, ud, lr; GetPlayerKeys(playerid, keys, ud, lr); new Bar:barid = Bar:GetPVarInt(playerid, \"BarID\"); new Float:x, Float:y, Float:w, Float:h, color; if(ud || lr) { DestroyProgressBar(barid); GetVars(_:barid, x, y, w, h, color); DeleteVars(_:barid); if(ud == KEY_UP) { if(GetPVarInt(playerid, \"MovingBar\") == MOVE_POSITION) { y -= keys & KEY_SPRINT ? 2.0 : 1.0; if(y < 0.0) y = 0.0; } else if(GetPVarInt(playerid, \"MovingBar\") == MOVE_SIZE) { h -= keys & KEY_SPRINT ? 2.0 : 1.0; if(h < 1.5) h = 1.5; } } else if(ud == KEY_DOWN) { if(GetPVarInt(playerid, \"MovingBar\") == MOVE_POSITION) { y += keys & KEY_SPRINT ? 2.0 : 1.0; if(y > 480.0) y = 480.0; } else if(GetPVarInt(playerid, \"MovingBar\") == MOVE_SIZE) { h += keys & KEY_SPRINT ? 2.0 : 1.0; if(h > 480.0) h = 480.0; } } if(lr == KEY_LEFT) { if(GetPVarInt(playerid, \"MovingBar\") == MOVE_POSITION) { x -= keys & KEY_SPRINT ? 2.0 : 1.0; if(x < 0.0) x = 0.0; } else if(GetPVarInt(playerid, \"MovingBar\") == MOVE_SIZE) { w -= keys & KEY_SPRINT ? 2.0 : 1.0; if(w < 1.5) w = 1.5; } } else if(lr == KEY_RIGHT) { if(GetPVarInt(playerid, \"MovingBar\") == MOVE_POSITION) { x += keys & KEY_SPRINT ? 2.0 : 1.0; if(x > 640.0) x = 640.0; } else if(GetPVarInt(playerid, \"MovingBar\") == MOVE_SIZE) { w += keys & KEY_SPRINT ? 2.0 : 1.0; if(w > 640.0) w = 640.0; } } barid = CreateProgressBar(x, y, w, h, color, 100.0); SetProgressBarValue(barid, 50.0); ShowProgressBarForPlayer(playerid, barid); UpdateVars(_:barid, x, y, w, h, color); SetPVarInt(playerid, \"BarID\", _:barid); } } return 1;}public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){ if(newkeys & KEY_SECONDARY_ATTACK) { if(GetPVarInt(playerid, \"MovingBar\")) { TogglePlayerControllable(playerid, true); SetPVarInt(playerid, \"MovingBar\", MOVE_NONE); SendClientMessage(playerid, 0xFFF000AA, \"Now you can use /bar again to modify or finalize it.\"); } } return 1;}public OnPlayerDeath(playerid, killerid, reason){ if(GetPVarInt(playerid, \"MovingBar\")) { TogglePlayerControllable(playerid, true); SetPVarInt(playerid, \"MovingBar\", MOVE_NONE); } return 1;}public OnPlayerDisconnect(playerid, reason){ if(GetPVarInt(playerid, \"CreatingBar\") == 1) { DestroyProgressBar(Bar:GetPVarInt(playerid, \"BarID\")); DeleteVars(GetPVarInt(playerid, \"BarID\")); } return 1;}public OnPlayerCommandText(playerid, cmdtext[]){ if(!strcmp(cmdtext, \"/bar\", true)) { if(GetPVarInt(playerid, \"CreatingBar\") == 0) { new Bar:barid; if((barid = CreateProgressBar(320.0, 240.0, 56.50, 3.39, 0xFF0000FF, 100.0)) == INVALID_BAR_ID) { SendClientMessage(playerid, 0xFF0000AA, \"Internal error occurred when creating progress bar.\"); return 1; } SetProgressBarValue(barid, 50.0); ShowProgressBarForPlayer(playerid, barid); TogglePlayerControllable(playerid, false); UpdateVars(_:barid, 320.0, 240.0, 55.5, 3.2, 0xFF0000FF); SetPVarInt(playerid, \"MovingBar\", MOVE_POSITION); SetPVarInt(playerid, \"CreatingBar\", 1); SetPVarInt(playerid, \"BarID\", _:barid); SendClientMessage(playerid, 0xFFF000AA, \"Use the arrow keys to move the bar arround the screen.\"); SendClientMessage(playerid, 0xFFF000AA, \"Keep pressing \'Sprint\' key to move faster.\"); SendClientMessage(playerid, 0xFFF000AA, \"Press the \'Enter car\' key when done.\"); } else { ShowPlayerDialog(playerid, DIALOG_BAR, DIALOG_STYLE_LIST, \"Progress Bar\", \"Change Position\\nChange Size\\nChange Color\\nI\'m done, save bar!\", \"OK\", \"Cancel\"); } return 1; } return 0;}public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){ if(dialogid == DIALOG_BAR) { if(response) { if(listitem == ITEM_MOVE) { SetPVarInt(playerid, \"MovingBar\", MOVE_POSITION); TogglePlayerControllable(playerid, false); SendClientMessage(playerid, 0xFFF000AA, \"Use the arrow keys to move the bar arround the screen.\"); SendClientMessage(playerid, 0xFFF000AA, \"Keep pressing \'Sprint\' key to move faster.\"); SendClientMessage(playerid, 0xFFF000AA, \"Press the \'Enter car\' key when done.\"); } else if(listitem == ITEM_RESIZE) { SetPVarInt(playerid, \"MovingBar\", MOVE_SIZE); TogglePlayerControllable(playerid, false); SendClientMessage(playerid, 0xFFF000AA, \"Use the arrow keys to resize the bar.\"); SendClientMessage(playerid, 0xFFF000AA, \"Keep pressing \'Sprint\' key to resize faster.\"); SendClientMessage(playerid, 0xFFF000AA, \"Press the \'Enter car\' key when done.\"); } else if(listitem == ITEM_COLOR) { ShowPlayerDialog(playerid, DIALOG_COLOR, DIALOG_STYLE_INPUT, \"Change Color\", \"Type the color in hexadecimal format.\\nExample: 0xFFF000FF\\nRemember the alpha parameter (the last 2 numbers),\\nthey define the transparency.\\nIf you have doubts, use an external Color Picker.\", \"OK\", \"Cancel\"); } else if(listitem == ITEM_DONE) { ShowPlayerDialog(playerid, DIALOG_DONE, DIALOG_STYLE_INPUT, \"Saving Bar\", \"Type the file name which you want to save the bar;\\nYou don\'t need to specify the extension;\\nThe default one is .txt;\\nThe file will be created in the scriptfiles folder;\\nAny file with the same name will be replaced automatically.\", \"Save\", \"Cancel\"); } } } else if(dialogid == DIALOG_COLOR) { SetProgressBarColor(Bar:GetPVarInt(playerid, \"BarID\"), hexstr(inputtext)); UpdateProgressBar(Bar:GetPVarInt(playerid, \"BarID\"), playerid); Bars[GetPVarInt(playerid, \"BarID\")][pb_color] = hexstr(inputtext); } else if(dialogid == DIALOG_DONE) { new File:file, name[32], line[128], barid; if(strlen(inputtext) > 32 - 4) { strdel(inputtext, 32 - 4, strlen(inputtext)); } format(name, sizeof name, \"%s.txt\", inputtext); if(!(file = fopen(name, io_write))) { SendClientMessage(playerid, 0xFF0000AA, \"There was an error on file writing, try again.\"); ShowPlayerDialog(playerid, DIALOG_DONE, DIALOG_STYLE_INPUT, \"Saving Bar\", \"Type the file name which you want to save the bar;\\nYou don\'t need to specify the extension;\\nThe default one is .txt;\\nThe file will be created in the scriptfiles folder;\\nAny file with the same name will be replaced automatically.\", \"Save\", \"Cancel\"); return 1; } barid = GetPVarInt(playerid, \"BarID\"); format(line, sizeof line, \"new Bar:bar = CreateProgressBar(%.2f, %.2f, %.2f, %.2f, %d, 100.0);\\r\\n\", Bars[barid][pb_x], Bars[barid][pb_y], Bars[barid][pb_w], Bars[barid][pb_h], Bars[barid][pb_color]); fwrite(file, line); fwrite(file, \"ShowProgressBarForAll(bar);\\r\\n\"); fwrite(file, \"\\r\\nNow, take a look at the official SA:MP forum topic to know how to use this:\\r\\n\\r\\nhttp://forum.sa-mp.com/index.php?topic=138556\\r\\n\"); fclose(file); DeleteVars(barid); DestroyProgressBar(Bar:barid); DeletePVar(playerid, \"BarID\"); DeletePVar(playerid, \"MovingBar\"); DeletePVar(playerid, \"CreatingBar\"); SendClientMessage(playerid, 0xFFFF00AA, \"All done! Now take a look at your file to see the result!\"); SendClientMessage(playerid, 0xFFFFFFAA, \"You can create another progress bar now.\"); } return 1;}stock hexstr(string[]){new ret, val, i;if(string[0] == \'0\' && (string[1] == \'x\' || string[1] == \'X\')) i = 2;while(string){ret <<= 4;val = string[i++] - \'0\';if(val > 0x09) val -= 0x07;if(val > 0x0F) val -= 0x20;if(val < 0x01) continue;if(val < 0x10) ret += val;}return ret;}
gb == true;gb == false;
CMD:gben(playerid, params[]){ if(pi[playerid][admin] >= 3) return SendClientMessage(playerid,red,\"Nem vagy 3-as admin\"); for(new i = 0; i < MAX_PLAYERS; i++) { if(gb == false) {gb == true;SendClientMessage(i,red,\"endedélyezve\"); }else if(gb == true) {gb == false;SendClientMessage(i,red,\"letíltva\"); } }return 1;}
CMD:gben(playerid, params[]) { if(pi[playerid][admin] >= 3) return SendClientMessage(playerid,red,\"Nem vagy 3-as admin\"); for(new i = 0; i < MAX_PLAYERS; i++) { if(gb == false) { gb = true; SendClientMessage(i,red,\"endedélyezve\"); }else if(gb == true) { gb = false; SendClientMessage(i,red,\"letíltva\"); } } return 1; }
format(coordsstring, sizeof(coordsstring), \"%d|%d|%s|%d|%d|%d|%d|%d|%d|%d|%d|%f|%f|%f|%f|%f|%f|%f|%f|%d|%d|%d|%d|%s\\r\\n\", hInfo[idx][Nev], hInfo[idx][Ar], hInfo[idx][Tulaj], hInfo[idx][szint], hInfo[idx][Allapot],hInfo[idx][berelheto],hInfo[idx][ber],hInfo[idx][Fegyver1],hInfo[idx][Fegyver2],hInfo[idx][Fegyver3],hInfo[idx][Penz],hInfo[idx][beX],hInfo[idx][beY],hInfo[idx][beZ],hInfo[idx][beA],hInfo[idx][intiX],hInfo[idx][intiY],hInfo[idx][intiZ],hInfo[idx][intiA],hInfo[idx][inti],hInfo[idx][WW],hInfo[idx][iInti],hInfo[idx][iWW],mylabel);
C:\\Users\\user\\Desktop\\aHouse1.pwn(624 -- 648) : warning 213: tag mismatchPawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 1 Warning.
hInfo[idx][Nev], \\hInfo[idx][Ar], \\
format(coordsstring, sizeof(coordsstring), \"%d|%d|%s|%d|%d|%d|%d|%d|%d|%d|%d|%f|%f|%f|%f|%f|%f|%f|%f|%d|%d|%d|%d|%s\\r\\n\", hInfo[idx][Nev],\\ hInfo[idx][Ar],\\ hInfo[idx][Tulaj],\\ hInfo[idx][szint],\\ hInfo[idx][Allapot],\\hInfo[idx][berelheto],\\hInfo[idx][ber],\\hInfo[idx][Fegyver1],\\hInfo[idx][Fegyver2],\\hInfo[idx][Fegyver3],\\hInfo[idx][Penz],\\hInfo[idx][beX],\\hInfo[idx][beY],\\hInfo[idx][beZ],\\hInfo[idx][beA],\\hInfo[idx][intiX],\\hInfo[idx][intiY],\\hInfo[idx][intiZ],\\hInfo[idx][intiA],\\hInfo[idx][inti],\\hInfo[idx][WW],\\hInfo[idx][iInti],\\hInfo[idx][iWW],\\mylabel);
Minden új sort \"\\\" jellel válaszd el.Szóval például így: hInfo[idx][Nev], \\hInfo[idx][Ar], \\