-
Sziasztok!
Van egy kódom ami a chatbe írja ha valaki megölt valakit.
Csak ezzel az a problémám hogyha leesett magasról és abba halt bele vagy ha egy égõ jármûben felrobbant akkor hülyeséget ír oda hogy ki ölte meg.
Valaki megtudná mondani hogy ezt hogyan lehetne kiküszöbölni, hogy úgy írja XY meghalt.?
public OnPlayerDeath(playerid, killerid, reason)
{
new string[500], weaponname[500];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
return 1;
}
-
public OnPlayerDeath(playerid, killerid, reason)
{
new string[500], weaponname[500];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
if(reason == 53)
{
SendClientMessage(playerid, -1, \"Leestél, pech\");
return 1;
}
return 1;
}
És ezt így tovább egészen a 51-54-ig.
http://wiki.sa-mp.com/wiki/Weapons -> Reasonok
Magyarázat: Minden halál oknak van egy ID-ja na és ha pl az illetõ meghalt és az oka 53 ami a leesés akkor kiírjuk, hogy mi történjen. Remélem érted :)
-
public OnPlayerDeath(playerid, killerid, reason)
{
new string[500], weaponname[500];
if(killerid){
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
} else {
format(string,sizeof(string),\"%s (%d) {\"feher\"}meghalt!\",GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
return 1;
}
[mod]Javítottam a beágyazást.[/mod]
-
Nem mûködik valamiért.
Valaki megnézné mi a probléma vele?
new string[500], weaponname[500];
if(reason != 47 || reason != 49 || reason != 50 || reason != 51 || reason != 53 || reason != 54)
{
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
}
if(reason == 47)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Fake Pistol\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 50)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Helicopter Blades\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 51)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Explosion\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 53)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Drowned\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 54)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Splat\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
[mod]Beágyazás javítva![/mod]
-
sima if az nem jó ebben az esetben, ugyan azt a dolgot vizsgálod! else if (el) próbáld. :hmmm:
-
én így csinálnám:
#include <a_samp>
public OnPlayerDeath(playerid, killerid, reason)
{
new string[256];
switch(reason)
{
case 47: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 50: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 51: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 52: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 53: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 54: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: KÉTASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
default:
{
if(IsPlayerConnected(killerid)) // CSAK BIZTOSRA AKAROK MENNI
{
new weaponname[50];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}megölte {%06x}%s (%d) {FFFFFF}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
}
else format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt.\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
}
}
SendClientMessageToAll(-1,string);
return 1;
}
stock GetName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
U.I: lehet nem jó :) , siettem.
-
Sziasztok!
Van egy kódom ami a chatbe írja ha valaki megölt valakit.
Csak ezzel az a problémám hogyha leesett magasról és abba halt bele vagy ha egy égõ jármûben felrobbant akkor hülyeséget ír oda hogy ki ölte meg.
Valaki megtudná mondani hogy ezt hogyan lehetne kiküszöbölni, hogy úgy írja XY meghalt.?
public OnPlayerDeath(playerid, killerid, reason)
{
new string[500], weaponname[500];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
return 1;
}
-
public OnPlayerDeath(playerid, killerid, reason)
{
new string[500], weaponname[500];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
if(reason == 53)
{
SendClientMessage(playerid, -1, \"Leestél, pech\");
return 1;
}
return 1;
}
És ezt így tovább egészen a 51-54-ig.
http://wiki.sa-mp.com/wiki/Weapons -> Reasonok
Magyarázat: Minden halál oknak van egy ID-ja na és ha pl az illetõ meghalt és az oka 53 ami a leesés akkor kiírjuk, hogy mi történjen. Remélem érted :)
-
public OnPlayerDeath(playerid, killerid, reason)
{
new string[500], weaponname[500];
if(killerid){
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
} else {
format(string,sizeof(string),\"%s (%d) {\"feher\"}meghalt!\",GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
return 1;
}
[mod]Javítottam a beágyazást.[/mod]
-
Nem mûködik valamiért.
Valaki megnézné mi a probléma vele?
new string[500], weaponname[500];
if(reason != 47 || reason != 49 || reason != 50 || reason != 51 || reason != 53 || reason != 54)
{
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
}
if(reason == 47)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Fake Pistol\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 50)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Helicopter Blades\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 51)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Explosion\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 53)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Drowned\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 54)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Splat\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
[mod]Beágyazás javítva![/mod]
-
sima if az nem jó ebben az esetben, ugyan azt a dolgot vizsgálod! else if (el) próbáld. :hmmm:
-
én így csinálnám:
#include <a_samp>
public OnPlayerDeath(playerid, killerid, reason)
{
new string[256];
switch(reason)
{
case 47: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 50: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 51: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 52: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 53: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
case 54: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: KÉTASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
default:
{
if(IsPlayerConnected(killerid)) // CSAK BIZTOSRA AKAROK MENNI
{
new weaponname[50];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}megölte {%06x}%s (%d) {FFFFFF}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
}
else format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt.\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
}
}
SendClientMessageToAll(-1,string);
return 1;
}
stock GetName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}
U.I: lehet nem jó :) , siettem.
-
ScreaM féle megoldás:
http://www.solidfiles.com/d/23c844a0f9/Castle_szkript.pwn
-
azzal hogy máshol kérdezted le a fegyvernevet meg javítottad a játékos szín bugot(ami mellesleg, gondolom a modjában is javítva van) nem látok eltérést az enyémtõl.
-
Megkérdõjelezel? :D
Elég nagy baj, ha nem látsz semmi változást.
Jobban átlátható és takarékosabb.
De ha nálad nem lényeg a \"minõség\", akkor az a saját munkádra vall.
Különben ez a legegyszerûbb mód ennek a megírására.
-
Köszönöm a válaszokat! Megoldva. Téma zárva.