-
Sziasztok!
Valamiért a kodóm nem rakja animba:(((
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete <= 30)
{
if(pInfo[playerid][serult] == false)
{
cmd_me(playerid, \"összeesik\");
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult]=true;
TogglePlayerControllable(playerid, false);
}
}
return 1;
}
Valamiért ha 30 nál van a hp nem rakja animba:((
Miért?
-
Talán mert a pInfo[playerid][serult] változónak mindig true értéke van.
-
Itt csak egy elágazást látok, amely a 30 hp csekkolás és az animba esés közben van:
if(pInfo[playerid][serult] == false){
Egyáltalán elvégzi az ezen elágazás igaz ágán lévõ dolgokat? Mert ha nem, lehet, hogy ez a probléma. Csekkolhatod pl. egyszerû printes debuggal:
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
print(\"Asd0\"); // Floodolni fogja, szóval nem fontos, elvégre csak-csak lefut idáig, ugyanis minden bizonnyal csatlakozva van a játékos. Szóval akár le is hagyható.
new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete <= 30)
{
print(\"Asd1\");
if(pInfo[playerid][serult] == false)
{
print(\"Asd2\");
cmd_me(playerid, \"összeesik\");
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult]=true;
TogglePlayerControllable(playerid, false);
}
print(\"Asd3\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
}
print(\"Asd4\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
return 1;
}
Na és ezen asdokból melyeket írja ki? Amúgy szerintem felesleges updatenél, elég timerrel, bár ki tudja... Jó itt is.
Amúgy lehet, hogy csak szimplán nem játssza le az animot. Tisztítsd a játékos animait, vagy indítsd el kétszer. Hátha. Amúgy ha nem az elágazásokkal van a baj, hanem egyszerûen nem játssza le, az asszem azért van, mert nem tölti be õket a játékos számára az anim könyvtárból, vagy valami ilyesmi... Áh, én ehhez nem értek :D
-
az elágazások jók:((
mert megkapom az üzenetet meg minden csak anim nincs:(((.
akkor meg próbálom tisztítani és úgy.
ClearAnimations(playerid);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
igy is semmi:((
-
Nálam pedig bejött. Dupla indítás? Azt is írtam. Csak mert amikor az alap anim fs-t használom, sokszor csak a második parancs beírásra indul az anim. Amúgy ezt azelõre anim betöltõs dolgot még itt az egyik témában olvastam régebben, ha akarod, keresd ki, tuti megvan még valahol.
-
Szerek.:
igy sikerült:
if(Elete <= 30)
{
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
if(pInfo[playerid][serult] == false)
{
cmd_me(playerid, \"összeesik\");
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult]=true;
TogglePlayerControllable(playerid, false);
}
}
kis off melyik az az anim amikor terdel és fogja a hasát??
-
1. Elõ kell tölteni mindig az animációs könyvtárakat, mielõtt animot használsz.
public OnPlayerConnect(playerid)
{
new AnimKonyvt[][] = //129 db van
{\"AIRPORT\",\"Attractors\",\"BAR\",\"BASEBALL\",\"BD_FIRE\" \"BEACH\",\"benchpress\",\"BF_injection\",\"BIKED\",\"BIKEH\",
\"BIKELEAP\",\"BIKES\",\"BIKEV\",\"BIKE_DBZ\",\"BLOWJOBZ\",\"BMX\",\"BOMBER\",\"BOX\",\"BSKTBALL\",\"BUDDY\",\"BUS\",\"CAMERA\",
\"CAR\",\"CARRY\",\"CAR_CHAT\",\"CASINO\",\"CHAINSAW\",\"CHOPPA\",\"CLOTHES\",\"COACH\",\"COLT45\",\"COP_AMBIENT\",\"COP_DVBYZ\",
\"CRACK\",\"CRIB\",\"DAM_JUMP\",\"DANCING\",\"DEALER\",\"DILDO\",\"DODGE\",\"DOZER\",\"DRIVEBYS\",\"FAT\",\"FIGHT_B\",\"FIGHT_C\",
\"FIGHT_D\",\"FIGHT_E\",\"FINALE\",\"FINALE2\",\"FLAME\",\"Flowers\",\"FOOD\",\"Freeweights\",\"GANGS\",\"GHANDS\",\"GHETTO_DB\",
\"goggles\",\"GRAFFITI\",\"GRAVEYARD\",\"GRENADE\",\"GYMNASIUM\",\"HAIRCUTS\",\"HEIST9\",\"INT_HOUSE\",\"INT_OFFICE\",
\"INT_SHOP\",\"JST_BUISNESS\",\"KART\",\"KISSING\",\"KNIFE\",\"LAPDAN1\",\"LAPDAN2\",\"LAPDAN3\",\"LOWRIDER\",\"MD_CHASE\",
\"MD_END\",\"MEDIC\",\"MISC\",\"MTB\",\"MUSCULAR\",\"NEVADA\",\"ON_LOOKERS\",\"OTB\",\"PARACHUTE\",\"PARK\",\"PAULNMAC\",\"ped\",
\"PLAYER_DVBYS\",\"PLAYIDLES\",\"POLICE\",\"POOL\",\"POOR\",\"PYTHON\",\"QUAD\",\"QUAD_DBZ\",\"RAPPING\",\"RIFLE\",\"RIOT\",
\"ROB_BANK\",\"ROCKET\",\"RUSTLER\",\"RYDER\",\"SCRATCHING\",\"SHAMAL\",\"SHOP\",\"SHOTGUN\",\"SILENCED\",\"SKATE\",\"SMOKING\",
\"SNIPER\",\"SPRAYCAN\",\"STRIP\",\"SUNBATHE\",\"SWAT\",\"SWEET\",\"SWIM\",\"SWORD\",\"TANK\",\"TATTOOS\",\"TEC\",\"TRAIN\",\"TRUCK\",
\"UZI\",\"VAN\",\"VENDING\",\"VORTEX\",\"WAYFARER\",\"WEAPONS\",\"WUZI\"};
for(new a = 0; a < 129; a++) ApplyAnimation(playerid, AnimKonyvt[a], \"null\", 0.0, 0, 0, 0, 0, 0);
}
2. OnPlayerUpdatenél kb. felesleges lesz annyiszor ellenõrizni, max HP állítás után, vagy valami ilyesmi. Bõven elég lenne OnPlayerTakeDamaget használni. Példa:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(!IsPlayerConnected(playerid)) return 1; //Mondjuk ennek nem tudom, mi értelme van.
new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete > 30) return 1
if(pInfo[playerid][serult] == true) return 1;
cmd_me(playerid, \"összeesik\");
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.0, 1, 0, 0, 0, 0);
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult] = true;
//Az animáció, amit beleraktam, elméletileg megakadályozza a felállást.
return 1;
}
Remélem nem rontottam el sokmindent, habár lehetséges, hogy a return 1-el való rövidítés itt bem lesz célravezetõ.
Mindenesetre sok szerencsét, további jó scriptelést! :thumbsup:
-
animkonyvtárnál crashol :(( miért ?? tesztelnétek???
-
A publicot még tegnap eléírtam, úgy jónak kell lennie.
-
Na, ez az az anim könyvtár töltögetõs cucc, amirõl beszéltem. Nem a callbackokon kívül kéne létrehozni egyszer az anim könyvtáras dolgot, majd connect alatt szimplán a ciklust használva nullázni õket a játékos számára?
-
siker köszönöm zárok:)
-
Sziasztok!
Valamiért a kodóm nem rakja animba:(((
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete <= 30)
{
if(pInfo[playerid][serult] == false)
{
cmd_me(playerid, \"összeesik\");
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult]=true;
TogglePlayerControllable(playerid, false);
}
}
return 1;
}
Valamiért ha 30 nál van a hp nem rakja animba:((
Miért?
-
Talán mert a pInfo[playerid][serult] változónak mindig true értéke van.
-
Itt csak egy elágazást látok, amely a 30 hp csekkolás és az animba esés közben van:
if(pInfo[playerid][serult] == false){
Egyáltalán elvégzi az ezen elágazás igaz ágán lévõ dolgokat? Mert ha nem, lehet, hogy ez a probléma. Csekkolhatod pl. egyszerû printes debuggal:
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
print(\"Asd0\"); // Floodolni fogja, szóval nem fontos, elvégre csak-csak lefut idáig, ugyanis minden bizonnyal csatlakozva van a játékos. Szóval akár le is hagyható.
new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete <= 30)
{
print(\"Asd1\");
if(pInfo[playerid][serult] == false)
{
print(\"Asd2\");
cmd_me(playerid, \"összeesik\");
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult]=true;
TogglePlayerControllable(playerid, false);
}
print(\"Asd3\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
}
print(\"Asd4\"); // Szükségtelennek találhatod, elvégre az elágazás elõtt is tesztelünk, de van olyan hiba, hogy idáig el sem fut a kód. Magam sem tudom, hogy miért, de már találkoztam jómagam is ilyennel.
return 1;
}
Na és ezen asdokból melyeket írja ki? Amúgy szerintem felesleges updatenél, elég timerrel, bár ki tudja... Jó itt is.
Amúgy lehet, hogy csak szimplán nem játssza le az animot. Tisztítsd a játékos animait, vagy indítsd el kétszer. Hátha. Amúgy ha nem az elágazásokkal van a baj, hanem egyszerûen nem játssza le, az asszem azért van, mert nem tölti be õket a játékos számára az anim könyvtárból, vagy valami ilyesmi... Áh, én ehhez nem értek :D
-
az elágazások jók:((
mert megkapom az üzenetet meg minden csak anim nincs:(((.
akkor meg próbálom tisztítani és úgy.
ClearAnimations(playerid);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
igy is semmi:((
-
Nálam pedig bejött. Dupla indítás? Azt is írtam. Csak mert amikor az alap anim fs-t használom, sokszor csak a második parancs beírásra indul az anim. Amúgy ezt azelõre anim betöltõs dolgot még itt az egyik témában olvastam régebben, ha akarod, keresd ki, tuti megvan még valahol.
-
Szerek.:
igy sikerült:
if(Elete <= 30)
{
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"CRACK\", \"crckdeth2\", 4.1, 0, 1, 1, 1, 1, 1);
if(pInfo[playerid][serult] == false)
{
cmd_me(playerid, \"összeesik\");
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult]=true;
TogglePlayerControllable(playerid, false);
}
}
kis off melyik az az anim amikor terdel és fogja a hasát??
-
1. Elõ kell tölteni mindig az animációs könyvtárakat, mielõtt animot használsz.
public OnPlayerConnect(playerid)
{
new AnimKonyvt[][] = //129 db van
{\"AIRPORT\",\"Attractors\",\"BAR\",\"BASEBALL\",\"BD_FIRE\" \"BEACH\",\"benchpress\",\"BF_injection\",\"BIKED\",\"BIKEH\",
\"BIKELEAP\",\"BIKES\",\"BIKEV\",\"BIKE_DBZ\",\"BLOWJOBZ\",\"BMX\",\"BOMBER\",\"BOX\",\"BSKTBALL\",\"BUDDY\",\"BUS\",\"CAMERA\",
\"CAR\",\"CARRY\",\"CAR_CHAT\",\"CASINO\",\"CHAINSAW\",\"CHOPPA\",\"CLOTHES\",\"COACH\",\"COLT45\",\"COP_AMBIENT\",\"COP_DVBYZ\",
\"CRACK\",\"CRIB\",\"DAM_JUMP\",\"DANCING\",\"DEALER\",\"DILDO\",\"DODGE\",\"DOZER\",\"DRIVEBYS\",\"FAT\",\"FIGHT_B\",\"FIGHT_C\",
\"FIGHT_D\",\"FIGHT_E\",\"FINALE\",\"FINALE2\",\"FLAME\",\"Flowers\",\"FOOD\",\"Freeweights\",\"GANGS\",\"GHANDS\",\"GHETTO_DB\",
\"goggles\",\"GRAFFITI\",\"GRAVEYARD\",\"GRENADE\",\"GYMNASIUM\",\"HAIRCUTS\",\"HEIST9\",\"INT_HOUSE\",\"INT_OFFICE\",
\"INT_SHOP\",\"JST_BUISNESS\",\"KART\",\"KISSING\",\"KNIFE\",\"LAPDAN1\",\"LAPDAN2\",\"LAPDAN3\",\"LOWRIDER\",\"MD_CHASE\",
\"MD_END\",\"MEDIC\",\"MISC\",\"MTB\",\"MUSCULAR\",\"NEVADA\",\"ON_LOOKERS\",\"OTB\",\"PARACHUTE\",\"PARK\",\"PAULNMAC\",\"ped\",
\"PLAYER_DVBYS\",\"PLAYIDLES\",\"POLICE\",\"POOL\",\"POOR\",\"PYTHON\",\"QUAD\",\"QUAD_DBZ\",\"RAPPING\",\"RIFLE\",\"RIOT\",
\"ROB_BANK\",\"ROCKET\",\"RUSTLER\",\"RYDER\",\"SCRATCHING\",\"SHAMAL\",\"SHOP\",\"SHOTGUN\",\"SILENCED\",\"SKATE\",\"SMOKING\",
\"SNIPER\",\"SPRAYCAN\",\"STRIP\",\"SUNBATHE\",\"SWAT\",\"SWEET\",\"SWIM\",\"SWORD\",\"TANK\",\"TATTOOS\",\"TEC\",\"TRAIN\",\"TRUCK\",
\"UZI\",\"VAN\",\"VENDING\",\"VORTEX\",\"WAYFARER\",\"WEAPONS\",\"WUZI\"};
for(new a = 0; a < 129; a++) ApplyAnimation(playerid, AnimKonyvt[a], \"null\", 0.0, 0, 0, 0, 0, 0);
}
2. OnPlayerUpdatenél kb. felesleges lesz annyiszor ellenõrizni, max HP állítás után, vagy valami ilyesmi. Bõven elég lenne OnPlayerTakeDamaget használni. Példa:
public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
{
if(!IsPlayerConnected(playerid)) return 1; //Mondjuk ennek nem tudom, mi értelme van.
new Float:Elete;
GetPlayerHealth(playerid, Elete);
if(Elete > 30) return 1
if(pInfo[playerid][serult] == true) return 1;
cmd_me(playerid, \"összeesik\");
SetPlayerDrunkLevel(playerid, 6);
ApplyAnimation(playerid, \"SWEET\", \"Sweet_injuredloop\", 4.0, 1, 0, 0, 0, 0);
SendClientMessage(playerid, COLOR_RED, \"Megsérültél, hívj mentõt! ((/104))\");
pInfo[playerid][serult] = true;
//Az animáció, amit beleraktam, elméletileg megakadályozza a felállást.
return 1;
}
Remélem nem rontottam el sokmindent, habár lehetséges, hogy a return 1-el való rövidítés itt bem lesz célravezetõ.
Mindenesetre sok szerencsét, további jó scriptelést! :thumbsup:
-
animkonyvtárnál crashol :(( miért ?? tesztelnétek???
-
A publicot még tegnap eléírtam, úgy jónak kell lennie.
-
Na, ez az az anim könyvtár töltögetõs cucc, amirõl beszéltem. Nem a callbackokon kívül kéne létrehozni egyszer az anim könyvtáras dolgot, majd connect alatt szimplán a ciklust használva nullázni õket a játékos számára?
-
siker köszönöm zárok:)