Csumi all!
Készítettem (unalmamban) egy DM rendszert blabla..
Tartalma:
- 2 parancs: /dms /exitdm
- a /dms parancsnál kilistáz 2 DM-et ami azt is megmutatja, hogy éppen hányan tartózkodnak abban a DM-ben!
- DM-ben csakis az /exitdm parancsot lehet beírni, mivel a többit tíltja.
- Halál után ha DM-ben haltál meg akkor random helyre visszatesz a DM zónában, a megfelelõ fegyverrel.
Elkészítési idõ: 20 perc
Készítõ: Én
Sorok száma: 128
A script:.
// DM rendszer script By: Flash ( < sampforum.hu > )
#include a_samp
#include zcmd
#define DIALOG_DMS 1234
new string[512];
new dmplayers[2];
new vmi[MAX_PLAYERS];
public OnPlayerConnect(playerid) { SetPVarInt(playerid, \"InDM\", 0); return 1; }
public OnPlayerDisconnect(playerid, reason) { if(GetPVarInt(playerid, \"InDM\")) cmd_exitdm(playerid); return 1; }
public OnPlayerSpawn(playerid) {
if(GetPVarInt(playerid, \"InDM\")) {
switch(vmi[playerid]) {
case 1: { // Minigun DeathMatch
switch(random(3)) {
case 0: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 1: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 2: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
}
GivePlayerWeapon(playerid, 38, 99999);
}
case 2: { // Sawnoff DeathMatch
switch(random(3)) {
case 0: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 1: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 2: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
}
GivePlayerWeapon(playerid, 26, 99999);
}
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
switch(dialogid) {
case DIALOG_DMS: {
if(!response) return 1;
if(listitem == 0) {
dmplayers[0] ++;
vmi[playerid] = 1;
switch(random(3)) {
case 0: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 1: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 2: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
}
string[0] = EOS;
format(string, sizeof(string), \"%s csatlakozott a Minigun DeathMatch-hoz! Bent vannak: %i\", Name(playerid), dmplayers[0]);
SendClientMessageToAll(-1, string);
}
if(listitem == 1) {
dmplayers[1] ++;
vmi[playerid] = 2;
switch(random(3)) {
case 0: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 1: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
case 2: SetPlayerPos(playerid, 0.0, 0.0, 0.0); // írd át
}
string[0] = EOS;
format(string, sizeof(string), \"%s csatlakozott a Sawnoff DeathMatch-hoz! Bent vannak: %i\", Name(playerid), dmplayers[1]);
SendClientMessageToAll(-1, string);
}
SetPVarInt(playerid, \"InDM\", 1);
}
}
return 1;
}
CMD:dms(playerid) {
if(GetPVarInt(playerid, \"InDM\")) return SendClientMessage(playerid, 0xff0000ff, \"Hiba! Te már DM zónában vagy!\");
new line[512];
line[0] = EOS;
format(string, sizeof(string), \"Minigun DeathMatch - Bent tartózkodnak: %i játékos\\n\", dmplayers[0]);
strcat(line, string);
format(string, sizeof(string), \"Sawnoff DeathMatch - Bent tartózkodnak: %i játékos\\n\", dmplayers[1]);
strcat(line, string);
ShowPlayerDialog(playerid, DIALOG_DMS, 2, \"DeatchMatch zónák:\", line, \"Csatlakoz!\", \"Bezár\");
return 1;
}
CMD:exitdm(playerid) {
new dmname[64];
switch(vmi[playerid]) {
case 1: {
dmplayers[0] --;
dmname = \"Minigun DeathMatch\";
}
case 2: {
dmplayers[1] --;
dmname = \"Sawnoff DeathMatch\";
}
}
vmi[playerid] = 0;
SetPVarInt(playerid, \"InDM\", 0);
SpawnPlayer(playerid);
format(string, sizeof(string), \"%s kilépett a %s zónából!\", Name(playerid), dmname);
SendClientMessageToAll(-1, string);
return 1;
}
public OnPlayerCommandReceived(playerid, cmdtext[]) {
if( strfind(cmdtext, \"/exitdm\") != 0) {
if(GetPVarInt(playerid, \"InDM\") && strcmp(cmdtext, \"/exitdm\") && vmi[playerid] > 0) {
SendClientMessage(playerid, 0xff9999ff, \"Hiba! DM-ben nem használhatsz parancsokat! Kilépéshez: /exitdm\");
return 0;
}
}
return 1;
}
Name(playerid) {
new n[24];
GetPlayerName(playerid, n, 24);
return n;
}